Email copied
Subscription

How to Migrate Shopify Subscriptions Without Losing Subscribers

Published 3 min read
Two glass spheres joined by a flowing link, representing migrating Shopify subscriptions without losing subscribers

Quick answer

You can migrate Shopify subscriptions without forcing customers to re-enter payment details, as long as the payment processor stays the same. Shopify imports existing pay-as-you-go contracts and vaulted payment tokens from gateways like Stripe and Braintree, so active subscribers keep billing on schedule. The risk is a processor change, which can drop stored tokens and require customers to re-add a card. Pause billing during the move to avoid double-charging, and migrate settings first, subscribers second.

Most brands lose subscribers during a subscription migration for one reason: they treat it like a data export instead of a billing operation. The customers don't churn because the new app is worse. They churn because a renewal charge fails, a card has to be re-entered, or a plan silently breaks, and the subscriber takes that as their cue to leave.

Here's how the pieces actually move, and where subscribers get lost.

What actually moves in a subscription migration

Three things travel, and they don't travel together. The selling plans (the offer: frequency, discount, billing rules), the subscription contracts (each customer's active agreement), and the payment methods (the vaulted token that lets you charge a card again without the customer present). A migration that copies the first two and drops the third looks complete and still breaks on the next billing date.

Shopify built import tools specifically so you don't have to move raw credit card numbers. It can import pay-as-you-go contracts and create payment methods for imported customers by referencing tokens held at gateways like Stripe, Braintree, and Authorize.net. In that setup the old gateway can stay connected to bill existing contracts while new and updated contracts charge through Shopify Payments.

Same processor vs different processor

This is the fork that decides whether customers notice the migration at all.

Scenario What happens to the card on file Customer action needed
Same processor, new app (e.g. Recharge to Skio, both on Stripe) Tokens usually port; billing continues Usually none
App with its own vault to Shopify-native, same processor Tokens referenced by Shopify; billing continues Usually none
Processor change (e.g. old gateway to Shopify Payments outright) Stored tokens often can't transfer Re-enter payment method

The takeaway is blunt. If the underlying payment processor stays the same, a well-run migration is mostly invisible to subscribers. If the processor changes, you are asking every active subscriber to take an action, and every action is a chance to cancel. Plan the processor decision before the app decision.

The order of operations that protects subscribers

Shopify's own migration model runs in two stages, and the order matters. First you migrate settings: recreate the selling plans and selling plan groups, set up delivery profiles and any discount codes, and update the theme code so subscription options render. Then you migrate the subscribers: connect the old gateway as a secondary payment source, create payment methods for imported customers, import the contracts, and start billing attempts.

The one instruction that saves the most subscribers is to pause billing in your current app while the move runs. Migrations run in the background, and if the old system and the new system both attempt a renewal in the same window, customers get charged twice. A double charge on a subscription is a support ticket and a cancellation in the same message.

If your team would rather not run the move at all, some subscription platforms handle it for you. Stay AI, for example, migrates brands from another subscription app end to end, including the contract and token transfer, so you don't have to know the billing mechanics yourself. That can be the right call when the subscriber base is large or the current setup is messy, though it still pays to confirm the processor question above before you start.

Where the churn actually comes from

To be clear, the new app is rarely the reason people leave during a migration. The failure points are narrow and predictable: a failed renewal because a token didn't carry over, a forced card re-entry that a busy customer never completes, a plan that maps to the wrong frequency so the next box shows up wrong, or a notification gap where subscribers hear nothing and assume something's broken.

Every one of those is preventable with a test migration on a small cohort before the full cutover. Move a handful of live contracts, run a real billing attempt, confirm the charge, the order, and the email all fire correctly, then scale. What would you rather debug, ten test contracts or ten thousand live ones?

Written by Andrew Zam, co-founder of Liquid Lemon, a Shopify / Shopify Plus design + development studio. For how subscriptions fit together on Shopify, see our guide to Shopify subscription storefronts. Platform behavior changes, so confirm current Shopify capabilities before you migrate.

Andrew Zam
Written by

Andrew Zam

Founder, Liquid Lemon

LinkedIn
FAQ

Everything you need to know.

Will customers have to re-enter their payment details when I migrate?
Usually not, if the payment processor stays the same. Shopify can import existing contracts and reference vaulted payment tokens from gateways like Stripe and Braintree, so billing continues without customer action. Customers typically only need to re-enter a card when the underlying processor changes and the stored tokens can't transfer, which is why the processor decision matters more than the app decision.
How do I avoid double-charging subscribers during migration?
Pause billing in your current subscription app while the migration runs. Migrations process in the background, so if both the old system and Shopify attempt a renewal in the same window, the customer gets charged twice. Pausing the old app's billing until contracts are fully imported and verified is the single most effective way to prevent double charges and the cancellations that follow.
What order should I migrate subscriptions in?
Settings first, subscribers second. Recreate your selling plans and selling plan groups, delivery profiles, and discounts, and update the theme code so subscription options display. Only then connect the old gateway as a secondary payment source, create payment methods for imported customers, import the contracts, and begin billing attempts. Migrating subscribers before the settings exist is what causes broken plans and mismatched frequencies.
Can I keep my old payment gateway after migrating?
Yes. Shopify supports connecting a gateway like Stripe or Braintree as a secondary payment source to keep billing existing contracts, while new and updated contracts charge through Shopify Payments. This lets active subscribers continue uninterrupted on their original card while your go-forward subscriptions run natively, which avoids a hard cutover that forces every customer to act at once.
How do I test a subscription migration before committing?
Run a test migration on a small cohort first. Move a handful of live contracts, trigger a real billing attempt, and confirm the charge, the resulting order, and the customer email all fire correctly before scaling to the full base. Catching a token or plan-mapping problem on ten contracts is a fix; catching it on ten thousand after the fact is a churn event.

Like this content?

See our posts in Top Stories and AI Overviews.