Charging a Saved Card
POST /v1/payments/card/charge
POST /v1/payments/card/chargeThis endpoint allows you to charge a customer’s card using a previously generated token (from the tokenize
endpoint). It creates a payment transaction similar to the standard card payment initiation, but instead of
raw card details, you supply the token.
Request Body Parameters
The charge request requires the following JSON fields:
Field | Type | Required | Description |
|---|---|---|---|
| String | Yes | Unique ID for this charge request (used for idempotency and tracking). |
| String | Yes | Merchant account ID that the transaction belongs to. |
| String | Yes | The card token obtained from a prior tokenization ( |
| String | Yes | Amount to charge, in string format (following the currency’s format). |
| String | Yes | Currency code in ISO 4217 format (e.g., |
| String | No | URL for webhook callback with the transaction result. Required if 3DS or async processing is possible. |
| String | No | URL to redirect the customer after successful 3D Secure authentication (if required). |
| String | No | URL to redirect the customer after failed 3D Secure authentication. |
| Object (Order Object) | No | Order or transaction details (order ID, description, etc.) for recordkeeping. |
| Object (BillingDetails Object) | No | Customer billing info, if needed (optional if already known or not required for this charge). |
| Object (Device Object) | No | Device information if the charge involves customer interaction. Required if 3D Secure may be triggered. |
| Map<String, String> | No | Additional metadata for this transaction. |
This request works much like the normal card payment request, except that the card details are not passed
(the token is used instead). If the token was created from a card that requires 3D Secure or if the
circumstances of the charge require extra authentication (e.g., a high-risk transaction or regulatory
requirement), the response may include a challengeUrl for 3DS, just as with a normal payment. Ensure
that you provide the callbackUrl and redirect URLs if a 3DS challenge is possible.
Response Body
The response for charging a tokenized card will have the same structure as a normal payment initiation.
You will receive a transactionId and transactionStatus, and possibly `challengeUrl fields if
further authentication is needed. You should handle the response and any subsequent webhook the same
way as for a normal payment request.
For example, a successful immediate charge might return:
{
"transactionId": "742609401625775731",
"transactionStatus": "PENDING"
}(You would then wait for a webhook or poll the status to see if it succeeds.)
If a 3D Secure authentication is required for this token charge, you might see:
{
"transactionId": "742609401625775732",
"transactionStatus": "CUSTOMER_VERIFICATION",
"challengeUrl": "https://secure-3ds-url.com/challenge?...",
"challengeUrlIframe": "https://secure-3ds-url.com/iframe-challenge?..."
}In this case, you should redirect the user to challengeUrl (or use the iframe URL) to complete the
authentication, just like with a normal card payment.
Updated 8 days ago
