Step-by-Step Guide

How to Migrate Stripe Subscriptions — Step-by-Step Guide

A complete walkthrough for transferring active subscriptions between Stripe accounts during a SaaS exit. Follow the steps below to preserve billing cycles, protect your MRR, and ensure billing continuity — without double-charging customers.

Choose the guide that matches your migration mode in the app:

Before You Start

Make sure you have everything ready before beginning your migration.

  • Admin access to both Stripe accounts (source and destination)
  • 2FA enabled on both Stripe accounts (required for API key creation)
  • Knowledge of which subscriptions you want to migrate
  • A maintenance window or low-traffic period for the migration
  • Both Stripe dashboards open and accessible during the process
  • Someone with Stripe admin access available for the duration

The Migration Process

Follow these seven steps to complete your Stripe subscription migration safely and confidently. Easy Mode handles all configuration automatically.

01

Create Your Migration Project

Start by creating a new migration project in MoveMRR and selecting Easy Mode. This pre-configures all migration settings with recommended best practices — no manual setup required.

  • Log in to your MoveMRR account
  • Click "Create your first migration"
  • Select "Easy Mode" and enter a project name

Tip: Easy Mode automatically applies best-practice defaults: subscriptions are cancelled at period end, metadata is preserved, and billing cycles stay intact. You can focus on the migration itself.

02

Connect Both Stripe Accounts

Generate restricted API keys for your source (seller) and destination (buyer) Stripe accounts. MoveMRR guides you through creating keys with only the permissions needed.

  • Generate a restricted key for the source account
  • Generate a restricted key for the destination account
  • Validate and store both keys in MoveMRR

Tip: You'll need admin access to both Stripe accounts and 2FA enabled to create restricted keys.

Learn about restricted API keys
03

Copy Customers in Stripe

Use Stripe's built-in Customer Data Copy to transfer customer records and payment method references to the destination account. This is a manual step done directly in Stripe.

  • Copy the destination account ID from Stripe Settings
  • Initiate the customer copy from the source account
  • Accept the transfer in the destination account
  • Wait for Stripe to finish copying all customers

Tip: This step can take a few minutes depending on the number of customers. Keep both Stripe dashboards open.

What does Customer Data Copy include?
04

Upload the Stripe Mapping CSV

After Stripe completes the customer copy, download the mapping CSV from your destination account and upload it to MoveMRR — unmodified.

  • Go to Settings > Compliance > My Documents in the destination account
  • Download the "Data Transfer" document (CSV)
  • Upload the CSV to MoveMRR exactly as downloaded

Tip: Do not open and re-save the CSV in Excel or Google Sheets — this can change the formatting and cause validation errors.

05

Set Up Products & Prices

Let MoveMRR auto-create your products, prices, and coupons in the destination account, or map them manually. Everything is handled in a single combined step.

  • Auto-create products in the destination account
  • Auto-create prices and coupons — MoveMRR stores the mappings
  • Manually map any prices that couldn't be auto-created

Tip: If a price was archived in the source account, you may need to create it manually in Stripe and add a manual mapping in MoveMRR.

How billing anchors preserve renewal dates
1
06

Execute the Migration

With one click, MoveMRR recreates subscriptions in the destination account and safely deactivates the old ones — in controlled batches with full rollback safety.

  • Start the dry-run to preview changes (recommended)
  • Review any warnings and resolve issues
  • Start the live migration and monitor progress
  • Old subscriptions are only deactivated after new ones are confirmed

Auto-configured: MoveMRR automatically uses "cancel at period end" for source subscriptions, processes customers in atomic batches, preserves all metadata, and keeps billing anchors intact — all pre-configured by Easy Mode.

Tip: Keep the page open during execution. Do not manually cancel subscriptions in the source account during the run.

How MoveMRR prevents double billing
07

Verify & Go Live

After the migration completes, verify the results in both Stripe accounts. Then update your application to point to the destination account.

  • Spot-check subscriptions in the destination account
  • Confirm source subscriptions are scheduled for cancellation
  • Review the reconciliation summary for any failures
  • Update your app's Stripe keys, webhooks, and portal links

Tip: Monitor upcoming renewals for a few days after migration to confirm payments are captured in the new account.

Quick Reference Checklist

The complete Easy Mode migration in order. Print this or keep it open during your migration.

  1. 1 Create a migration project and select Easy Mode
  2. 2 Connect both Stripe accounts with restricted API keys
  3. 3 Copy customers from source to destination in Stripe
  4. 4 Download and upload the Stripe mapping CSV (unmodified)
  5. 5 Auto-create products, prices, and coupons — fix any missing mappings
  6. 6 Run a dry-run, then execute the live migration
  7. Verify results and update your app's Stripe integration
  8. Monitor upcoming renewals for a few days

Built for Safety

Every decision in MoveMRR is designed to protect your revenue and your customers.

No Double Billing

Old subscriptions are only deactivated after new ones are confirmed active. Your customers are never charged twice for the same period.

Restricted API Keys Only

MoveMRR never asks for full access. Keys are scoped to exactly the permissions needed for your specific migration.

Idempotent & Safe to Retry

If something goes wrong, you can safely re-run the migration without creating duplicates or corrupting data.

Full Audit Trail

Every action is logged with timestamps. You get a complete record of what was created, deactivated, and mapped — customer by customer.

Best Practices

Recommendations from successful migrations.

Do

Run the dry-run first and fix all warnings before executing the live migration.

Do

Keep someone with Stripe admin access available for the entire migration duration.

Avoid

Don't start a migration on a Friday evening unless you can monitor renewals over the weekend.

Avoid

Don't manually cancel subscriptions in the source account during the migration — let MoveMRR handle it.

Common Questions About Stripe Migration

Quick answers to the most common questions about the migration process.

How long does a Stripe subscription migration take?

The hands-on work in MoveMRR takes about 1–2 hours for most projects. However, Stripe's Customer Data Copy (Step 4) can take 1–3 business days. Plan the full process across a week to account for this waiting period.

Do I need to be technical to use MoveMRR?

No. MoveMRR provides a fully guided interface — no code, no scripts, no Stripe API knowledge required. Each step walks you through exactly what to do, including generating restricted API keys and uploading mapping files.

Will my customers notice the migration?

No. Billing dates, amounts, and payment methods are all preserved. Neither Stripe nor MoveMRR sends any notifications to your customers. From their perspective, nothing changes.

What happens if the migration fails halfway through?

MoveMRR is designed to be idempotent — you can safely re-run the migration without creating duplicate subscriptions or corrupting data. Old subscriptions are only deactivated after new ones are confirmed active, so no revenue is lost.

Can I migrate subscriptions from Stripe Connect accounts?

Yes. MoveMRR supports migrations between Stripe Connect connected accounts, from connected accounts to standalone accounts, and platform-level migrations. You can specify a connected account ID when storing your API keys.

Do I need to recreate products and prices manually?

No. MoveMRR can auto-create products and prices in the destination account, preserving names, descriptions, currency, amounts, intervals, and tiered pricing. Any prices that can't be auto-created can be mapped manually.

What is the difference between Easy Mode and Advanced Mode?

Easy Mode pre-configures all migration settings with recommended best practices (cancel at period end, preserve metadata, keep billing cycles). It's the right choice for most migrations. Advanced Mode gives you full control over every setting — deactivation strategy, billing cycle alignment, trial handling, and more. Choose Advanced Mode only if you have very specific requirements.

Ready to Migrate?

Start your migration project now and transfer your subscriptions safely.