Card verification

Card verification allows you to accept and verify a cardholder's payment information without actually billing the customer for a charge. This type of authorization request is particularly useful if you're offering a trial period for a product or service.

For example, you may choose to collect credit card information during an initial registration process but offer a 30-day trial period before charging the customer's credit card. The cardholder's details are saved to their account, allowing you to charge the card when necessary.

Verify a card

All merchants with Checkout.com can submit a card verification request. It's as simple as setting up a payment and can be accomplished with either of the following endpoints.

Your card verification request may be unsuccessful
Some issuing banks do not support card verification and reject the charge request even if all card details are accurate. If the issuing bank refuses the card verification request, a follow-up request will be sent automatically with a $1 total amount (or the equivalent in the submitted processing currency).

The request

For card verification, the amount field in the request must either be omitted or set to 0.

{
  "source": {
    "type": "token",
    "token": "tok_yo2zfqgdnn4u7gswjbjmqt5mza"
  },
  "currency": "USD"
}

The response

Use the approved field to check whether or not the authorization was successful ("approved": true). If your authorization was not successful, it's possible the payment used an invalid/expired card, or a valid card with an insufficient available balance.

If you received a 202 response, the payment requires a redirect (e.g., because the payment is 3D Secure).

Below, you can see an example response to a card verification request.

Response example

Take note of the status field in the response – it indicates that the card has been verified.

{
  "id": "pay_aqwuar5sjb5upkupgywyzapfii",
  "action_id": "act_aqwuar5sjb5upkupgywyzapfii",
  "amount": 0,
  "currency": "USD",
  "approved": true,
  "status": "Card Verified",
  "auth_code": "085143",
  "eci": "05",
  "scheme_id": "638284745624527",
  "response_code": "10000",
  "response_summary": "Approved",
  "risk": {
    "flagged": false
  },
  "source": {
    "id": "src_o67xgoxulgnuhgeaxsdk4cbvgq",
    "type": "card",
    "expiry_month": 9,
    "expiry_year": 2022,
    "scheme": "Visa",
    "last4": "4242",
    "fingerprint": "F31828E2BDABAE63EB694903825CDD36041CC6ED461440B81415895855502832",
    "bin": "424242",
    "card_type": "Credit",
    "card_category": "Consumer",
    "issuer": "JPMORGAN CHASE BANK NA",
    "issuer_country": "US",
    "product_id": "A",
    "product_type": "Visa Traditional",
    "avs_check": "S",
    "cvv_check": ""
  },
  "customer": {
    "id": "cus_vrdaroxvawlevmxxvhi66thpum"
  },
  "processed_on": "2019-01-17T17:41:52Z",
  "_links": {
    "self": {
      "href": "https://api.sandbox.checkout.com/payments/pay_aqwuar5sjb5upkupgywyzapfii"
    },
    "actions": {
      "href": "https://api.sandbox.checkout.com/payments/pay_aqwuar5sjb5upkupgywyzapfii/actions"
    }
  }
}

One dollar authorization example

If a standard card verification request (zero dollar authorization) is not successful, our payment gateway will automatically submit a new request to verify the card details. This follow-up request will automatically set the value to $1 (or the equivalent amount in the processing currency).

Note that the value field is now returned as 100 in the response example, which is equivalent to $1.

{
  "id": "pay_j4baqhdakhqudmzne2eojnkbr4",
  "action_id": "act_j4baqhdakhqudmzne2eojnkbr4",
  "amount": 100,
  "currency": "USD",
  "approved": true,
  "status": "Card Verified",
  "auth_code": "338229",
  "eci": "05",
  "scheme_id": "638284745624527",
  "response_code": "10000",
  "response_summary": "Approved",
  "risk": {
    "flagged": false
  },
  "source": {
    "id": "src_ouue63mbxbfejcmttvefgav6lq",
    "type": "card",
    "expiry_month": 8,
    "expiry_year": 2025,
    "scheme": "Visa",
    "last4": "4242",
    "fingerprint": "5CD3B9CB15338683110959D165562D23084E1FF564F420FE9A990DF0BCD093FC",
    "bin": "424242",
    "card_type": "Credit",
    "card_category": "Consumer",
    "issuer": "JPMORGAN CHASE BANK NA",
    "issuer_country": "US",
    "product_id": "A",
    "product_type": "Visa Traditional",
    "avs_check": "S",
    "cvv_check": "Y"
  },
    "customer": {
      "id": "cus_kkmo2cqvrv3uffixivm2u3vcmq"
  },
  "processed_on": "2019-02-15T16:28:34Z",
  "_links": {
    "self": {
      "href": "https://api.sandbox.checkout.com/payments/pay_j4baqhdakhqudmzne2eojnkbr4"
    },
    "actions": {
      "href": "https://api.sandbox.checkout.com/payments/pay_j4baqhdakhqudmzne2eojnkbr4/actions"
    }
  }
}

Can we help?

Thanks for using Checkout.com. If you need any help or support, then message our support team at support@checkout.com.

Card verification


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.