Subscriptions & recurring billing
Recurring plans, trials and upgrades with the billing lifecycle around them — renewals, failed payments, refunds and disputes.
What we build
Everything that turns a one-off payment integration into a subscription business: the plans and entitlements customers buy, the lifecycle as they trial, upgrade, downgrade and cancel, and the unglamorous machinery that decides whether you actually get paid — renewal attempts, dunning for failed cards, refunds, and disputes. Choose this when revenue is recurring; choose payments & commerce integration instead when customers pay once. Assumes card payments are already live, or bought alongside, via payments & commerce integration.
What you get
- The plan and tier catalogue configured in the provider, matching the agreed price list
- A server-side entitlement check, with a test proving a cancelled subscriber loses access
- Each of trial start, upgrade, downgrade and cancel demonstrated end to end in staging
How the work unfolds
- Model plans, tiers and entitlements
- Build the subscription lifecycle end to end
- Recover failed payments with dunning
- Process refunds, credits and disputes
- Reconcile subscription state with the provider
- Report recurring revenue and churn
What shapes the price
Before you see a number, our scoping conversation asks:
- How many plans or tiers will you sell? Each plan is modelled, priced and mapped to entitlements.
- When a card payment fails, should the system chase it automatically — retries and reminder emails? Dunning is up to a week and directly protects recurring revenue.
- Will you issue refunds and credits through the product, or is the Stripe dashboard enough? In-product refund/credit flows are extra work the dashboard already covers.
- Do you want recurring-revenue and churn reporting built in, or will Stripe's dashboards do? Custom MRR/churn reporting duplicates Stripe's dashboards unless they fall short.
How an engagement starts
This work builds on Discovery workshop, so scope, boundaries and constraints are agreed before anything is built.
Teams often combine it with: