Card on File requires card payments to be activated on your merchant account. Contact support if not enabled.
Save During Checkout
For most merchants, saving cards during the checkout flow is the simplest and most effective approach.1
Create a Customer (Optional but Recommended)
Use the Create Customer API to create a customer before checkout. This enables better tracking and customer management.Response includes
id (customer UUID) to use as atoaCustomerId in the next step.2
Process Payment with savePaymentMethod
Call Process Payment with The card is automatically saved after successful 3DS authentication.
savePaymentMethod=true and atoaCustomerId from step 1:atoaCustomerId is the Atoa customer UUID returned from step 1 (Create Customer API). This is different from customerId, which is your own merchant reference for the customer.3
Retrieve Saved Cards
Use List Payment Methods to see all cards saved for a customer:
4
Process Future Payments
Option A: Faster Checkout (One-Click)Pass Customer sees their saved cards and can complete payment with one click.Option B: Charge Saved CardUse Charge Saved Card to charge a saved card without customer interaction:
atoaCustomerId in process-payment to automatically show saved cards at checkout:Authentication
All Card on File endpoints use Bearer token authentication. Generate youraccessSecret from the Atoa Business App or Web Dashboard (Profile icon > Settings > API Access).
Capture Types
When processing a card payment, you choose a capture type that determines how and when funds are collected:Payment Status Lifecycle
Webhooks
Card on File payments trigger the samePAYMENTS_STATUS webhook event as Pay by Bank payments. Subscribe to webhooks to receive real-time notifications when payment status changes.
For card payments, the webhook payload includes additional statuses:
See Payment Status Webhook Payload for the full payload structure.
Checking Payment Status
Use the existing Get Payment Status API (GET /api/payments/v1/payment-status/{paymentRequestId}) to check the status of card payments. For card transactions, the response includes a cardPaymentDetails object in each transaction detail with card-specific information such as card type, capture type, and masked card number.