post
https://sandbox-api-gtw.softpoint.io/api//customers//payment-methods/cards
This API is used to save to the customer a card tokenized with the iframe (after Card session).
It returns the saved card. Its id is the payment_method_id used by Transfer in.
Note: No amount is charged and no address verification (AVS) is run. billing_address is only stored.
URL
{{interface_url}}/{{version}}/customers/{{customer_id}}/payment-methods/cards
Method
POST
Headers
Authorization: Bearer {access_token} (or Api-Key)
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| token | String | Yes | Card token returned by the iframe (card_data.token). Max 45. |
| last4 | String | Yes | 4 digits. |
| exp_month | Integer | Yes | 1-12. |
| exp_year | Integer | Yes | 2 digits (0-99). |
| card_type | String | No | Brand from the iframe (e.g. VISA). Max 20. |
| card_holder | String | No | Max 45. |
| transaction_no | String | No | Iframe transaction_id. Max 45. |
| default | Boolean | No | Make it the default method. |
| billing_address.line1 / line2 | String | No | Max 100. |
| billing_address.city / state | String | No | Max 45. state as a code (e.g. TX). |
| billing_address.zipcode | String | No | Max 20. |
| location_id | Integer | Conditional | Location to use. Required when the token covers more than one location (corporate / sub corporate); with a location token it is taken from the token. |
URL Parameters
| Parameter | Required/Optional | Type | Description |
|---|---|---|---|
| customer_id | Required | Integer | Our customer ID (id returned by Create customer). |
Example Request (cURL)
curl --location --request POST '{{interface_url}}/{{version}}/customers/{{customer_id}}/payment-methods/cards' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
"location_id": 279685,
"token": "GRYfiyggFSBV0670",
"card_type": "VISA",
"last4": "4242",
"exp_month": 12,
"exp_year": 28,
"card_holder": "Ana Garcia",
"default": true,
"billing_address": {
"line1": "100 Main St",
"city": "Austin",
"state": "TX",
"zipcode": "78701"
}
}'
Example Response (JSON) — 201
{
"id": 90311,
"type": "card",
"location_id": 279685,
"holder": "Ana Garcia",
"default": true,
"created_at": "2026-11-05T18:16:18Z",
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 28,
"billing_address": {
"line1": "100 Main St",
"line2": null,
"city": "Austin",
"state": "TX",
"zipcode": "78701",
"country_iso": "US"
}
}
Error Responses
Format: { "error": { "code", "name", "message", "details" } }
| Status | Error | When |
|---|---|---|
| 400 | missing_required_parameters | Missing or invalid field (see error.details). |
| 404 | customer_not_found | The customer is not linked to that location. |
| 502 | payment_gateway_unexpected_response | The card could not be saved. Retry. |

