Charge Saved Card
curl --request POST \
--url https://api.atoa.me/api/payments/card/process-payment \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"paymentMethodId": "card_abc123def456",
"captureType": "AUTO_CAPTURE",
"amount": 10.50,
"orderId": "ORDER-001",
"notes": "Payment for order #001"
}'
{
"paymentRequestId": "9baa68d8-362a-4127-994d-2ea622ef35ee",
"status": "PENDING",
"amount": 10.50,
"currency": "GBP",
"orderId": "ORDER-001",
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"paymentMethodId": "card_abc123def456",
"captureType": "AUTO_CAPTURE",
"createdAt": "2025-06-15T10:30:00.000Z"
}
Charge a customer’s saved card without them being present (off-session). The customer must have a previously saved payment method (see List Payment Methods).
The response always returns status: "PENDING" to confirm that the payment processing has started. The final status (COMPLETED, AUTHORIZED, FAILED) is updated asynchronously once the card network confirms the transaction. Use Webhooks to receive real-time status updates, or poll the Get Payment Status API.
For MANUAL_CAPTURE or CAPTURE_BEFORE_EXPIRY, the payment will move to AUTHORIZED once confirmed — you must then call Manual Capture Payment to collect the funds. For AUTO_CAPTURE, the payment moves directly to COMPLETED.
Authorization
Bearer <accessSecret>
Request Body Schema
The customer UUID to charge. Must be a valid UUID.
The saved card ID from List Payment Methods response (id field). 1-64 characters.
How to capture the payment.
Payment amount in pounds. Example: 10.50 for ten pounds fifty pence. Minimum: £1.
Your merchant order reference for tracking. 1-50 characters, must not be blank.
Short payment description or notes. Max 30 characters.
Store UUID. If not provided, the merchant’s primary store is used. Refer Get Stores API.
Response
Always PENDING in the initial response. Indicates that payment processing has been initiated. The final status is updated asynchronously via webhook.
Payment amount in pounds.
Currency code (e.g., GBP).
Your merchant order reference.
The charged customer’s UUID.
The card used for payment.
The capture type used.
ISO 8601 timestamp.
When the authorization expires (only for MANUAL_CAPTURE / CAPTURE_BEFORE_EXPIRY).
curl --request POST \
--url https://api.atoa.me/api/payments/card/process-payment \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"paymentMethodId": "card_abc123def456",
"captureType": "AUTO_CAPTURE",
"amount": 10.50,
"orderId": "ORDER-001",
"notes": "Payment for order #001"
}'
{
"paymentRequestId": "9baa68d8-362a-4127-994d-2ea622ef35ee",
"status": "PENDING",
"amount": 10.50,
"currency": "GBP",
"orderId": "ORDER-001",
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"paymentMethodId": "card_abc123def456",
"captureType": "AUTO_CAPTURE",
"createdAt": "2025-06-15T10:30:00.000Z"
}