card method supports stored credentials (the card brands’ COF
mandate): your payer saves their card with explicit consent on the first
payment, and afterwards you can offer one-click payment without re-typing
the number — or charge subscriptions and unscheduled amounts yourself
without the payer present. The card number never exists in your
integration or on the platform: only an opaque processor reference plus
display data (brand, last 4 digits, expiry) is stored.
1
Seed: offer to save the card on the first payment
Create the The hosted page shows a “Save this card for future payments” checkbox.
The credential is stored ONLY if the payer ticks it and the 3-D Secure
payment is approved. On credit you receive the
card payin with save_card: true and your payer reference:card_stored webhook and
the card appears in your list.2
List the payer's cards
3
Pay with a saved card (payer present)
Create the
card payin with stored_card_id: the page skips card entry,
shows the saved card (VISA •••• 2701) and 3-D Secure still runs — the
payer only confirms with their bank. The billing details the payer
entered when saving the card are also kept on file: the page applies them
automatically and shows only a masked summary (name, partial email, city)
with a “use different details” link in case they want to change them —
nothing is retyped. On the public checkout page, paying with a saved card
additionally requires entering the same cardholder email it was saved
with (a mismatch responds 404).4
Recurring / unscheduled charge (payer not present)
Charge the card directly — subscriptions (Response An issuer decline responds
recurring: true) or
unscheduled amounts your customer agreed to:201 — an approved charge credits your balance automatically
(payin_credited webhook, same path as any card payin):422 with the payin in failed and a
failure_reason. A retry with the same idempotency_key returns the
original payin and never charges twice.DELETE /v1/stored-cards/{stored_card_id} — charges stop working
immediately and you receive stored_card_revoked
(422 stored_card_revoked if you try to charge it afterwards).
Subscriptions (scheduled recurring charges)
Instead of charging manually every month, let the platform run the schedule: create a subscription on the saved card — the first period is charged on creation (unlessstart_at is in the future) and the rest fire
automatically per interval.
201 (first_charge is present when the first period was charged
on creation):
interval:daily,weekly,monthlyoryearly. The day of month is kept and clamped to the last day in short months (a plan on the 31st charges on Feb 28/29 and returns to the 31st in March).start_at(optional, future RFC3339): defers the first charge (trial / start date); without it, it charges on creation.- Dunning: on an issuer decline the platform retries every 24h up to 3
times; exhausted, the subscription becomes
past_dueand you get thesubscription_status_changedwebhook.resumereactivates it with a fresh attempt. - Each successful charge credits your balance like any card payin
(
payin_creditedwebhook, carryingsubscription_idto link it to the plan).
DELETE /v1/stored-cards/{id}) automatically
cancels its subscriptions (cancel_reason: card_revoked).
Subscription states
Errors
The general error catalog lives in Errors.
FAQ
Do you store the card number (PAN)?
Do you store the card number (PAN)?
Never. Saving a card stores an opaque network token — the PAN never touches
the platform. Revoking the credential invalidates the token.
Why don't recurring charges ask for 3-D Secure?
Why don't recurring charges ask for 3-D Secure?
Merchant-initiated transactions (MIT) run without 3DS by card-network
mandate: the payer authenticated with 3DS on the initial consented payment,
and every MIT references that transaction.
What happens to subscriptions if the card is revoked?
What happens to subscriptions if the card is revoked?
They are canceled automatically (
card_revoked). The payer must save the
card again and you create a new subscription.Does pausing accumulate charges?
Does pausing accumulate charges?
No — there is no catch-up: periods elapsed while paused advance the counter
without charging. Resuming charges from the next due period only.
How does dunning work when a charge declines?
How does dunning work when a charge declines?
The scheduler retries up to 3 times, 24 h apart. If all fail the plan moves
to
past_due and you receive subscription_status_changed — no more
charges until you resume.When is the first charge collected?
When is the first charge collected?
Synchronously at creation, unless you pass a future
start_at (trial):
then the first charge waits for that date.