Business Systems (CRM / ERP / SaaS Ops)
Billing and subscription management
Plans, invoicing, dunning, proration and revenue reporting built in Stripe Billing — and proved against every failure path in test mode before a real card is charged.
- From
- $800–$12,000
- Typical time
- 2–8 weeks
- Usually bought by
- SaaS, agencies
What this actually solves
Invoices are being produced by hand every month. Someone spends a day on it, a few customers get missed, and a few more get chased for money they already paid. That is irritating, and it is the visible part of the problem.
The rest of it is silent. Cards expire, get replaced after fraud, or are simply declined on a renewal — and nobody finds out. The customer had no intention of leaving; they never saw a notice, and their subscription lapsed while they assumed it was running. It does not show up as churn in any conversation, because nobody made a decision. It just stops arriving. Alongside that sits a third problem — the owner cannot say what recurring revenue actually is this month, how many customers left, or what is due to bill next month, so every forecast is a guess.
There is also a definitional trap worth naming, because it changes how the reporting must be built. Money arriving is not the same as revenue earned. A customer paying twelve months up front today has not generated a year of revenue today; they have generated an obligation to deliver twelve months of service, and the revenue belongs across those months. Systems that ignore that make a business look like it grew enormously this quarter and then fell off a cliff next year.
How the work runs
- Plan and price structure. What is sold, at what intervals, per seat or flat or metered, in which currencies, with or without trials, and what happens when someone moves between plans. Anything in the intended plan list that will create a proration mess later is flagged now, while changing it is still free. Two to four days.
- Build the billing objects and the customer-facing flow. Products and prices configured, checkout or a customer portal connected so people can update their own card and see their own invoices, invoice and receipt settings finished, and tax handling configured to the answers your accountant gives. Three to seven days.
- Dunning, proration and the failure paths. A dunning sequence of three to four messages with a defined final step and a stated consequence for the account, written to be helpful rather than threatening, because the usual cause is an expired card and not a refusal to pay. Proration rules for upgrade, downgrade and mid-cycle cancellation, written as plain sentences with a worked example. Internal notification when a payment fails, and a documented refund process. Three to five days.
- Test every path in test mode, and keep the results. At least a dozen cases run deliberately. Among them: a card that fails at signup, a card that succeeds at signup and fails on renewal, an upgrade mid-cycle, a downgrade, a partial refund, a customer holding two subscriptions, a chargeback, a trial that converts and one that does not. Each with expected result and where it was verified. That written test record is what tells you the system was taken seriously. Three to five days.
- Reporting and reconciliation. A dashboard for recurring revenue, churn, failed payments and recovery, with each metric's calculation documented. Then the monthly reconciliation routine between the payment platform and your accounting system — fees, refunds, chargebacks and currency differences are exactly where money goes missing unnoticed. Two to four days.
- Migration of existing subscribers, when in scope. Done in batches after a full rehearsal, matching each customer's remaining term, billing anchor date and any legacy price, with counts and amounts reconciled against the source before the next batch runs. One to three weeks, and priced separately.
What moves the price
The range is $800–$12,000, and three things determine where a project lands.
Whether existing customers have to be migrated. A clean setup for new customers only sits at the lower end and is a contained project. Moving live subscribers with their mid-term positions, historic discounts and retired prices intact is the hardest work in this service and is quoted on its own.
How complicated the pricing genuinely is. One monthly plan and one annual plan is straightforward. Per-seat pricing with mid-cycle seat changes, usage-based components, multiple currencies and grandfathered legacy plans multiply both the configuration and, more significantly, the number of edge cases that must be tested.
How far the integration reaches. Billing on its own is one job. Billing that provisions and de-provisions access in your product, updates the CRM, and posts into accounting so the books reconcile without manual entry is several, each with its own failure behaviour to design.
What usually goes wrong
Only the happy path gets tested. A test card is entered, the subscription is created, the invoice looks right, and the setup is declared finished. Then production supplies everything that was never tried — a card that authorises at signup and fails eleven months later on renewal, a customer who upgrades halfway through a cycle and receives a proration line nobody can explain, a duplicate subscription created because someone checked out twice, a refund on a partially used month. Every one of those can be run repeatedly, for free, in test mode before launch, and each one skipped becomes a real customer's problem instead.
Live subscribers are migrated without a rehearsal. Existing customers are the least forgiving data in any system, because a mistake is not a wrong field — it is a duplicate charge on somebody's real card, or a lapse in service they paid for. Anchor dates drift, a remaining term is calculated from the wrong start, a legacy discount is dropped. Rehearsing the migration on test data, then running it in batches with amounts reconciled between batches, is the difference between a quiet transition and a week of refunds and apologies.
Cash coming in is reported as revenue earned. Annual prepayments get counted in the month they land, so the dashboard shows a spike that is not growth, the recurring revenue figure means something different from what the accountant's figures mean, and nobody can reconcile the two. Add fees, refunds and chargebacks that were never matched against the books, and the business ends up with two sets of numbers that disagree and no way to tell which is wrong. Deciding how each metric is calculated, and building the monthly reconciliation, is what stops that before it compounds.
See where the site stands before you brief anyone.
If the site is already live, start from what it scores rather than from a guess. The audit reports what it checked, what it found, and — the part most tools leave out — what it could not check, and why.
Questions people ask before they commit.
- Does it have to be Stripe?
- No, though it is the usual answer. Paddle is worth considering when you want sales tax and VAT handled as merchant of record rather than by you. Chargebee suits complicated plan structures and contract terms. Lago is open source. The choice usually comes down to where you sell, how complex the pricing is, and how much tax responsibility you want to carry yourself.
- Can you move our existing subscribers onto it?
- Yes, and it is quoted separately because it is the hardest part of this work by a wide margin. Every existing customer has a remaining term, a billing anchor date, a discount history and sometimes a legacy price that no longer exists. Getting that wrong means charging real people twice or not at all, so it is rehearsed before it is run.
- Do you handle sales tax and VAT?
- We configure what the platform provides and we do not give tax advice. Where tax treatment affects the setup, the exact question goes to your accountant and their answer is what gets configured. Registration thresholds and rates differ by jurisdiction and change, and a billing consultant guessing at them is how a business ends up with a liability it did not know it had.
- What is dunning and why does it matter so much?
- It is the sequence that runs when a payment fails. It matters because the usual cause is an expired or replaced card, not a customer refusing to pay — so revenue is lost from people who fully intended to stay. A short, helpful sequence with a clear final step gives those customers a way to update the card before the account lapses.
- Will this break anything for our current customers?
- The whole approach is designed to prevent that. Everything is built and tested in Stripe test mode first, where the same flows can be run repeatedly at no cost and with no real card involved. Anything touching live subscribers is rehearsed, done in batches, and checked against the source before the next batch runs.
- What reporting do we get?
- A dashboard covering recurring revenue, new and churned subscriptions, failed payments and recovery, with each metric's calculation written down so the numbers mean the same thing every month. Plus a documented monthly routine for reconciling what the payment platform shows against what your accounting system records.
Often taken together.
Start with the brief, not the invoice.
Send what you are trying to achieve. You get a written scope, a price and a date — or an honest “this is not the right service for that”.
Talk about Billing & subscription management All Business Systems (CRM / ERP / SaaS Ops) services