Skip to content
← ALL WRITING

2026-04-23 / 8 MIN READ

Recharge to Shopify Subscriptions: A Migration Playbook

A four-week playbook for migrating from Recharge to Shopify Subscriptions: data export, billing mapping, cutover timing, and the specific gotchas that break customers.

Recharge to Shopify Subscriptions is one of the most common migrations I see on DTC brands between $2M and $10M in revenue. The reasons vary. Sometimes it's a Recharge price increase. Sometimes the brand is moving to Shopify Plus and wants Checkout Extensibility to work without third-party rewrites. Sometimes the subscriptions feature roadmap at Shopify caught up to what Recharge was doing, and the monthly fee stopped making sense.

The migration itself is not hard. It's tedious, and it breaks in specific ways if you rush the billing mapping. This playbook is the four-week version I run with clients, step by step, with the gotchas annotated.

Recharge → Shopify Subscriptions/7 steps, 4 weeks

Why you migrate

Before the playbook, a quick check that the migration is worth the four weeks. The honest triggers:

  • Plus + Checkout Extensibility. If you're moving to Plus and want the new checkout, the Recharge checkout rewrite becomes a liability. You will either migrate off Recharge or live on a deprecated checkout forever.
  • Cost math. Recharge pricing has shifted multiple times in the last two years. The percent-of-subscription-GMV model plus the monthly platform fee plus the usage overages can add up. Shopify Subscriptions has no per-transaction fee beyond the base Shopify processing rate.
  • Data portability. Your subscription data lives in Recharge and your product/customer data lives in Shopify. One system owning both simplifies everything downstream: Klaviyo syncs, warehouse ETLs, CAPI events.
  • The vendor raised the price. The hardest forcing function. If your Recharge fee went up 25 to 40 percent with limited notice, the replatforming off Recharge after a price change scenario becomes the specific version of this playbook.

For broader context on app-stack decisions at this revenue band, see the Shopify app stack hub.

Week 1: export and reconcile

The first mistake people make is underestimating what "export your Recharge data" actually produces. It's not one clean CSV. It's at minimum:

  • Customers (with Shopify customer IDs, hopefully)
  • Subscriptions (one row per active subscription)
  • Line items (one row per subscription line, including variant and quantity)
  • Charge history (past billing events)
  • Shipping addresses (may live on customer or per-subscription)

These don't join cleanly without work. Recharge's internal IDs are not always 1:1 with Shopify's. Some customers exist in Recharge but have been deleted in Shopify. Some subscriptions reference products that no longer exist. You will discover all of this the hard way if you skip reconciliation.

Week 1 deliverable: a reconciled CSV with one row per active subscription, joined to a valid Shopify customer and variant, with the current billing schedule normalized into a single format. Your active subscription count should match the Recharge dashboard. If it doesn't, stop and find the delta before continuing.

Week 2: map billing schedules

This is where most migrations break. Recharge bills on an interval from the last charge (for example, "every 30 days"). Shopify Subscriptions bills on anchor dates (the 15th of the month, every month). The two models don't round-trip without decisions.

For each active subscription, decide the Shopify anchor and compute the next-charge date explicitly. Simulate the next three to four cycles before importing. This is why CAPI for subscription commerce matters in parallel: your renewal events need to fire with stable event IDs across the migration, not duplicated or dropped.

The other Week 2 task is mapping Recharge shipping profiles. Prepaid plans with multiple SKUs in the same cycle are the ones that don't migrate cleanly. Flag them for manual review; don't try to automate.

Week 3: cutover

Cutover is the moment of truth. The mechanics:

  1. Freeze Recharge. Disable new subscription creation in Recharge two weeks before cutover. Use a CSV export taken the night before cutover as your source of truth.
  2. Import into Shopify Subscriptions. Batch imports at 250 per minute with retry logic. Reconcile counts after each batch.
  3. Redirect portal URLs. Recharge customer portal lives at /tools/recurring. Shopify Subscriptions has a different path. Set up redirects before cutover so email links don't break.
  4. Update email templates. Any Klaviyo flow or transactional email that references Recharge URLs needs updating. This is a cross-team task; don't assume the email team knows.
  5. Monitor the first billing cycle. The first billing cycle post-cutover is where edge cases surface. Have a channel dedicated to it for at least 72 hours.

