HACKER Q&A
📣 hknmtt

How to migrate between payment processors?


Say I have 1000 customers/cards and am using BrainTree payments but want to switch to Stripe, Adyen, Alipay...

How would I do that without outage(forcing customers to enter their card data manually again)?

Storing card data is a no-no due to PCI DSS. I mean, I can store the name and the card number but not the cvv code which makes it useless in case of migration, since cvv is one of the three details needed to save a card with payment processor.


  👤 mtmail Accepted Answer ✓
It's a pain because as you said customer have to reenter their details again. In case of subscriptions the payment provider needs to collect confirmation they want an ongoing subscriptions (in some countries that means secondary confirmation via 3DS, text message or such). Plus the risk the customer, happy paying for years, suddently either doesn't act or re-evaluates if they really need the subscription. It's a huge lock-in and businesses try to avoid switching if all possible.

Easier for products/e-commerce I'd imagine because that's many single transactions and you wouldn't need to email older customers.

We were lucky. We used a payment provider early on that used Stripe in the background. The product and prices configuration was a bit messed up but we owned the Stripe account and started building our own checkout etc.

BTW Stripe allows companies to move between countries. You'd need a second Stripe account but their customer service can move over all customer and subscription records. I'd imagine it's the same should two companies merge or such.


👤 Gaessaki
It seems like Stripe has an article on how to migrate data to their platform without business interruption on their site. I would imagine others would have similar instructions available.

[1] https://stripe.com/docs/account/data-migrations/pan-import


👤 toast0
Why not use one processor for new customers and continue to use the old processor for existing customers?

It's a little bit more work, but not that much more work, because you can already process with the existing, and you already plan to figure out how to process with the new, but you would need to build context sensitive switching.

As a bonus though, you'd be able to switch things around if one processor is having an outage or if one is better for some customers than the other.