Guides
API Reference

Our reference library for integrating with our API

FAQ

Find answers to our most frequently asked questions

Classic Docs

Documentation for our Classic API

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

The request

To verify a card, simply set up a payment request using one of the following endpoints, with the amount field omitted or set to 0.

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).

Request example

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

The response 

If the approved field is true and the status field has a value of Card Verified, the verification was successful. If unsuccessful, the card may be invalid/expired or the account may have an insufficient available balance.

If you received a 202 response, a redirect is required (e.g., because 3D Secure authentication is required).

Verifying a card for payouts

If you're verifying a card before paying out to it, you should pay particular attention to the source.payouts and source.fast_funds fields. See below for details.

Response example

{
  "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": "",
	"fast_funds": "d",
	"payouts": true
  },
  "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"
    }
  }
}

Verifying a card for payouts 

If you're verifying a card before paying out to it, you should pay particular attention to the source.payouts and source.fast_funds fields in the card verification response.

If the card is eligible for payouts, you'll see "payouts": true in the source object.

And if the card is enabled for Fast Funds (meaning the card allows funds to be deposited in the recipient's account within 30 minutes, rather than within 48 hours), you'll see the fast_funds field in the source object with one of the following values, which define the geographic scope as detailed in the table below.

    • d: domestic transactions only
    • c: cross-border transactions only
    • dc: domestic and cross-border transactions
    • u: unsupported

If you want to test seeing payout eligibility and Fast Funds enablement in a response, use this test card in your card verification request: 4242424242424242.

Fast Funds is widespread in the European Economic Area (EEA), but cannot be guaranteed.

Geographic scopeDefinitionExamples
DomesticSender and recipient are in the same country.
  • A money transfer between two people in Germany.
  • A funds disbursement between a merchant and a person in the United Kingdom.
Cross-borderSender and recipient are in different countries.
  • A money transfer between a sender in the United Kingdom and a recipient in France.
  • A funds disbursement between a merchant in the United Kingdom and a recipient in Malta.

One dollar authorization

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).

Once authorized, this payment will be automatically voided and the amount will be returned to the customer.

Note that the value field is now returned as 100 in the response example, which, in this case, 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",
	"fast_funds": "d",
	"payouts": true
  },
    "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"
    }
  }
}