Method: card.verifycard

ユーザーのカードが有効かどうかを確認します。

このメソッドは、ユーザーのカードの詳細を確認し、そのカードで支払いに使用できるかどうかを確認するために、Google によって呼び出されます。この呼び出しでは金銭が移動することはありません。また、ユーザーのアカウントに永続的な変更を行うこともありません。

リクエストの例を次に示します。


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "ZWNobyB0cmFuc2FjdGlvbg",
    "requestTimestamp": "1481855969503"
  },
  "standardCard": {
    "accountNumber": "4123456789101112",
    "expiryDate": "01/2020",
    "cvn": "123"
  },
  "avsData": {
    "streetAddress": "123 Main St APT #200",
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "countryCode": "US"
  }
}

レスポンスの例を次に示します。


{
  "responseHeader": {
    "responseTimestamp": "1481855970403",
  },
  "cardNetworkResult": {
    "network": "VISA",
    "iso8583Result": "00",
    "rawNetworkResult": "00"
  },
  "avsResult": {
    "rawAvsResult": "B",
    "streetAddress": "MATCH",
    "localityName": "MATCH",
    "administrativeAreaName": "MATCH",
    "postalCodeNumber": "NOT_SENT",
    "countryCode": "SKIPPED"
  },
  "cvnResult": "MATCH"
}

HTTP リクエスト

POST https://card-verification-service.google.com/v1/card/verifycard

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "requestHeader": {
    object(RequestHeader)
  },
  "standardCard": {
    object(StandardCard)
  },
  "avsData": {
    object(AvsData)
  }
}
フィールド
requestHeader

object(RequestHeader)

必須: すべてのリクエストに共通のヘッダー。

standardCard

object(StandardCard)

必須: ユーザーの支払いカードに関するデータ。

avsData

object(AvsData)

省略可: AVS による確認を受けるユーザーの住所。

レスポンスの本文

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

決済インテグレータがホストする card.verifycard メソッドのレスポンス オブジェクト。

JSON 表現
{
  "responseHeader": {
    object(ResponseHeader)
  },
  "cardNetworkResult": {
    object(CardNetworkResult)
  },
  "avsResult": {
    object(AvsResult)
  },
  "cvnResult": enum(CvnResult)
}
フィールド
responseHeader

object(ResponseHeader)

必須: すべてのレスポンスに共通のヘッダー。

cardNetworkResult

object(CardNetworkResult)

必須: カード ネットワークでの承認発行の結果。

avsResult

object(AvsResult)

省略可: リクエストで送信された住所フィールドの検証結果。

リクエストで addressVerificationSystemData が設定されている場合、このフィールドは必須です。

cvnResult

enum(CvnResult)

必須: リクエストで送信された CVN の検証結果。リクエストに CVN が設定されていない場合、この値は NOT_SENT になります。

RequestHeader

サーバーに送信されるすべてのリクエストで定義されるヘッダー オブジェクト。

JSON 表現
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object(Version)
  }
}
フィールド
requestId

string

必須: このリクエストの一意の識別子。

これは、最大 100 文字の文字列で、文字「a ~ z」、「A ~ Z」、「0 ~ 9」、「:」、「-」、「_」のみが含まれます。

requestTimestamp

string (int64 format)

必須: エポックからのミリ秒で表されるこのリクエストのタイムスタンプ。受信側は、このタイムスタンプが「現在」の ±60 秒であることを確認する必要があります。このリクエストのタイムスタンプは、再試行時にべき等ではありません。

userLocale
(deprecated)

string

省略可: 2 文字または 3 文字の ISO 639-2 Alpha 3 言語コード。必要に応じてハイフンと ISO 3166-1 Alpha-2 国コード(「pt」、「pt-BR」、「fil」、「fil-PH」など)。これは、レスポンスの user_message フィールドを制御するために使用します。

protocolVersion

object(Version)

必須: このリクエストのバージョン。

バージョン

従来の a.b.c バージョン構造の構造化されたバージョン オブジェクト。同じ番号のメジャー バージョン間の互換性は保証されます。マイナーおよびリビジョンは、予告なく頻繁に変更される場合があります。インテグレータは、同じメジャー バージョンのすべてのリクエストをサポートする必要があります。

