Skip to content
API DocsDocs

Charging a Saved Card

Process a one-click payment using a vaulted card token

2 min readUpdated Mar 24, 2026

Once a card is tokenized, you can charge it by providing the cardToken instead of raw card details. The charge flow is identical to a standard card payment — same 3DS handling, same webhook, same response structure.

#How It Works

Supply the cardToken (from the tokenization endpoint) along with the usual payment context: amount, currency, billing details, and redirect URLs. Exirom resolves the token, applies the same risk checks, and routes the charge through the card network.

  • Billing details from the original tokenization are reused automatically. Pass billingDetails only to override them for a specific charge.
  • 3DS may still be triggered by the issuer, even for a saved card. If required, the response returns transactionStatus: "CUSTOMER_VERIFICATION" with a challengeUrl — handle it exactly as you would for a first-time payment.
  • The final result arrives via webhook to your callbackUrl.

#Key Differences from Standard Payment

Standard Card PaymentCharge with Token
Card inputRaw card detailscardToken
PCI scopeFull PAN in transitToken only
3DSMay be requiredMay still be required
WebhooksSameSame
ResponseSameSame

#Error Cases

ScenarioResult
Token not found or expired400 — charge is declined
Billing details missing from both request and token400
Issuer declinestransactionStatus: "FAILED" with declineCode
Was this helpful?