“We’ll just migrate later.”

How to Choose a Billing Software System

It’s tempting to choose a billing system quickly with the thought of “migrating later.” This is often a mistake.
It’s difficult, risky, and costly to migrate a billing system, which contains lots of active data: ongoing subscriptions, unpaid invoices… even credit cards. Migrating this data to a different system might take months or years of engineering work.

Last updated: October 2026

Short answer

How do you choose a billing system?

Write the user stories your business needs first: how customers subscribe, change plans, pay, fail to pay and leave. Then compare each billing system on 24 criteria in three groups. Business criteria cover integrations, pricing flexibility, globalization, dunning, reporting and entitlements. Technical criteria cover security, scale, availability, the API and deployment. Other criteria cover maturity, cost model, support, lock-in and compliance. Choose carefully the first time: a billing system holds active subscriptions, unpaid invoices and payment methods, so migrating it later is slow and risky.
Checklist

24 Criteria and the Question to Ask Each Vendor

Use the same questions for every system you compare. The sections below explain each criterion.
#GroupCriterionQuestion to ask
1BusinessIntegration pointsWhich of our systems connect to billing, and through which API, events or ready-made integrations?
2BusinessCore operations and business modelsCan you run our user stories: create, upgrade, downgrade, pause, resume, cancel, add-ons, usage, discounts?
3BusinessFraud detection and preventionHow does fraud screening work with our payment processor, and can we add our own rules?
4BusinessUser experienceWhat do customers, finance, support and engineers each see and do in the system?
5BusinessGlobalizationHow are languages, currencies, rounding rules and time zones handled on invoices?
6BusinessDunning and chargebacksHow are failed payments retried, what happens to the account, and how are chargebacks recorded?
7BusinessPricing model flexibilityCan we launch a new plan, trial, add-on or discount without engineering work?
8BusinessData and analyticsCan we query all our billing data, and segment it by product, plan, country, currency and payment type?
9BusinessFinancial reportingWhich reports does finance get: revenue recognition, overdue aging, reconciliation with cash?
10BusinessBundles and hierarchical accountsCan a parent account pay for its children, and can several subscriptions form one bundle?
11BusinessEntitlement managementHow do entitlement and billing stay in sync when a plan changes or a payment fails?
12TechnicalSecurityHow are access, credentials and card data protected, and who tests it?
13TechnicalScalabilityWhat load does the system handle today, and what happens at our peak?
14TechnicalAvailabilityWhat uptime is committed, and how often is the system down for maintenance?
15TechnicalAPI and UI capabilitiesIs every feature available in the API, in the UI, or in both?
16TechnicalDeployment optionsCan we run it as SaaS, as our own instance, or on our own infrastructure?
17TechnicalDeveloper experienceIs there a test environment, clear API documentation and client libraries in our languages?
18OtherMaturity and long-term viabilityHow long has the system been in production, and what is the plan for the next years?
19OtherCostHow is it priced: flat fee, per user, per transaction, or a share of revenue? What is extra?
20OtherClient referencesCan we talk to customers with a similar business model and volume?
21OtherQuality of supportWill we reach engineers for hard problems, and what SLA applies?
22OtherQuality of integrationWho has done this integration before, and how realistic is the schedule?
23OtherVendor lock-inHow do we get our data out, and on what terms can we leave the contract?
24OtherStandards and legal complianceWhich compliance applies to card data, financial controls and personal data, and who holds it?
Download the checklist, with weights and vendor scores:
Excel (.xlsx)
CSV
Use this checklist with an AI assistantCopy the prompt, fill in the brackets, and paste it into the assistant you use.
I am choosing a billing system for my company. Help me compare vendors.

About us:
- Business model: [subscriptions, usage, one-off sales, marketplace...]
- Annual revenue billed: [range]
- Countries and currencies: [list]
- Payment gateways we use or want: [list]
- Systems billing must connect to: [CRM, ERP, accounting, data warehouse...]
- Hosting constraints: [SaaS is fine / must run on our own infrastructure]

