Build vs buy

Build or buy a billing system? A decision checklist for engineering and finance

When you need a billing system, you can build it, buy a hosted one, or run an open-source engine yourself. This page shows what each option asks of you. Then 15 questions help you pick a starting point.

Last updated: November 2026

Short answer

Should you build or buy a billing system?

Build only when billing is part of what you sell, or when nothing else can model your pricing and you can staff a team to own it for years. Buy a SaaS billing system when you want to start fast, your pricing is standard, and you accept a fee that may grow with revenue and data in the vendor's cloud. You can also build on an open-source billing engine and run it yourself. You keep the code and the data, and you do not write the billing logic from scratch. You still host and operate it.

Three ways to get a billing system

Build in-house

Your engineers write and run every part. You control the design and the data. You also do all the work, before and after launch.

Buy SaaS

A vendor hosts and runs billing. You integrate through its API and work within its features and its price model.

Open-source engine

You run a proven engine in your own infrastructure. You write only the parts that are specific to you.

For a side-by-side table on time to start, control, data, cost model and lock-in, see how to choose a billing system. That page also lists 24 criteria to compare vendors once you have picked a path.

What “build” really includes

A first version that creates subscriptions and sends invoices can look close to done. The hard parts show up once customers change plans and payments fail. Here is what a billing system has to get right.

PartWhy it is harder than it looks
Catalog and price versionsPrices change. Existing customers often keep their old price while new customers get the new one, so the system has to keep every version and know which one applies to whom.
ProrationWhen a customer changes plan in the middle of a period, you credit the unused part and charge for the new plan. The rules differ for upgrades and downgrades, for monthly and annual terms, and for two changes in the same period.
Plan changesUpgrades often apply now and downgrades at the end of the term. Trials, add-ons, pauses and cancellations all change what the next invoice says.
Payment retries and dunningA failed payment needs a retry schedule, reminder emails and a point where access stops. When a gateway times out after the payment went through, a retry must not charge the customer twice.
Invoicing and numberingFinance expects invoice numbers in sequence, without gaps. An issued invoice should not change: you correct it with a credit or an adjustment, and both must stay traceable.
TaxRates depend on where the customer is and what you sell, and they change. You either keep rates up to date yourself or connect a tax engine, which is one more integration to maintain.
Usage aggregationUsage events can arrive late, twice or out of order. You have to remove duplicates, total them per customer and period, and decide what happens to an event that arrives after the invoice went out.
Multi-currencyEach account pays in its own currency. Rounding has to happen at the right step, or the invoice lines will not add up to the total.
Audit trailFinance and auditors will ask who changed a price, an invoice or a payment, and when. Every change needs a record you can query later.
MigrationsYou have to move live subscriptions, unpaid invoices and payment tokens from your current system without billing anyone twice or skipping a cycle. Read what a billing migration involves.
Upgrades and on-callBilling runs on a schedule, at night and at month-end. Someone has to be on call when a run fails, and someone has to keep libraries, gateway APIs and security patches up to date.

Cost items to put in your estimate

If you build, the first release is only part of the cost. Put each of these in your estimate, with your own team's numbers:

  • The engineers who build the first version, and the product work they do not do in the meantime.
  • Every pricing change. A new plan, trial or discount becomes a code change and a release.
  • Updates when a payment gateway or a tax engine changes its API.
  • Hosting, the database, backups and monitoring.
  • On-call for billing runs and failed payments.
  • Requests from finance: reports, exports, corrections and audit questions.
  • Data fixes when an invoice goes out wrong.
  • Knowledge transfer when the people who wrote the billing code move on.

What “buy” means, and what you give up

Buying usually means a SaaS billing system. The vendor hosts it, runs upgrades and keeps it up. You can often start billing quickly, and you have no billing servers to run. This helps most when your team is small. Check these points before you sign.

Pricing model

Some vendors charge a share of the revenue they bill, or a fee per transaction or per event. The fee then grows each time your business grows. Work out what it costs at your volume today and at three times that volume. The fixed fee vs percentage of revenue calculator helps with the arithmetic.

Lock-in

Subscriptions, invoices, payment tokens and history live in the vendor's system. Leaving means a migration on the vendor's terms. Ask how you export your data, in what format, and whether your payment tokens can move to another system.

Customization limits

You get the features the vendor ships, on its roadmap. When a pricing idea does not fit, the workaround often ends up in your own code, outside the billing system, where finance cannot see it.

Data location

Your billing and customer data sit in the vendor's cloud, in the regions it offers. Check this with your security and legal teams early.

The work that stays with you

Buying does not remove all engineering work. You still connect sign-up, entitlements, your CRM and your accounting system, and keep them in sync when plans or payments change.

The third option: build on an open-source engine

