Method: verifyCardWithMinimumReservation

Verifies a user's card to see if it is valid.

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. asynchronousCancelFundsReservation will be called in order to return any reserved funds to 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": "SpeedyPaymentsIndia_INR",
  "card": {
    "accountNumber": "4123456789101112",
    "nameOnCard": "Example Customer",
    "expiryMonth": "01",
    "expiryYear": "20",
    "cvn": "123"
  },
  "currencyCode": "INR",
  "transactionDescription": "Movie ACB",
  "merchantCategoryCode": "5815",
  "addressVerificationData": {
    "addressLine": ["2 Inner Ring Road"],
    "localityName": "Bangalore",
    "administrativeAreaName": "Karnataka",
    "postalCodeNumber": "560071",
    "countryCode": "IN"
  }
}

An example response looks like:


{
  "responseHeader": {
    "responseTimestamp": "1481899950236"
  },
  "cardNetworkResult": {
    "rawResult": {
      "scope": "VISA",
      "rawCode": "00"
    },
    "authorizationCode": "123456"
  },
  "addressVerificationResult": {
    "result": {
      "rawAvsResult": "M",
      "addressLine": "MATCH",
      "localityName": "MATCH",
      "administrativeAreaName": "MATCH",
      "postalCodeNumber": "MATCH",
      "countryCode": "MATCH",
      "nameOnCard": "MATCH"
    }
  },
  "cvnResult": "MATCH",
  "result": "SUCCESS",
  "cardMetadata": {
    "issuerName": "exampleissuer",
    "issuingCountryCode": "IN",
    "networks": ["VISA"],
    "cardType": "CREDIT_CARD"
  },
  "fundsTransferFlow": "NOT_SUPPORTED",
  "reserveCaptureFlow": "SUPPORTED",
  "additionalTransactionProcessingResult": {
    "storedCredentialInformationSuccessful": {
      "networkTransactionIdentifier": "cdf04f0d-44a8-4b5d-bf63-440e9194db33"
    }
  }
}

HTTP request

POST https://www.integratorhost.example.com/integrator-base-path/v1/payment-integrator-card-fop-api/verifyCardWithMinimumReservation

Request body

The request body contains data with the following structure:

JSON representation
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "card": {
    object (Card)
  },
  "currencyCode": string,
  "transactionDescription": string,
  "merchantCategoryCode": string,
  "addressVerificationData": {
    object (AddressVerificationData)
  },
  "storedCredentialTransactionInformation": {
    object (StoredCredentialTransactionInformation)
  }
}
Fields
requestHeader

object (RequestHeader)

REQUIRED: Common header for all requests.

paymentIntegratorAccountId

string

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

card

object (Card)

REQUIRED: Data about the user's payment card.

currencyCode

string

REQUIRED: ISO 4217 3-letter currency code.

transactionDescription

string

REQUIRED: This is the description of the transaction that can be put on the customer's statement. This format can be changed without notice and must never be parsed. This field is classified as SPII because it can contain sensitive information, for example one-time password.

merchantCategoryCode

string

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

addressVerificationData

object (AddressVerificationData)

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

storedCredentialTransactionInformation

object (StoredCredentialTransactionInformation)

OPTIONAL: Information about usage of stored credentials.

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 (VerifyCardWithMinimumReservationResponse)

HTTP 4XX / 5XX Status

object (ErrorResponse)

VerifyCardWithMinimumReservationResponse

Response object for the payment integrator hosted card-fop-v1.verifyCardWithMinimumReservation method.

JSON representation
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "cardNetworkResult": {
    object (CardNetworkResult)
  },
  "addressVerificationResult": {
    object (AddressVerificationResult)
  },
  "cvnResult": enum (CvnResult),
  "result": enum (VerifyCardWithMinimumReservationResultCode),
  "cardMetadata": {
    object (CardMetadata)
  },
  "fundsTransferFlow": enum (CapabilitySupport),
  "reserveCaptureFlow": enum (CapabilitySupport),
  "additionalTransactionProcessingResult": {
    object (AdditionalTransactionProcessingResult)
  }
}
Fields
responseHeader

object (ResponseHeader)

REQUIRED: Common header for all responses.

cardNetworkResult

object (CardNetworkResult)

REQUIRED: The result of issuing the authorization 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 NOT_SENT.

result

enum (VerifyCardWithMinimumReservationResultCode)

REQUIRED: Result of this call.

cardMetadata

object (CardMetadata)

REQUIRED: Optional metadata about the card that may be useful for future processing and debugging.

fundsTransferFlow

enum (CapabilitySupport)

REQUIRED: Set to SUPPORTED if this card supports Funds Transfer (single message) protocol.

reserveCaptureFlow

enum (CapabilitySupport)

REQUIRED: Set to SUPPORTED if this card supports the Reserve card-fop-v1.capture (dual message) protocol.

additionalTransactionProcessingResult

object (AdditionalTransactionProcessingResult)

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

VerifyCardWithMinimumReservationResultCode

Result codes for the verifyCardWithMinimumReservation method.

Enums
VERIFY_CARD_WITH_MINIMUM_RESERVATION_RESULT_CODE_UNSPECIFIED Do not ever set this default value!
SUCCESS card-fop-v1.capture Funds Reservation notification was successfully processed.
CARD_ACTIVITY_EXCEEDS_AMOUNT_LIMIT The recent activity on the user's card has exceeded the total amount allowed by the issuer.
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 tansaction was declined because the CVN did not match.
DO_NOT_HONOR The network returned "Do not honor".
INSUFFICIENT_FUNDS Insufficient funds on the user's account.
ISSUER_DECLINED The transaction was declined by the issuer.
REVOCATION_OF_AUTHORIZATION The network returned "Revocation of authorization order".
STOP_PAYMENT The network returned "stop payment".
SUSPECTED_FRAUD The issuer suspects that this transaction is fraud.
TRANSACTION_COULD_NOT_BE_ROUTED The Network could not route this transaction for processing.
TRANSACTION_INVALID The network returned invalid transaction.
TRANSACTION_NOT_ALLOWED This transaction 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 payment authorization request, for this transaction to succeed.

CapabilitySupport

The degree to which a given capability is supported by the given card.

Enums
CAPABILITY_SUPPORT_UNSPECIFIED Do not ever set this default value!
INTEGRATOR_CANNOT_SPECIFY_SUPPORT The payment integrator is not able to specify if this capability is supported by this card.
SUPPORTED This capability is supported by this card.
NOT_SUPPORTED This capability is not supported by this card.