← Writing

Stripe Prices are immutable — change pricing by minting a new Price and migrating at renewal

You can't edit a Stripe Price's amount. The clean pattern: create a new Price, point new subscriptions at it, and move existing subscribers at their next renewal.

Building admin-editable pricing for a subscription platform, I hit a Stripe design decision worth internalizing: a Price’s amount can’t be edited. Prices are immutable once created.

The pattern that works:

  1. Admin changes a plan’s price → mint a new Stripe Price on the same Product.
  2. New subscriptions attach to the new Price immediately.
  3. Existing subscriptions keep their old Price and migrate at their next renewal — nobody’s mid-cycle billing changes underneath them.

The immutability that first feels like an obstacle is actually the audit trail: every subscription permanently references the exact price it was sold at. Your own database should mirror this — treat price rows as append-and-archive, never update-in-place, so the catalog you show admins and the Prices Stripe bills from can’t drift apart.

← All writing Book a call →
Book a call → WhatsApp