An open-source billing engine already handles the parts in the table above. You deploy it in your own infrastructure, connect it to your systems, and add your own rules as plugins or integrations. The code and the data stay under your control, and you do not start from an empty repository.

You still own some of the work. Your team hosts and operates the engine, upgrades it, and builds the integration with the rest of your company. If you have no one to run a production service, this option is harder to justify than SaaS.

Where Kill Bill and Aviate fit

Kill Bill is an open-source billing and payments engine, free under the Apache 2.0 license and in production since 2010. You run it yourself, with community help only. It comes with no support and no SLA.

Aviate is a separate commercial product built on Kill Bill. It runs in your infrastructure and adds ready-made modules, so you have less to build yourself: a catalog UI with an AI assistant, metering from raw events, a wallet for prepaid credits, coupons, tax, invoice numbering, invoice and email templates in 6 languages, Health, and quotes and orders. It includes Premium support, with an answer within 2 business days for critical production issues. For the price, see the pricing page.

If you need help with plugins or implementation, the partners page lists who works with Kill Bill.

The decision checklist

Tick each statement that is true for you today. Each one points to a path, shown under the statement. Ask engineering and finance to answer together: the last group is mostly for finance. Nothing you tick leaves your browser.

Your pricing and product
Your team and operations
Finance, data and risk

Your result

Count your ticks for each path. The path with the most ticks is your starting point. If two paths are level, read both descriptions below and talk it through with your team.

  • Mostly "Build in-house". Building can be right for you. Use the table and the cost items above to scope it, and read the section on when building is right.
  • Mostly "Buy SaaS". A hosted billing system is likely the faster path. Check the pricing model, the export terms and the data location before you sign.
  • Mostly "Open-source engine". You want control of the code and the data, without writing billing from scratch. Look at an engine you can run yourself, such as Kill Bill.

Use the result to start the discussion with your team. One hard constraint, such as where your data must live, can outweigh several ticks.

When building is the right call

Building your own billing system is sometimes the best choice. It usually is when one of these is true:

  • Billing is what you sell, or the way you price is how you win customers.
  • You tested existing systems and engines against your real pricing, including their extension points, and none of them could model it.
  • You have engineers who have built billing or ledgers before, and you can keep them on it for years.
  • Your policies rule out third-party billing code, open source included.

Also consider whether you need a billing system yet. If you sell one plan and charge it through your payment provider's recurring payments, that may be enough for now. Revisit the question when plan changes, usage or invoices start to take your team's time.

If you do build, plan for the cost items above from the first day. On-call and finance requests are easy to forget when you plan the first release.

FAQs

Build vs buy a billing system: FAQ

What does building a billing system include?
It includes much more than invoices. You need a catalog with price versions, proration, plan changes, payment retries and dunning, invoice numbering, tax, usage aggregation, multi-currency rounding and an audit trail. After launch you also own migrations, upgrades and on-call for the billing runs.
Why is billing hard to build?
Most of the work is in edge cases. A customer upgrades twice in one month, a usage event arrives after the period closed, or a gateway times out after the payment went through. Each case has to give the right amount and leave a record finance can audit.
How long does it take to build a billing system?
We do not publish an estimate, because it depends on your pricing, your integrations and your team. List the parts on this page, then the work after launch, and estimate each one with the people who would build it.
When does it make sense to build your own billing system?
When billing is part of what you sell, or when nothing you tested can model your pricing, even with extensions. You also need engineers who can own the code for years, including on-call.
Does buying a SaaS billing system remove the engineering work?
No. You still connect sign-up, entitlements, your CRM and your accounting system, and you keep them in sync when plans or payments change.
What are the downsides of a SaaS billing system?
The fee may grow with your revenue or your transactions. Your data lives in the vendor's cloud. You get the features the vendor ships, and leaving means a migration on the vendor's terms.
What is an open-source billing engine?
Billing software whose code is public and that you run yourself. It already handles subscriptions, invoices and payments, so you write only what is specific to your business, as plugins or integrations. You host and operate it.
Is Kill Bill free, and does it come with support?
Kill Bill is free and open source under the Apache 2.0 license, in production since 2010. It comes with community help only: no support and no SLA.
What does Aviate add to Kill Bill?
Aviate is a separate commercial product built on Kill Bill. It runs in your infrastructure and adds ready-made modules: a catalog UI with an AI assistant, metering from raw events, a wallet for prepaid credits, coupons, tax, invoice numbering, invoice and email templates in 6 languages, Health, and quotes and orders. It includes Premium support, with an answer within 2 business days for critical production issues.
How much does Aviate cost?
Aviate has a fixed price. It is never a percentage of revenue. See the pricing page.

Talk it through with us

Send us how you bill today and we will tell you whether Kill Bill or Aviate fits. You can also try Aviate in a free sandbox.