JSON 表現
{
  "major": number,
  "minor": number,
  "revision": number
}
フィールド
major

number

必須: メジャー バージョン。これは、異なるバージョンを持つ互換性リクエストでの互換性が保証されないためです。

minor

number

必須: マイナー バージョン。これは、重大なバグが修正されたことを示します。

revision

number

必須: マイナー バージョン。軽微なバグ修正を示します。

StandardCard

カードの標準的な表現

JSON 表現
{
  "accountNumber": string,
  "expiryDate": string,
  "cvn": string
}
フィールド
accountNumber

string

必須: カードのメインの口座番号(PAN)(書式なしテキスト)。

expiryDate

string

省略可: カードの有効期限(MM/YYYY 形式)。特定の地域の一部のカードには有効期限がないため、省略可。

cvn

string

省略可: Google がユーザーから CVN を収集した場合は、ここに記載され、確認する必要があります。

AvsData

AVS によって検証される住所フィールドが含まれます。

JSON 表現
{
  "streetAddress": string,
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
フィールド
streetAddress

string

省略可: ユーザーの請求先住所の番地。ユーザーが住所を入力するために複数の行(アパート番号の行など)を指定した場合、これらの行はスペースで連結されます。

localityName

string

省略可: 曖昧な用語ですが、通常は住所の市区町村の部分を指します。地域区分が十分に定義されていない地域や、この構造に当てはまらない地域(日本や中国など)では、localityName を空にして address_line を使用します。

例: 米国の都市、イタリアのコミューン、英国の郵便区域。

administrativeAreaName

string

省略可: ユーザーの請求先住所に対するこの国の最上位の行政区域。

例: 米国の州、IT 地域、英国の構成国、日本の都道府県

country == US の場合、米国の州の 2 文字の略語になります。

postalCodeNumber

string

省略可: ユーザーの請求先の郵便番号。

countryCode

string

省略可: ユーザーの請求先住所の国コード(ISO-3166-1 Alpha-2 形式)。

ResponseHeader

サーバーから送信されるすべてのレスポンスで定義されるヘッダー オブジェクト。

JSON 表現
{
  "responseTimestamp": string
}
フィールド
responseTimestamp

string (int64 format)

必須: このレスポンスのタイムスタンプ。エポックからのミリ秒数で表します。受信側は、このタイムスタンプが「現在」の ±60 秒であることを確認する必要があります。

CardNetworkResult

ネットワークとそのネットワークからの未加工の結果コードが含まれます。

JSON 表現
{
  "network": enum(Network),
  "iso8583Result": string,
  "rawNetworkResult": string
}
フィールド
network

enum(Network)

必須: 結果コードの取得元のネットワーク。

iso8583Result

string

必須: ネットワークによって返される ISO-8583 戻りコード。

ネットワークが独自のレスポンス コード形式を使用する場合、インテグレータはそれらのレスポンス コードを ISO-8583 戻りコードにマッピングする必要があります。

rawNetworkResult

string

必須: ネットワークから返される未加工の値。ISO-8583 戻りコードを使用するネットワークでは、このフィールドと iso8583Result に同じ値がすでに設定されています。このフィールドは、Google のリスクエンジンに通知するために使用され、独自のレスポンス コードを使用するネットワークで特に役立ちます。

ネットワーク

rawResult を返した可能性のあるカード ネットワークを定義します。

列挙型
UNKNOWN_NETWORK ネットワークが認識されなかった
NETWORK_NOT_INVOLVED この値は、不承認がネットワークからのものではなかった場合(たとえば、カード ネットワークに送信される前にインテグレータが購入を拒否した場合)に使用します。
AMEX AMEX ネットワーク
COMPROCARD COMPROCARD ネットワーク
DANKORT DANKORT ネットワーク
DINACARD DINACARD ネットワーク
DINERS_CLUB DINERS_CLUB ネットワーク
DISCOVER Discover ネットワーク
EFTPOS EFTPOS ネットワーク
ELO ELO ネットワーク
ENROUTE ENROUTE ネットワーク
FELICA FELICA ネットワーク
GE_CAPITAL GE_CAPITAL ネットワーク
HIPERCARD HIPERCARD ネットワーク
ID ID ネットワーク
INTERAC INTERAC ネットワーク
JCB JCB ネットワーク
LASER レーザー ネットワーク
MAESTRO MAESTRO ネットワーク
MASTERCARD MASTERCARD ネットワーク
PPT PPT ネットワーク
QUICPAY QUICPAY ネットワーク
RUPAY RUPAY ネットワーク
SBERCARD SBERCARD ネットワーク
SOLO 単独のネットワーク
SYNCHRONY SYNCHRONY ネットワーク
UNIONPAY UNIONPAY ネットワーク
VISA VISA ネットワーク

AvsResult

リクエストで指定された住所フィールドの検証結果。

暗黙の結果としてフィールドが存在しないことに依存するのではなく、各フィールドの明示的な結果が必要なため、すべてのフィールドが必須です。

JSON 表現
{
  "rawAvsResult": string,
  "streetAddress": enum(VerificationResult),
  "localityName": enum(VerificationResult),
  "administrativeAreaName": enum(VerificationResult),
  "postalCodeNumber": enum(VerificationResult),
  "countryCode": enum(VerificationResult)
}
フィールド
rawAvsResult

string

必須: カード ネットワークから返された未加工の AVS 値。

streetAddress

enum(VerificationResult)

必須: リクエストの addressVerificationSystemData フィールドで送信された streetAddress の検証結果。

リクエストでこのフィールドが設定されていない場合、この値は「NOT_SENT」である必要があります。

localityName

enum(VerificationResult)

必須: リクエストの addressVerificationSystemData フィールドで送信された localityName の検証結果。

リクエストでこのフィールドが設定されていない場合、この値は「NOT_SENT」である必要があります。

administrativeAreaName

enum(VerificationResult)

必須: リクエストの addressVerificationSystemData フィールドで送信された administrativeAreaName の検証結果。

リクエストでこのフィールドが設定されていない場合、この値は「NOT_SENT」である必要があります。

postalCodeNumber

enum(VerificationResult)

必須: リクエストの addressVerificationSystemData フィールドで送信された postalCodeNumber の検証結果。

リクエストでこのフィールドが設定されていない場合、この値は「NOT_SENT」である必要があります。

countryCode

enum(VerificationResult)

必須: リクエストの addressVerificationSystemData フィールドで送信された countryCode の検証結果。

リクエストでこのフィールドが設定されていない場合、この値は「NOT_SENT」である必要があります。

VerificationResult

列挙型
UNKNOWN_AVS_MATCH このデフォルト値は設定しないでください。
NOT_SENT このフィールドは Google が送信していないため、何もできませんでした。
MATCH Google がインテグレータにこのフィールドを送信し、AVS でチェックした結果、期待値と一致した値が返されました。
MISMATCH Google からインテグレータにこのフィールドが送信され、AVS でチェックされましたが、期待される値と一致しませんでした。
SKIPPED Google はインテグレータにフィールドを送信しましたが、インテグレータはフィールドをチェックしませんでした。
NOT_SPECIFIED Google はフィールドをインテグレータに送信し、インテグレータは AVS を介してフィールドをチェックしましたが、AVS 結果コードでは、フィールドが期待される値と一致したかどうかを知るのに十分な情報がインテグレータに提供されていません。

CvnResult

リクエストで指定された CVN の検証結果。

列挙型
UNKNOWN_CVN_RESULT このデフォルト値は設定しないでください。
NOT_SENT Google から CVN が提供されなかったため、確認できませんでした。
NOT_VERIFIED Google から CVN が送付されましたが、確認が行われていません。これは、ネットワーク結果コード「F」に対応します。
MATCH Google が CVN を送信し、確認が完了し、一致しました。これは、ネットワーク結果コード「M」に対応します。
MISMATCH Google から CVN が送信されました。確認されましたが、一致しませんでした。これは、ネットワーク結果コード「N」に対応します。