Migrate off Stripe
Leave Stripe without asking customers to re-add their cards
Move card-on-file off Stripe pm_* references to Veliro tok_* under your TRID. Switch acquirers by changing connection_id, not by re-collecting millions of stored credentials.
Stripe is where many merchants first store cards, and where lock-in often begins. Payment method IDs (pm_*) and Customer objects with attached cards only authorize on Stripe. Renegotiating rates, adding Adyen for Europe, or surviving a Stripe outage all hit the same wall: your credential file does not travel.
Veliro decouples custody from routing. Cards provision into network tokens under your Token Requestor ID (or PAN fallback in tenant-isolated vault where schemes require it). Your database keeps tok_*, not pm_*. Stripe becomes one connection_id on POST /v1/forward, not the owner of the relationship.
A practical Stripe exit rarely flips 100% of traffic overnight. Teams run Veliro Secure Fields on new checkout while legacy pm_* subscriptions drain, then point billing workers at forward with a new connection when the successor PSP is ready. Customers never see a “please update your card” email unless you choose to re-collect for other reasons.
Stripe Radar, Billing, and Connect still work on the authorizations you forward; Veliro does not replace those products. It removes the structural reason a Stripe contract renewal is existential, because leaving no longer means rebuilding card-on-file.
Migration phases
Inventory what is Stripe-bound
Export counts of active subscriptions and card-on-file records stored as pm_* or Stripe Customer payment methods. Segment by revenue, geography, and retry logic; migration order should follow money, not alphabet.
Provision tok_* on new capture
Route checkout through Secure Fields and POST /v1/tokens. New cards land as tok_* under your TRID while existing pm_* continue on Stripe connection until you cut over each cohort.
Register the successor PSP
POST /v1/connections for Adyen, Checkout.com, or another acquirer. Test forward in sandbox with fresh cryptograms before touching production billing.
Cut over by connection_id
Change connection_id on forward for each cohort. tok_* stays constant; only the authorization rail changes. Monitor decline codes and approval rates for two full billing cycles.
Drain and decommission Stripe vault usage
Disable Stripe connection when forward traffic reaches zero. Keep Stripe only if you still need Connect payouts or unrelated products, not as credential custodian.
Common pitfalls
- Running Stripe Elements and Veliro Secure Fields in parallel without a plan for which ID is canonical in your database.
- Fetching cryptograms at token creation instead of immediately before forward causes intermittent declines blamed on the new PSP.
- Deleting Stripe customers before all tok_* cohorts forward successfully.
- Assuming Stripe Billing migration is automatic; subscription logic may still need webhook rewiring even when cards port.