SubPorter

Safety model

The gates that keep a Stripe subscription migration from double charges, early cancellations, and unverified destination writes.

The risk in a Stripe subscription migration is specific. The customers on the subscriptions are the ones you just sold, or the ones your new company depends on. A wrong cancel date charges them twice or skips a renewal. Each safeguard below is a gate, not a promise.

The source account stays read-only until every schedule is verified

The source key can only read. Catalog recreation, customer verification, schedule creation, and schedule verification all run while the source account keeps billing. The only write to the source account is cancel at period end, with a separate key, after verification passes.

The source read-only key and the source cancellation key both include Invoices read. Invoices read is read only. After each renewal, SubPorter uses it to confirm that the customer was charged once.

Each schedule starts on the renewal date

A subscription schedule is created for each moving subscription, starting on the date the current period ends. The source subscription ends at that same moment. The customer is charged once, on the date they expect.

Renewals within 48 hours are flagged

A subscription that renews in the next 48 hours leaves no time to copy the customer, verify the destination, and switch your application. SubPorter flags it. The source owner leaves it for a later pass, after it has renewed in the source account.

Destination writes are read back

A successful API response does not prove the result. After SubPorter creates the schedules, it reads each one back and checks the customer, start date, prices, quantities, collection method, tax, and status. The cancel step stays locked until every check passes.

Flagged subscriptions get a decision, not a guess

Coupons, trials, past due, missing payment methods, manual tax rates, existing schedules, and unusual item shapes are flagged with the reason. The source owner decides each one.

The scope stays narrow

SubPorter moves Stripe Billing objects. It does not change your application, database, webhooks, or entitlements, and it makes no tax or legal decisions for you.

Records are part of the run

Every project ends with migration records: the plan, the decisions, the verification results, and the cancel dates. Both owners keep the same records.

On this page