Skip to main content
GullySystem
A practical guide

Build subscription billing yourself or use a billing platform

Ganesh HSStrategy and Technology, GullySystem
Practical advice · 4 min read

In this guide 6 sections
The short answer

Use a billing platform unless your pricing is unusual or your market needs payment methods the platforms do not support. Proration, tax invoices, mandates, dunning and plan changes take far longer to build and maintain than the first demo suggests. A gateway alone covers only the charge.

A gateway charges cards, and little else

A payment gateway takes a card payment and says whether it worked. That is one step in a billing system. It does not know your plans, your customer’s tax registration or what to do on the fourteenth of next month.

Teams often start with the gateway’s hosted checkout and a cron job. It works for ten customers on one plan. Then someone asks for annual prepay, a coupon or a seat added mid-cycle, and the cron job grows branches until nobody dares touch it.

Count what you would write yourself. The list runs long.

What owning billing code really involves

Proration is the first surprise. Say a customer moves from a small plan to a larger one on day nine of a thirty-day cycle. The invoice must then show the unused credit and the new charge, each rounded correctly.

Then come tax invoices that carry the buyer’s registration number, credit notes for refunds, and a ledger that finance can reconcile against bank settlement files. Each country adds its own invoice format and filing deadlines.

Every item is a feature you now maintain. Gateways change their webhook payloads. Regulators change invoice numbering rules. Your developers carry both.

  • Proration on upgrades, downgrades and seat changes
  • Tax calculation and tax-compliant invoice numbering
  • Credit notes, refunds and failed-refund handling
  • Reconciliation of settlements against invoices
  • Webhook idempotency for repeated or late events

Local payment methods can settle the question

Cards are only part of the picture in many markets. Bank debits, standing-instruction mandates, wallet payments and bank transfers with a reference code each have their own flow and failure modes.

Check what each platform on your shortlist supports in the countries you sell to. A platform that handles cards well but cannot collect a recurring mandate leaves you building that piece anyway.

Ask for a sandbox and try a failed mandate, a customer who changes bank, and a refund after settlement.

Dunning and plan changes are where revenue leaks

Failed payments are normal. What matters is the retry schedule, the reminder emails that go with it, and the day access changes. Platforms ship tested defaults, whereas writing your own retry logic means tuning it blind.

Plan changes touch access control too. When a plan ends, the product must read the new entitlement at once. Not at the next login.

A hybrid is common. Let the platform own invoices, retries and tax. Keep entitlements and usage metering in your own code, fed by the platform’s webhooks.

  • Retry schedule and card-updater support
  • Grace period before access drops
  • Entitlement sync after upgrade, downgrade or cancel
  • Usage metering for pay-as-you-go components

A decision you can make this week

Build in-house only when your pricing model is truly unusual, such as metered tiers across many products, or when a platform cannot serve your markets. Otherwise the build cost buys no advantage customers can see.

List your top ten billing scenarios on one page. Run each through two platforms’ sandboxes. Any scenario that needs custom code goes in the estimate for the hybrid option.

Choose with that page open, then ask a developer to price the custom parts.

Billing build or buy scorecard

A one-page scorecard with ten rows of billing scenarios, such as mid-cycle upgrade, annual prepay, failed mandate, refund after settlement and coupon stacking. Columns show gateway only, billing platform, and in-house build, each marked covered, partly or not at all, with a final column for the custom work needed.

Open a blank worksheet to print

Questions owners ask

When does building billing in-house make sense?

When pricing is unusual enough that platforms cannot model it, or when you must support a payment method none of them offer in your markets. Most early products do neither.

Can I start with a gateway and move later?

Yes, but plan the move. Store plan and customer data in your own tables so a later switch only changes who runs the charge and the invoice.

What is dunning in subscription billing?

It is the process after a failed payment: scheduled retries, reminder emails and a rule for when access is limited. Good dunning recovers customers who simply had an expired card.

Who owns tax on subscription invoices?

You remain responsible. A platform can calculate tax and format invoices, but your accountant confirms the rules for each country you sell into.

Browse all guidesBack to top ↑
Next step

Have a specific situation to work through?

This article covers the general case. Tell us what you’re actually dealing with and we’ll respond directly.

Share Your Requirements