Vendors to compare: [Vendor A], [Vendor B], [Vendor C]

For each vendor, answer these 24 criteria with facts from its public documentation, and say "unknown" when you cannot find a source:
1. Integration points
2. Core operations and business models
3. Fraud detection and prevention
4. User experience
5. Globalization
6. Dunning and chargebacks
7. Pricing model flexibility
8. Data and analytics
9. Financial reporting
10. Bundles and hierarchical accounts
11. Entitlement management
12. Security
13. Scalability
14. Availability
15. API and UI capabilities
16. Deployment options
17. Developer experience
18. Maturity and long-term viability
19. Cost model (flat fee, per user, per transaction, share of revenue)
20. Client references
21. Quality of support
22. Quality of integration
23. Vendor lock-in
24. Standards and legal compliance

Then give a table with one row per criterion and one column per vendor, list the questions I should still ask each vendor, and estimate the yearly cost of each vendor at our revenue today and at three times our revenue.
The Scope

What a Billing System Has to Do

Every criterion below touches one of these steps. Check each step against your user stories.
The steps a billing system covers: a catalog of products and prices, subscriptions and usage, invoices with tax, payments through gateways, dunning when payments fail, and reporting for finance. Integrations and entitlements connect it to the rest of the company. Catalogproducts, plans,prices, currencies Subscriptionstrials, changes,usage, cancellations Invoicesproration, credits,tax, templates Paymentsgateways, tokens,refunds, chargebacks Dunningretries, overduestates, recovery Reportingrevenue, aging,reconciliation IntegrationsCRM, ERP, accounting, tax engine, data warehouse, your apps Entitlementswho can use what, kept in sync with billing and payments
Build, Buy or Open Source

Three Ways to Get a Billing System

The criteria apply to all three. The trade-offs differ.
 Build in-houseSaaS billingOpen source platform
Time to startLong: catalog, proration, invoices, payments, retries and tax all to buildShort: the vendor hosts and runs itMedium: the engine is ready, you deploy and integrate it
ControlFull, on code and dataLimited to the vendor's features and roadmapFull: you can read and change the code
DataIn your databaseIn the vendor's system, exported through its APIIn your database
Cost modelYour engineering team, for as long as you run itMonthly fees, often per user, per transaction or a share of revenueFree software. Optional support or enterprise edition, often at a fixed fee
Who maintains itYouThe vendorYou, with the community or a support contract
Lock-inNone, but the system depends on the team that built itHigh: leaving means a migration on the vendor's termsLow: open code, your own data

Kill Bill is an open source platform. Aviate, its enterprise offering, adds enterprise features and Level 3 support for a fixed fee.

Cost Models

A Share of Revenue or a Fixed Fee?

Many billing vendors charge a percentage of the revenue they bill, or a fee per transaction. That cost grows every time your business grows. A fixed fee stays the same, so you can plan it.
Illustration: as billed revenue grows, a fee based on a percentage of revenue grows with it, while a fixed annual fee stays flat. No vendor prices are shown. Revenue you bill each year Annual billing cost Share of revenue Fixed annual fee break-even point
Illustration, not a quote: no vendor prices on this chart.
ModelWhat grows the bill
Share of revenueEvery extra dollar you bill
Per transactionEvery invoice or payment
Per user or seatEvery person using the system
Fixed feeNothing: the fee is known in advance
Kill Bill open source is free. Aviate is a fixed annual fee, with no percentage of revenue and no fee per transaction, so the cost stays the same as you grow. Pricing

Business Criteria

Integration points

Determine how well and how easily your existing internal and external systems will integrate with the billing system.
Consider both internal and external system integration points.
Internal:
Accounting
Analytics and business intelligence
Catalogs
Email
Marketing (promotions, discounts, partnerships)
User services/support
Product (access control)
Financial reporting
Sales (subscription creation, visibility into customer usage and trends)
External:
Tax calculations
Ecommerce site
Fraud detection and prevention
Mobile apps
Payment processing and gateways

