This feature is not available on all Primer accounts. Contact your Customer Success Manager to receive access.
Save and reuse cards
Vault the card when you report the outcome, by settingvaultPaymentMethod: true on the resolve call:
SUCCEEDED. Primer returns a saved (multi-use) token, distinct from the single-use token the attempt started with. Store that token against the customer; it’s what you use for a saved card in the checkout and for charging the card later.
A returning customer in the checkout
Create the client session with the samecustomerId as before. The checkout shows the customer’s saved card (network and last four digits); they pick it and click Pay, with or without re-entering the CVV, depending on whether you’ve enabled recapture. The SDK creates a new single-use token from the saved card for this payment (the saved card itself isn’t consumed), and the flow continues exactly as in During the payment: your backend decides whether to approve or send the new token to the proxy.
CVV recapture
PCI rules mean Primer never stores a card’s CVV, so a saved token has noCVV field available. See Proxy reference. A returning customer can still supply a fresh CVV at checkout if you enable CVV recapture: the SDK exchanges it for a single-use token that carries the CVV like any other, which you can then send through the proxy with the CVV placeholder.
Charge a saved card without the customer
For a renewal, subscription charge, or other merchant-initiated payment, there’s no checkout and no client session. Your backend calls the proxy directly with the saved token, the same way it would call your PSP directly today.off_session and confirm for Stripe above), exactly as you would calling them without Primer. There’s no CVV placeholder available on a saved token; most PSPs don’t require it for a card already on file.
The network transaction ID (NTID) that some PSPs return from the first payment on a card, and expect on later merchant-initiated payments, isn’t stored by Primer Vault yet. If your PSP requires it for recurring authorization, keep tracking it yourself for now rather than relying on Primer to carry it forward.
POST /payments instead of the proxy, so Primer runs the renewal’s full lifecycle, including retries:
Move traffic to Primer
This is optional, for merchants who want to grow from a vault-only integration into Primer processing some or all of their payments.
A practical way to start is with a share of traffic rather than a full cutover. Pick a rule you already use to decide where payments go (one card network, one issuer country, one customer segment) and route just that slice to
approve while everything else keeps going through the proxy. Compare the results against what your own PSP was doing, then widen the share once you’re satisfied.