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.
Seed: offer to save the card on the first payment
card payin with save_card: true and your payer reference:card_stored webhook and
the card appears in your list.List the payer's cards
Pay with a saved card (payer present)
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. This server-to-server path needs no extra verification:
you already know your customer.Don’t know which card they have saved (or whether they have one)? Don’t
pass stored_card_id: the payment page lets the payer discover their cards
by verifying their email with a code — see
the payer discovers their cards.Recurring / unscheduled charge (payer not present)
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).
The payer discovers their cards on the payment page
Every card payment page — thepayment_url of a card payin and the card
option of the universal checkout — asks for the payer’s email as the
first field. If that email has saved cards with you, the page sends a
verification code (branded with your organization’s identity) and only
once they enter it correctly does it reveal their cards: brand, last 4
digits and expiry, never the full number. Picking one pays with 3-D Secure
without re-typing it; they can also choose “use another card” and pay with
a new one.
The payer types their email
customer.email (or a payer_reference holding
an email), the page shows it pre-filled. If the email has no saved cards,
the new-card form carries on — nothing is revealed.They verify it with the code (once per device)
They pick the card and pay
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
FAQ
Do you store the card number (PAN)?
Do you store the card number (PAN)?
Why don't recurring charges ask for 3-D Secure?
Why don't recurring charges ask for 3-D Secure?
What happens to subscriptions if the card is revoked?
What happens to subscriptions if the card is revoked?
card_revoked). The payer must save the
card again and you create a new subscription.Does pausing accumulate charges?
Does pausing accumulate charges?
How does dunning work when a charge declines?
How does dunning work when a charge declines?
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?
start_at (trial):
then the first charge waits for that date.Why does the payment page ask for a code sent to the payer's email?
Why does the payment page ask for a code sent to the payer's email?
Must the payer verify their email on every payment?
Must the payer verify their email on every payment?