Pay with stored card details
Customers can request to store their card details during a payment, which you can then use for future payments without customers having to re-enter the details.
Information
Only you can access credentials stored in the Vault.
Customer details saved using Remember Me can be accessed by all merchants with Remember Me enabled, regardless of which merchant the customer saved them with.
You can use Remember Me to provide faster checkout for your customers with the Flow, Flow for mobile, Hosted Payments Page, and Payment Links solutions.
In regions that require Strong Customer Authentication (SCA), you must enable 3D Secure (3DS) authentication for the initial payment by setting 3ds.enabled to true in the initial payment request.
If you do not supply the required information, your payment request has a higher risk of declining with a 20154 response code. If this happens, we automatically upgrade the payment to 3DS and retry the transaction. See SCA compliance for more information.
You must also set 3ds.challenge_indicator to challenge_requested_mandate to prevent subsequent CNP transactions from being declined.
Information
If the transaction qualifies, you can also make use of 3DS exemptions.
For more information, see SCA compliance.
To enable one-click payments, or to avoid having to input their card details again for future payments, a customer may request to save their card details during a cardholder-initiated transaction (CIT).
To store your customer's card details during an initial transaction, call the Request a payment endpoint with the following fields:
source.store_for_future_use– Set totruepayment_type– Set toRegularmerchant_initiated– Set tofalse
post
https://api.checkout.com/payments
1{2"source": {3"type": "card",4"number": 4242424242424242,5"expiry_month": 10,6"expiry_year": 2026,7"store_for_future_use": true8},9"amount": 5000,10"currency": "USD",11"payment_type": "Regular",12"merchant_initiated": false,13"3ds": {14"enabled": true,15"challenge_indicator": "challenge_requested"16}17}
1{2"id": "pay_4hlqceyyib5ezpxtpdpwfhwtda",3"status": "Pending",4"reference": "ORD-5023-4E89",5"3ds": {6"downgraded": false,7"enrolled": "Y"8},9"source": {10"type": "id",11"id": "src_nwd3m4in3hkuddfpjsaevunhdy"12},13"_links": {14"self": {15"href": "https://api.sandbox.checkout.com/payments/pay_fbfrj7f3bwou5bdgmzsryd223i"16},17"actions": {18"href": "https://api.sandbox.checkout.com/payments/pay_fbfrj7f3bwou5bdgmzsryd223i/actions"19},20"redirect": {21"href": "https://api.sandbox.checkout.com/redirect/act_y3oqhf46pyzuxjbcn2giaqnb44"22}23}24}
The response returns a payment instrument value in the source.id field, which you can use to request future payments with the stored card details.
To request a payment with stored card details, call the Request a payment endpoint, setting:
- The
payment_typefield toRegular. - The
sourceobject to the payment instrument values:- The
typefield toid. - The
idfield to thesource.idvalue you received when storing the card details.
- The
1{2"source": {3"type": "id",4"id": "src_nwd3m4in3hkuddfpjsaevunhdy"5},6"amount": 5000,7"currency": "USD",8"payment_type": "Regular",9"merchant_initiated": false,10"3ds": {11"enabled": true,12"challenge_indicator": "no_challenge_requested"13}14}
Note
If you process a payment with full card details or network tokens stored in a card-on-file system external to Checkout.com, you must set source.stored to true in the request.
1{2"source": {3"type": "card",4"number": 4242424242424242,5"expiry_month": 10,6"expiry_year": 2026,7"stored": true8},9"amount": 5000,10"currency": "USD",11"payment_type": "Regular"12}