Core operations & supported business models

Create user stories to cover the subscription lifecycle changes that you need. Examples include creation, cancellation, upgrades, downgrades, pause, resume, etc.
Additionally, make sure you have user stories for addons (additional purchases to be added to a subscription), usage billing, or discounts if your business requires them.

Fraud detection & prevention

Most payment processors have their own fraud detection and prevention methods, as do SaaS billing systems. However, fraud detection and prevention is complex.
An off-the-shelf billing software system may not fit your needs without some tweaking. Examine the fraud/attack risks particular to your business or industry and make sure a vendor’s fraud solution will work for you.

User experience

Document at a high level where and how users interact with the system. This can include but isn’t limited to:
Customers using the product
Finance staff
Customers using the account management system
Business owners
Customers using a mobile app
Marketers
Customer Service Representatives
Engineers and integrators

Globalization capabilities

Globalization is more than just support for multi-currency. It includes:
Multi-language: Provide templates in different languages for all user-facing documents, including emails.
Internationalization of currency and date/time representations: Use correct decimal and thousands separators and present day, month, and years correctly.
Internationalization of currency rounding: Some locations have local rules that define different rounding conventions in different jurisdictions. The rounding, unlike other aspects of internationalization, isn’t just a feature of the presentation layer. It must be built into the billing system. If you were to round the items on an invoice after it is created, they may not add up to the original total.
Time zone handling: Without a proper time zone logic, the system can potentially present customers with a bill on the wrong day.

Retention management (dunning) & chargebacks

All too often, recurring payments will fail. Managing dunning correctly can make a significant difference to the customer churn rate. Also, the system should automatically handle chargebacks and recurring payment cancellations.

Pricing model flexibility

If your business often experiments with addons, discounts, extended trials, buy-one-get-one-half price subscriptions, and so forth, can the billing system easily handle these?

Data & business analytics

How will you have access to or visibility into your data? Some SaaS providers have limited API libraries or are not set up to allow you to extract your own data.
Most systems provide basic metrics (trials converted, overall MRR, etc.). You should also be able to segment this information in various ways (by product, plan, billing term, country of origin, currency, payment type etc.).

Financial reporting

Make sure the Finance team can generate the reports they need when they need them. They’ll need auditable financial reports of at least recognized revenue (for example, ASC 606 standard) and overdue payment aging. Another important need is to reconcile charges against cash in the bank.

Subscription bundling & hierarchical accounts

In large enterprises, users are rarely responsible for paying the bill, so individual user subscriptions need to be rolled up into a department account.
Additionally, it’s sometimes necessary to use subscription bundling to associate a collection of subscriptions with a particular instance of a product. Besides supporting these features, the system needs to be able to present the bill to the customer clearly and correctly.

Entitlement management

An entitlement is a service or product type that a user account or product instance is allowed to access. The entitlement management system is the source of truth as to which services a user (or product instance) has access.
Entitlement and billing are very closely associated. Though they can require separate business logic, they need to be constantly in sync.
Building entitlement management on top of a third-party SaaS billing system that wasn’t designed it can be a painful undertaking. Make sure you understand how a single view of the data between the two is achieved.

Technical Criteria

Security

If you’re looking at a billing system from a SaaS vendor, they should:
Restrict access to their API to calls from particular IP addresses.
Use credentials to log in and connect using HTTPS.
Carry out regular vulnerability scans and penetration tests using third party systems.
In addition, if they deal with credit cards, they should have the appropriate level of PCI DSS compliance.

Scalability

As you scale, can the billing system meet increasing usage demands? Some multi-tenant SaaS systems can expose you to load issues caused by other clients.
On one hand, this is good because your peak load can be handled by a big pool of server resources shared across all customers. However, there’s the potential for failures caused by the peak loads of other users.
Make sure you know the figures for the overall load that a billing system provider can handle and how close to that maximum they are.

