Manage a payment processor migration with a project timeline covering gateway selection, card vault migration, integration testing, and parallel processing.
When you migrate a database, you copy the data from one place to another and cut over. When you migrate payment processors, the equivalent of "the data" — card tokens — cannot be directly copied. Tokens are generated by and belong to each processor's vault. A Stripe token is meaningless to Adyen. An Adyen token is meaningless to Braintree.
This means every existing subscription customer and stored card needs to either have their token migrated (requires cooperation from both processors), re-tokenize when they next transact, or be proactively contacted to re-enter their card details. Each approach has cost and complexity tradeoffs. Your migration strategy hinges on which approach you use, and that decision should be made in Phase 1 — not discovered in Phase 4.
Current state documentation:
Selection criteria:
Vendor shortlist:
Contract negotiation: get competing offers from at least two finalists. Processing rates are negotiable, especially at >$10M annual volume.
Design the migration architecture before writing code.
Parallel processing architecture:
Route new customers to the new processor while existing customers continue on the legacy processor. This approach:
Card token migration strategy:
Option A — Bulk migration: both processors coordinate to export and import tokens (requires processor agreement and technical support from both sides). Allows same-day migration of all stored cards.
Option B — Lazy migration: existing customers continue on legacy processor. When a subscription renews, or when a customer updates their card, re-tokenize on the new processor. Full migration may take 12–24 months for customers with infrequent renewals.
Option C — Proactive re-auth campaign: email customers asking them to re-enter payment details. Achieves faster migration but has customer friction and non-response risk.
Most companies use Option B or a hybrid: bulk migration for top accounts, lazy migration for the long tail.
Fallback design:
Implement payment flows:
Fraud tools:
Configure the new processor's fraud tools:
Refunds and voids:
Implement refund and void APIs. Refunds on the new processor for charges made on the legacy processor require legacy processor refund APIs — confirm how you'll handle cross-processor refund scenarios during the transition period.
Dispute / chargeback handling:
PCI compliance:
If your integration changes scope — for example, moving from hosted fields to a self-hosted form — reassess PCI scope. Submit updated SAQ or bring in a QSA for assessment before going live.
For bulk migration (if applicable):
For lazy migration:
Track migration percentage weekly. Set a completion target date and communicate to affected teams.
Full test coverage required:
Authorization rate validation:
Run a real-money production pilot on a small segment of new customers. Compare auth rate to legacy processor baseline. Don't declare success until auth rates are confirmed equivalent or better.
Traffic routing:
Start with 10% of new customer traffic to the new processor. Monitor for 48 hours. If auth rates and error rates are acceptable, increase to 25%, then 50%, then 100%.
Parallel monitoring:
New customer cutover: complete cutover of new customer traffic once validation is complete.
Existing customer migration: continue lazy migration program per Phase 4.
Build your payment migration project timeline in gantt-chart.io with explicit milestones for the architecture decision (Phase 2), PCI assessment sign-off, auth rate validation, and full cutover. The token migration strategy decision is a milestone that must happen in Phase 1 — it affects the entire downstream timeline. Visualizing the dependency makes that clear from the start of the project.