Method: verifyCardWithZeroAmount

Verifies a user's card without reserving any funds on it.

This method is called by Google to verify details of a user's card and to see if the card can be used for payments. No funds are reserved on the user's account.

If the endpoint encounters an error while processing the request, the response body from this endpoint should be of type ErrorResponse.

An example request looks like:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "G1MQ0YERJ0Q7LPM",
    "requestTimestamp": "1481899949606"
  },
  "paymentIntegratorAccountId": "SpeedyPaymentsKorea_KRW",
  "card": {
    "accountNumber": "4123456789101112",
    "nameOnCard": "Example Customer",
    "expiryMonth": "01",
    "expiryYear": "20"
  },
  "merchantCategoryCodeNotPresent": {},
  "pin": "12",
  "dateOfBirth": "1990-01-01"
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": "1481899950236"
  },
  "cardNetworkResult": {
    "rawResult": {
      "scope": "VISA",
      "rawCode": "00"
    },
    "authorizationCode": "123456"
  },
  "addressVerificationResult": {
    "notSent": {
      "support": "UNSUPPORTED_BY_INTEGRATOR"
    }
  },
  "cvnResult": "NOT_SENT_UNSUPPORTED_BY_INTEGRATOR",
  "result": "SUCCESS"
}

HTTP request

POST https://www.integratorhost.example.com/integrator-base-path/v1/payment-integrator-korea-cards-api/verifyCardWithZeroAmount

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "card": {
    object (Card)
  },
  "addressVerificationData": {
    object (AddressVerificationData)
  },
  "paymentIntegratorAccountId": string,
  "storedCredentialTransactionInformation": {
    object (StoredCredentialTransactionInformation)
  },
  "pin": string,
  "connectingInformation": string,
  "dateOfBirth": string,
  "businessIdentifier": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "merchantCategoryCode": string,
  "merchantCategoryCodeNotPresent": {
    object (Empty)
  }
  // End of mutually exclusive fields.
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

card

object (Card)

REQUIRED: Data about the user's payment card.

addressVerificationData

object (AddressVerificationData)

OPTIONAL: The user's address to be verified by AVS.

paymentIntegratorAccountId

string

REQUIRED: This is the payment integrator account identifier that identifies contractual constraints around this transaction.

storedCredentialTransactionInformation

object (StoredCredentialTransactionInformation)

OPTIONAL: Information about usage of stored credentials.

pin

string

OPTIONAL: The PIN used to verify the account holder. This is only passed for cases where it is necessary for verifying the card.

connectingInformation

string

OPTIONAL: The connecting information (CI) that should be associated with this account. This is only passed for cases where it is necessary for verifying the card.

dateOfBirth

string

OPTIONAL: Date of birth in 'YYYY-MM-DD' format for the account holder associated with the account. This is only passed for cases where it is necessary for processing the transaction.

businessIdentifier

string

OPTIONAL: The business identifier that should be associated with the account. This is only passed for cases where it is necessary for verifying the card.

REQUIRED: The merchant category code, if available. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
merchantCategoryCode

string

This is the ISO 18245 merchant category code (MCC) identifying the type of goods/services being purchased by the user.

merchantCategoryCodeNotPresent

object (Empty)

Indicates that the merchant category code is not present. This option is used specifically for certain regions (such as Korea) or cases where MCC is not required by the payment integrator.

End of mutually exclusive fields.

Response body

This method supports multiple return types. For additional information about what 4XX or 5XX HTTP status code to return with an ErrorResponse, consult the ErrorResponse object and HTTP status codes documentation.

Possible response messages
HTTP 200 Status

object (VerifyCardWithZeroAmountResponse)

HTTP 4XX / 5XX Status

object (ErrorResponse)

End of mutually exclusive fields.

VerifyCardWithZeroAmountResponse

Response object for the payment integrator hosted korea-cards-v1.verifyCardWithZeroAmount method.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "cardNetworkResult": {
    object (CardNetworkResult)
  },
  "addressVerificationResult": {
    object (AddressVerificationResult)
  },
  "cvnResult": enum (CvnResult),
  "result": enum (VerifyCardWithZeroAmountResultCode),
  "additionalTransactionProcessingResult": {
    object (AdditionalTransactionProcessingResult)
  }
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

cardNetworkResult

object (CardNetworkResult)

REQUIRED: The result of verifying the card on the card network.

addressVerificationResult

object (AddressVerificationResult)

REQUIRED: The result of verifying the address fields sent in the request.

cvnResult

enum (CvnResult)

REQUIRED: The result of verifying the CVN sent in the request. If the CVN was not set on the request, this value should be one of the NOT_SENT_* values.

result

enum (VerifyCardWithZeroAmountResultCode)

REQUIRED: Result of this call.

additionalTransactionProcessingResult

object (AdditionalTransactionProcessingResult)

OPTIONAL: Information resulting from additional processing options sent in the request.

VerifyCardWithZeroAmountResultCode

Result codes for the verifyCardWithZeroAmount method.

Enums
VERIFY_CARD_WITH_ZERO_AMOUNT_RESULT_CODE_UNSPECIFIED Do not ever set this default value!
SUCCESS The card was successfully verified.
CARD_ACTIVITY_EXCEEDS_COUNT_LIMIT The recent activity on the user's card has exceeded the number of transactions allowed by the issuer.
CARD_AUTHENTICATION_FAILED The network specified that the card authentication failed.
CARD_EXPIRATION_DATE_INVALID The expiration date on the card was invalid.
CARD_EXPIRED The card has expired.
CARD_LOST_OR_STOLEN The card has been lost or stolen. This includes 'Pickup' responses from the network.
CARD_NOT_ACTIVATED The card has not been activated. Also referred to as "Blocked, first used".
CARD_NUMBER_INVALID The card number is invalid.
CUSTOMER_INFO_INVALID The provided customer info is invalid.
CVN_MISMATCH The verification was declined because the CVN did not match.
DO_NOT_HONOR The network returned "Do not honor".
ISSUER_DECLINED The verification was declined by the issuer.
SUSPECTED_FRAUD The issuer suspects that this verification is fraud.
TRANSACTION_COULD_NOT_BE_ROUTED The Network could not route this verification for processing.
TRANSACTION_INVALID The network returned invalid transaction.
TRANSACTION_NOT_ALLOWED This verification is not allowed in this context (e.g. country).
STRONG_CUSTOMER_AUTHENTICATION_REQUIRED The customer must complete Strong Customer Authentication (SCA), and the proof of authentication must be provided along with the verification request, for this verification to succeed.
RECURRING_PAYMENT_NOT_SUPPORTED The verification was part of setting up recurring payments, but recurring payments are not supported for this card.
NETWORK_TIMEOUT There was a timeout while attempting to process the card.
RESTRICTED_CARD The card is restricted from making this type of purchase.
CARD_AUTHENTICATION_EXPIRED The card authentication has expired.
CARD_CANCELLED The card is no longer valid.
PIN_MISMATCH The PIN on the card did not match the one provided in the request.
DOB_OR_BRN_MISMATCH The date of birth or business registration number did not match.
EXCEEDED_MAX_PIN_TRIES The maximum number of incorrect PIN attempts allowed by the issuer has been exceeded.