Availability

If you can’t access your billing system because it’s out of action, your business can suffer. Furthermore, if you rely on the billing system for entitlement data, customers might not be able to access your product. And system that’s down can’t collect credit card data, so new customers won’t be able to sign up.
Check what level of uptime the software provider commits to. Ask them how long and how often offline maintenance occurs.

API capabilities vs. UI capabilities

When reviewing product features and capabilities, make sure you understand which capabilities are available in the system interface versus the API. Sometimes, features can be offered in one and not the other, allowing a vendor to claim a capability that doesn’t meet your requirements.

Deployment options

Understand what options you have for running a billing system:
Multi-tenant SaaS: All the issues of maintenance, hosting, and updates are handled by the provider
Running billing system in-house: You have more control over security and availability, plus better access to your data.
Standalone SaaS: This is similar to multi-tenant SaaS, except you get your own instance.
Virtual appliance: Runs in-house, but it’s packaged to make it easier for a third-party to maintain.

Developer experience

The quality of the developer experience can significantly impact the speed of integration and the cost of maintaining that integration over time. Some important criteria include:
Quality and availability of testing environments
Quality of the APIs and API documentation
Client libraries in multiple programming languages

Other Criteria

System maturity & long‑term viability

You don’t want to be forced into a change because your billing software vendor went bust.
Look for a billing and management system tried and tested in the real world, with a reputation for stability as well as long-term plans for improvements and support.

Cost

Billing system providers usually price their products per month, by the number of users per month, or per transaction. Some might charge additional fees for installation, support, and access to the API or extra features.
Make sure you have a very good understanding of how much a billing system will cost before you sign up. A fee tied to revenue or to transactions grows with your business. A fixed fee does not, which makes the cost predictable.

Client references

Testimonials are a great source of additional information. Online software review sites let users honestly provide feedback. Pay special attention to feedback about integration and the quality of technical support.

Quality of support

In the early stages of integration, technical support is critical. Understand the level of service level agreements (SLAs) that you’ll get.
Talk to support staff to see how much they really know about the billing system. Find out if you’ll get to talk with engineers to solve the hard problems.

Quality of integration

Integrations are hard because of unknown factors that pop-up. Also, it’s difficult to predict accurate time frames.
Look for a support team that has done billing integrations before. Review the proposed integration schedule and make sure you understand how it can be achieved in the time frame they predict.

Vendor lock-in

Once locked in to a billing system software provider, it’s difficult to switch. If you’re required to sign a contract with a billing systems provider, make sure you understand how long the contract lasts and under what terms you can leave the contract.
You’ll be limited to their road map in updating your billing processes, experimenting with pricing models, or using a different third-party service provider.

Standards & legal compliance

Check which compliance the provider holds and which stays with you: PCI DSS for card data, SOC 1 or SOC 2 reports for financial and security controls, and privacy rules such as GDPR for personal data.
Our own answers

How Kill Bill and Aviate Answer These Criteria

The checklist above applies to any vendor. Here is how Kill Bill open source and Aviate, its enterprise offering, answer it.
CriterionKill Bill Aviate
Integration pointsREST API, push notifications per tenant, payment and tax plugins, client libraries for Java, PHP, Python, Ruby, Node and GoPlugin marketplace in the Aviate interface
Core operationsCatalog with trial and discount phases, plan changes with proration, add-ons, pause, resume, cancel, usage billingAviate Metering for raw usage events
GlobalizationA price per currency, invoice templates and translations per tenantInvoice and email templates in six languages
Dunning and chargebacksRetry schedule per tenant, overdue states, chargebacks and reversalsPayment retry settings in the Aviate interface
Pricing flexibilityCatalog versions with effective dates, price overrides per subscriptionCatalog UI, Aviate Coupons, Aviate Wallet
Data and reportingAll data in your own database, analytics plugin with a reporting databaseRevenue recognition is in Insider Preview
Hierarchical accountsParent accounts that pay for their children (Beta in the docs), bundles of subscriptions 
EntitlementsEntitlement and billing in the same system, with dunning that can pause the service 
SecuritySelf-hosted, roles and permissions, audit logs, card data tokenized at the gatewayAviate RBAC roles are in Insider Preview
Scale and availabilityStateless nodes behind a load balancer, run by youAviate Health for node metrics and stuck events
DeploymentDocker, Kubernetes or Tomcat, in your cloud or data centerAny cloud or your own infrastructure
MaturityOpen source since 2010, Apache 2.0 license 
CostFree, with no fee per transactionA fixed annual fee, never a share of revenue
SupportCommunity help, no support or SLALevel 3 support from the engineers, first response within 1 business day for a P1
Lock-inOpen source code and your own database. Leaving means migrating your data, not asking for it 
Glossary

