Subscription billing software: 7 things to check before you build or buy
Last updated

Billing is easy to demo and hard to get right. The questions that matter come after the first invoice is sent. Here are seven things to check before you build or buy, with DEV3 Cyclestrand as the worked example.

1. Does it cover your pricing models?
List how you charge today: flat, per seat, tiers, packages, usage. Cyclestrand supports nine models in as many currencies, with a quote calculator so you can check a price before you publish it.

2. How does proration work?
Upgrades and seat changes mid-period are where billing disputes start. Look for second-level proration, credit only for time that was paid for, and a preview of every line before anything is billed.

3. Are invoices and tax handled properly?
You want gapless numbers, tax per line, inclusive and exclusive prices, PDFs and credit notes. Check who is responsible for registration: Cyclestrand applies the rates you enter, and filing stays with you.

4. Can it bill usage without double counting?
Events need idempotency keys, and late events need a rule. Cyclestrand recomputes hourly rollups from raw events, so a retried request never counts twice.

5. What happens when a card fails?
Look for a retry schedule, customer emails, a link to fix the card and a final action, plus a board that shows what is at risk.

6. Do your customers get a portal?
A hosted checkout and a portal save you weeks. Customers should change plan with a cost preview, update the card and download invoices.

7. What are the limits?
Ask what is not there. Cyclestrand simulates payments until you connect a gateway, leaves tax filing to you, and has no revenue recognition, ledger or quotes. It runs as one Node process with MongoDB and a cron.
If you want to try these checks yourself, install the demo data and open the workspace as an owner.
Subscription billing — Plans, proration, usage and dunning on a calm ring diagram with a live proration card.
Proration — Seat changes and upgrades prorated to the second with a preview before you apply them.






