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.
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.
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.
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.
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.


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.

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.
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 Create a migration project and select Easy Mode
- 2 Connect both Stripe accounts with restricted API keys
- 3 Copy customers from source to destination in Stripe
- 4 Download and upload the Stripe mapping CSV (unmodified)
- 5 Auto-create products, prices, and coupons — fix any missing mappings
- 6 Run a dry-run, then execute the live migration
- ✓ Verify results and update your app's Stripe integration
- ✓ 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.
Related Resources
Dive deeper into the technical details of Stripe subscription migration.
Technical Migration Guide
Deep-dive into subscription recreation, billing anchors, and price mapping.
Stripe Customer Data Copy
What gets copied, what doesn't, and how to prepare for it.
Restricted Stripe API Keys
How to create secure, scoped API keys for migration.
Prevent Double Billing
Strategies to ensure customers are never charged twice during migration.
What Happens to Subscriptions When You Sell?
Practical overview of handling Stripe subscriptions during a SaaS sale.
SaaS Acquisition Checklist
Complete checklist for billing and subscription handover during an acquisition.
Ready to Migrate?
Start your migration project now and transfer your subscriptions safely.