Billing Terms in One Line

Billing
Working out what each customer owes, from plans, usage, discounts and tax, and producing invoices.
Payments
Collecting the money through a payment gateway: charges, retries, refunds and chargebacks.
Catalog
The list of products, plans, prices and billing periods a billing system can sell.
Proration
Charging or crediting part of a period when a customer changes plan in the middle of it.
Usage-based billing
Billing for what a customer consumed during a period, such as API calls, tokens or GPU hours.
Dunning
What happens after a failed payment: retries, reminders, and limits on the account until it is paid.
Entitlement
Whether a customer is allowed to use a product or service at a given time.
Chargeback
A payment reversed by the card holder's bank after a dispute.
Revenue recognition
Recording revenue in the accounting period in which it is earned, under rules such as ASC 606 or IFRS 15.
Multi-tenancy
Running several businesses or brands on one deployment, each with its own data and settings.
FAQs

Choosing a Billing System: FAQ

How do I choose a billing system?
Write the user stories your business needs first. Then compare each system on business criteria (integrations, pricing flexibility, globalization, dunning, reporting, entitlements), technical criteria (security, scale, availability, API, deployment) and other criteria (maturity, cost model, support, lock-in, compliance). Ask every vendor the same questions.
What questions should I ask a billing vendor?
Ask whether every feature is in the API, how failed payments are handled, how you get your data out, what the pricing model is (flat fee, per user, per transaction or a share of revenue), what uptime and support are committed, and whether you can talk to customers with a similar business.
Why is migrating a billing system hard?
A billing system holds active state: running subscriptions, unpaid invoices, payment methods and their gateway tokens. Moving it means migrating that state without billing customers twice or missing a period, and it can take months of engineering work.
Should I build or buy a billing system?
Building looks simple at first, but billing grows into catalogs, proration, invoicing, payments, retries, tax and reporting. Buying a SaaS system is fast to start but ties you to its roadmap and pricing model. An open source platform is a third option: you get the billing engine and keep control of the code and the data.
What is the difference between billing and payments?
Billing decides what a customer owes: plans, usage, discounts, tax and invoices. Payments collect the money through a gateway: charges, retries, refunds and chargebacks. A billing system needs both, and often several gateways.
What is entitlement management in billing?
Entitlement management decides which products or services a customer can use at a given time. It must stay in sync with billing, for example when a plan changes or when a payment fails and the service should be paused.
Is there an open source billing system?
Kill Bill is an open source billing and payments platform under the Apache 2.0 license, in production since 2010. You run it on your own infrastructure. Aviate, the enterprise offering of Kill Bill, adds enterprise features and Level 3 support for a fixed annual fee, never a share of revenue.
Which compliance should a billing system have?
PCI DSS applies to card data. With gateway tokenization, most of that scope stays with the payment gateway. SOC 1 or SOC 2 reports cover financial and security controls of SaaS providers, and privacy rules such as GDPR cover personal data.
Kill Bill logo app

Ready to Transform Your Billing?

Explore the enterprise sandbox, read the docs, or connect with the Kill Bill community.