Migration

Migrating from another subscription app

Move your subscribers from Recharge, Stripe, Bold, Smartrr, PayPal Express, Authorize.net, Braintree or a CSV file into RecurX, check the import, and activate the subscriptions without charging anyone twice.

5 min read1013 words

The Migrate page brings your existing subscriptions into RecurX. For every subscription in your old app or payment processor, RecurX creates a new Shopify subscription contract with the customer, products, quantity, price, billing frequency, next billing date, shipping address and discount. Plan an afternoon for your first import: most of the time goes into exporting from the old app and checking the result.

Before you start:

  • Create your plans in RecurX first. An imported contract is linked to your selling plan when exactly one plan matches it. See Create a subscription plan.
  • Know that saved cards don't transfer. RecurX can't copy cards or payment tokens from another app or processor, so imported subscriptions start with no payment method. Customers add one in the customer portal (Step 6).
  • Want help? Click Book a free migration call at the top of the Migrate page.

Step 1: Open Migrate

  1. In your Shopify admin, open Apps → RecurX Subscriptions.
  2. Go to Subscriptions and click Open Migrate on the Migrate card.
The Subscriptions overview with the Open Migrate button highlighted on the Migrate card
The Subscriptions overview with the Open Migrate button highlighted on the Migrate card

Step 2: Choose where your subscriptions are now

Under Where are your subscriptions now?, open Source and pick one:

Source How it imports
Recharge Paste a Recharge API token. RecurX reads subscriptions, customers and addresses
Stripe Paste a Stripe restricted API key, optionally with a list of customer IDs
Bold Subscriptions Paste a Bold API key
Smartrr Upload Smartrr's Subscriptions report export (CSV)
PayPal Express, Authorize.net, Braintree Upload a CSV file in RecurX's template
Another app (CSV file) Upload a CSV file in RecurX's template — use this for any other app
Contracts RecurX created in Shopify Finds RecurX's own contracts that aren't in the subscriber list, for example after a reinstall. It can't read contracts another app created
The Migrate page with the Source dropdown and the Book a free migration call button numbered
The Migrate page with the Source dropdown and the Book a free migration call button numbered

Note: RecurX can't read subscription contracts that another app created in Shopify. Bring those in from that app (API key) or with a CSV file.

Step 3: Check the requirements

A Before you import from … card appears for the source you picked. Both rows must say Ready:

  • RecurX can create subscription contracts in your store
  • The … importer is available for your store

Under Check these yourself, it reminds you about saved cards and pausing your old app. Click Refresh to check again after fixing something.

The Before you import from Recharge card with both requirements Ready
The Before you import from Recharge card with both requirements Ready

Important: Pause billing in your previous app for the subscriptions you import, so customers aren't charged twice.

Step 4: Import

With an API key (Recharge, Stripe, Bold):

  1. Paste the key or token. RecurX uses it for this import only and doesn't store it.
  2. Keep Create every subscription paused until I activate it (recommended) ticked. Nothing is charged until you activate the imported subscriptions in Step 5.
  3. Click Import from ….
The Import from Recharge card with the API token field, the create paused checkbox and the Import button numbered
The Import from Recharge card with the API token field, the create paused checkbox and the Import button numbered

With a CSV file:

  1. Click Download template CSV and fill it in: one row per subscription line. Required columns: customer_email, variant_id, quantity, interval_unit, interval_count, next_billing_date. Every row also needs a price (use 0 only for a free item).
  2. Click Add file and choose your .csv file.
  3. Keep Create every subscription paused until I activate it (recommended) ticked and click Import from ….
The Import from a CSV file card with Download template CSV and Add file numbered
The Import from a CSV file card with Download template CSV and Add file numbered

Tip: Rows for the same customer and billing frequency become one contract with several products. Add delivery_price for the shipping charged on each renewal — without it, those subscriptions ship free until you set a shipping price on the contract in Shopify.

Contracts RecurX created in Shopify: click Scan for contracts, tick the contracts to bring back and click Import N contracts. This doesn't create, change or charge anything in Shopify.

The Find RecurX contracts in Shopify card with the Scan for contracts button highlighted
The Find RecurX contracts in Shopify card with the Scan for contracts button highlighted

Imports run in the background, so large files are fine. You can leave the page and follow progress under Import history.

Step 5: Check the import and activate

  1. Under Import history, find your import. It shows Total, Imported and Failed.
  2. Click Details to see each warning and error, or Download report for the full list.
The Import history table with the Details button highlighted
The Import history table with the Details button highlighted
The details of an import with its counts and a warning about a missing delivery price
The details of an import with its counts and a warning about a missing delivery price
  1. When your old app no longer bills these customers and they have added a card, click Activate on the import. Type the number of contracts to confirm. Contracts that still have no card stay paused.

Tip: Something wrong? Click Roll back on the import. It cancels the subscription contracts that import created in Shopify. You can't undo a rollback.

Step 6: Get customers to add a card

Imported subscriptions have no payment method, so they can't be charged yet. Customers who have a card saved in Shopify can choose it in the customer portal; others enter a card there. Tell your customers before their next billing date. See Set up the customer portal.

Note: The Send payment-update email bulk action skips subscribers whose contract has no card, so it can't reach imported subscribers yet. To move saved cards from your previous processor, contact Shopify Support about migrating saved payment methods.

How migration works

Click Show on How migration works at the bottom of the page for the full rules.

The How migration works card expanded
The How migration works card expanded
  • Not moved: past billing attempts and data that only your previous app uses. Your Shopify order history stays as it is.
  • Importing again: the exact same file from the same source skips rows already imported. If billing dates changed, or you pick a different source, the rows import again — check Import history first.

Troubleshooting

  • "Importing from … isn't turned on for your store yet. Book a migration call to plan the move." — the importer for that source isn't available on your store. Use Another app (CSV file), or book the call.
  • "The file is missing these columns: …" — download the template and match its column names.
  • "Another import is still running for your store." — wait for it to finish in Import history, then try again.
  • "Stripe customer IDs start with cus_." — check the IDs you pasted, or leave the field empty to import every customer with an active subscription.

Related articles

Need help?

Ask in chat — our assistant answers straight away from these guides, and a person from the team takes over whenever you ask. Or email [email protected].

Email support