Payments and money

Subscription billing

Charging customers automatically on a recurring cycle, and handling everything that follows: renewals, failed payments, plan changes, refunds and invoices.

Updated October 2026 · with examples from our own builds

What does subscription billing mean in practice?

Subscriptions look simple on a pricing page and aren't simple in code. Each plan needs a price in each currency, a renewal schedule, rules for failed payments and grace periods, upgrades and downgrades, and an invoice for every charge. Gateways such as Razorpay and Stripe, or the app stores on mobile, run the charging; your system has to stay in step with them.

Early design choices are sticky. A gateway plan's amount may not be editable once created, the currency is locked per subscription, and store subscriptions follow store rules. Changing any of these after customers have subscribed means migrating live subscriptions.

Most of the risk sits in the events: renewals, failures and refunds arrive by webhook and must each be processed exactly once.

Subscription billing at a glance

Runs on
A gateway's subscriptions, or the app stores' billing
Sticky choices
Plan prices, currency and billing provider
Process exactly once
Renewal, failure and refund events

Where has subscription billing come up in our builds?

The first design showed USD and collected INR at a daily rate, which broke down for renewals because a Razorpay Plan's amount can't be edited. Each plan version now carries an INR and a USD price set by a person, and each subscription is locked to the currency actually charged.
Storafleet
Paid plans are Razorpay Subscriptions only; an order record is written already paid when the subscription.charged event arrives, and a replay job sweeps failed events. Built and tested in test mode, switched off until launch.
AskForth (built, not launched)
Grace periods keep access, as Google recommends, while a refund drops the user to the free plan at once and posts a reversal to the ledger. Paid plans are built but not yet switched on.
LeafRanger (launching)

Common questions about subscription billing

Can I change my subscription prices later?

Usually by creating new plans or plan versions rather than editing old ones, because gateways often fix a plan's amount once it exists. Decide how existing subscribers move across before you change anything.

What should happen when a renewal payment fails?

Keep access for a short grace period while the provider retries, tell the customer, and only then downgrade. Write the rules down, because support will be asked about them.

Related terms

Sources

Planning a product and not sure where subscription billing fits? Ask us, or browse all 116 terms in the glossary.