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

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

例: 米国の州、イタリア地域、英国構成国、日本の都道府県

「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 ディスカバリー ネットワーク
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」に対応します。