Card verification
Last updated: April 29, 2022
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.
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
.
Warning
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).
For the full specification, as well as complete request and response examples, see our API Reference
post
https://api.checkout.com/payments
1{2"source": {3"type": "token",4"token": "tok_yo2zfqgdnn4u7gswjbjmqt5mza"5},6"currency": "USD"7}
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.
1{2"id": "pay_aqwuar5sjb5upkupgywyzapfii",3"action_id": "act_aqwuar5sjb5upkupgywyzapfii",4"amount": 0,5"currency": "USD",6"approved": true,7"status": "Card Verified",8"auth_code": "085143",9"eci": "05",10"scheme_id": "638284745624527",11"response_code": "10000",12"response_summary": "Approved",13"risk": {14"flagged": false15},16"source": {17"id": "src_o67xgoxulgnuhgeaxsdk4cbvgq",18"type": "card",19"expiry_month": 9,20"expiry_year": 2022,21"scheme": "Visa",22"last4": "4242",23"fingerprint": "F31828E2BDABAE63EB694903825CDD36041CC6ED461440B81415895855502832",24"bin": "424242",25"card_type": "Credit",26"card_category": "Consumer",27"issuer": "JPMORGAN CHASE BANK NA",28"issuer_country": "US",29"product_id": "A",30"product_type": "Visa Traditional",31"avs_check": "S",32"cvv_check": "",33"fast_funds": "d",34"payouts": true35},36"customer": {37"id": "cus_vrdaroxvawlevmxxvhi66thpum"38},39"processed_on": "2019-01-17T17:41:52Z",40"_links": {41"self": {42"href": "https://api.sandbox.checkout.com/payments/pay_aqwuar5sjb5upkupgywyzapfii"43},44"actions": {45"href": "https://api.sandbox.checkout.com/payments/pay_aqwuar5sjb5upkupgywyzapfii/actions"46}47}48}
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 onlyc
: cross-border transactions onlydc
: domestic and cross-border transactionsu
: unsupported
Information
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
.
Note
Fast Funds is widespread in the European Economic Area (EEA), but cannot be guaranteed.
Geographic scope | Definition | Examples |
---|---|---|
Domestic | Sender and recipient are in the same country. |
|
Cross-border | Sender and recipient are in different countries. |
|
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
We do not support $0 card verifications for 3DS1. 3DS1 payments will automatically authorize with $1.
Once authorized, this payment will be automatically voided and the amount will be returned to the customer.
Information
Note that the value field is now returned as 100
in the response example, which, in this case, is equivalent to $1.
1{2"id": "pay_j4baqhdakhqudmzne2eojnkbr4",3"action_id": "act_j4baqhdakhqudmzne2eojnkbr4",4"amount": 100,5"currency": "USD",6"approved": true,7"status": "Card Verified",8"auth_code": "338229",9"eci": "05",10"scheme_id": "638284745624527",11"response_code": "10000",12"response_summary": "Approved",13"risk": {14"flagged": false15},16"source": {17"id": "src_ouue63mbxbfejcmttvefgav6lq",18"type": "card",19"expiry_month": 8,20"expiry_year": 2025,21"scheme": "Visa",22"last4": "4242",23"fingerprint": "5CD3B9CB15338683110959D165562D23084E1FF564F420FE9A990DF0BCD093FC",24"bin": "424242",25"card_type": "Credit",26"card_category": "Consumer",27"issuer": "JPMORGAN CHASE BANK NA",28"issuer_country": "US",29"product_id": "A",30"product_type": "Visa Traditional",31"avs_check": "S",32"cvv_check": "Y",33"fast_funds": "d",34"payouts": true35},36"customer": {37"id": "cus_kkmo2cqvrv3uffixivm2u3vcmq"38},39"processed_on": "2019-02-15T16:28:34Z",40"_links": {41"self": {42"href": "https://api.sandbox.checkout.com/payments/pay_j4baqhdakhqudmzne2eojnkbr4"43},44"actions": {45"href": "https://api.sandbox.checkout.com/payments/pay_j4baqhdakhqudmzne2eojnkbr4/actions"46}47}48}