The cutover itself is usually a long Saturday. Budget for 12 hours with at least one developer and one ops person on call.

The migration itself is tedious, not technically hard. What breaks is the billing mapping when people rush it.

Week 4: decommission and validate

With Shopify Subscriptions live, Recharge becomes dead weight. Decommissioning has a specific order:

  • Disable Recharge webhooks first. If you leave them firing, they'll pollute your logs and potentially retry events against a dead endpoint for weeks.
  • Remove theme snippets next. Grep for recharge across your theme. Pay attention to the uninstall checklist for theme cleanup because Recharge leaves more artifacts than most apps.
  • Uninstall the app last. After the webhooks and theme are clean.
  • Export final reports. Keep the Recharge admin available for 30 more days for reporting purposes. Subscription revenue attribution may need historical context.
  • Validate the billing cycle. Two full cycles post-cutover with zero anomalies is the bar. Then you can mark the migration closed.

What breaks if you skip the dry-run

I've seen three migrations that rushed past the billing-mapping dry run. All three had the same failure mode: customers got double-charged in the first post-cutover cycle because the next-charge date didn't align with the Shopify anchor. The fix after the fact is refunds, apology emails, and a customer-support backlog. The fix before the fact is a spreadsheet and a couple of days of diligence.

The DTC stack audit I run (/products/dtc-stack-audit) includes a subscription-infrastructure module that catches the exact pre-migration gaps this playbook tries to prevent. If you're within a few weeks of a Recharge migration, running it first is cheaper than the alternative.

How long does a Recharge to Shopify Subscriptions migration actually take?

Four weeks is the typical end-to-end timeline for a brand between $2M and $10M in subscription GMV. Week 1 is export and reconciliation, Week 2 is billing mapping, Week 3 is cutover, Week 4 is decommission and validation. Larger catalogs or multi-region setups can extend to six weeks; smaller single-product subscriptions can compress to two.

Is Shopify Subscriptions feature-complete enough to replace Recharge?

For most mid-market DTC subscription businesses in 2026, yes. The gap used to be real in 2023; it's closed on the core features by now. The cases where Recharge still wins are build-a-box with heavy prepaid logic, multi-product plans with complex rules, and stores that have extensive custom Recharge API integrations they'd need to rebuild.

What's the single most common migration failure?

Billing-schedule mismatches. Recharge bills on interval-from-last-charge; Shopify Subscriptions bills on anchor dates. If you don't map these explicitly per customer, you'll either double-charge or skip a cycle. The fix is a pre-cutover spreadsheet simulating the next four billing cycles for every active subscription.

Do I need to migrate my CAPI events at the same time?

Your CAPI purchase event schema should continue to fire on both one-time and recurring orders. If your Recharge integration fires CAPI separately from your primary gateway, you'll want to consolidate during cutover. Leaving two CAPI paths running post-migration almost always leads to dedup drift and match quality problems.

How much does the migration cost in engineering time?

Roughly 80 to 120 engineering hours for a typical mid-market build, plus ops and customer support time for cutover weekend and the first billing cycle. Total fully-loaded cost is usually $12K to $25K if done in-house, and about twice that through an agency.

Sources and specifics

  • Timeline reflects actual migration runs for mid-market DTC brands with subscription GMV between $500K and $5M annually.
  • Recharge pricing has changed multiple times between 2023 and 2026. Verify current terms against your contract before citing numbers.
  • Shopify Subscriptions billing anchor behavior is documented in Shopify's developer docs under Selling Plans.
  • The DTC Stack Audit product covers the pre-migration infrastructure check referenced above.

// related

Let us talk

If something in here connected, feel free to reach out. No pitch deck, no intake form. Just a direct conversation.

>Get in touch