Skip to content

Migration playbook: Stripe Charges (legacy) → Stripe Billing and usage metering

Stripe Charges to Stripe Billing and usage metering

Rebuild billing on Stripe Billing: subscriptions and usage-based pricing, tax calculation and a self-serve customer portal, with idempotent webhooks underneath.

Migration drivers

Why teams make this move

Driver 01

No usage-based pricing

Consumption pricing that can't be offered without manual invoicing.

Driver 02

Sales tax and VAT

Calculating tax by hand, or not at all, as you sell into more regions.

Driver 03

Involuntary churn

Revenue lost to failed renewals without automatic retries and card updates.

Execution sequence

How the migration runs

Each phase ends with a check you can verify — data parity, error rates, latency — and the rollback path is agreed before any traffic moves.

  1. 01Phase

    Product catalog and pricing

    Modeling subscription tiers, add-ons and metered usage in Stripe Billing.

  2. 02Phase

    Webhooks and idempotency

    Webhook handlers for invoice.paid and customer.subscription.updated that are idempotent and safe to retry.

  3. 03Phase

    Customer portal

    A self-serve portal where customers update cards, view invoices and change plans.

  4. 04Phase

    Stripe Tax and Smart Retries

    Turning on automatic tax calculation and machine-learning-based retry schedules.

Risk prevention

Pitfalls that derail this migration

Risk 01

Non-idempotent webhooks

Charging twice or granting duplicate credits when Stripe retries a webhook delivery.

Risk 02

Proration surprises

Misunderstanding how Stripe prorates immediate upgrades and downgrades.

Risk 03

Price IDs in client code

Trusting price IDs from the browser instead of validating products on the server.

Before and after

What we measure

We take a baseline before any change and report the same numbers after cutover, from your own tools. They are the evidence of whether the migration worked — not figures promised in advance.

Recovered revenue
Failed payments later recovered, from Stripe reports
Billing tickets
Support tickets about invoices and cards, per month
Webhook errors
Failed or duplicated webhook processing events

Questions

Frequently asked migration questions

Your application reports usage events to Stripe's metering API as they happen; Stripe aggregates them and bills customers on their invoice cycle.

A hosted, secure self-serve page where customers manage their subscriptions and payment methods and download past invoices.

Rehearse the cutover before the real one

Tell us about your data volume, traffic and timeline. An engineer will reply within one business day to set up a call about the migration plan and its rollback path.