“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.
| # | Group | Criterion | Question to ask |
|---|---|---|---|
| 1 | Business | Integration points | Which of our systems connect to billing, and through which API, events or ready-made integrations? |
| 2 | Business | Core operations and business models | Can you run our user stories: create, upgrade, downgrade, pause, resume, cancel, add-ons, usage, discounts? |
| 3 | Business | Fraud detection and prevention | How does fraud screening work with our payment processor, and can we add our own rules? |
| 4 | Business | User experience | What do customers, finance, support and engineers each see and do in the system? |
| 5 | Business | Globalization | How are languages, currencies, rounding rules and time zones handled on invoices? |
| 6 | Business | Dunning and chargebacks | How are failed payments retried, what happens to the account, and how are chargebacks recorded? |
| 7 | Business | Pricing model flexibility | Can we launch a new plan, trial, add-on or discount without engineering work? |
| 8 | Business | Data and analytics | Can we query all our billing data, and segment it by product, plan, country, currency and payment type? |
| 9 | Business | Financial reporting | Which reports does finance get: revenue recognition, overdue aging, reconciliation with cash? |
| 10 | Business | Bundles and hierarchical accounts | Can a parent account pay for its children, and can several subscriptions form one bundle? |
| 11 | Business | Entitlement management | How do entitlement and billing stay in sync when a plan changes or a payment fails? |
| 12 | Technical | Security | How are access, credentials and card data protected, and who tests it? |
| 13 | Technical | Scalability | What load does the system handle today, and what happens at our peak? |
| 14 | Technical | Availability | What uptime is committed, and how often is the system down for maintenance? |
| 15 | Technical | API and UI capabilities | Is every feature available in the API, in the UI, or in both? |
| 16 | Technical | Deployment options | Can we run it as SaaS, as our own instance, or on our own infrastructure? |
| 17 | Technical | Developer experience | Is there a test environment, clear API documentation and client libraries in our languages? |
| 18 | Other | Maturity and long-term viability | How long has the system been in production, and what is the plan for the next years? |
| 19 | Other | Cost | How is it priced: flat fee, per user, per transaction, or a share of revenue? What is extra? |
| 20 | Other | Client references | Can we talk to customers with a similar business model and volume? |
| 21 | Other | Quality of support | Will we reach engineers for hard problems, and what SLA applies? |
| 22 | Other | Quality of integration | Who has done this integration before, and how realistic is the schedule? |
| 23 | Other | Vendor lock-in | How do we get our data out, and on what terms can we leave the contract? |
| 24 | Other | Standards and legal compliance | Which compliance applies to card data, financial controls and personal data, and who holds it? |
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.
Build, Buy or Open Source
Three Ways to Get a Billing System
The criteria apply to all three. The trade-offs differ.
| Build in-house | SaaS billing | Open source platform | |
|---|---|---|---|
| Time to start | Long: catalog, proration, invoices, payments, retries and tax all to build | Short: the vendor hosts and runs it | Medium: the engine is ready, you deploy and integrate it |
| Control | Full, on code and data | Limited to the vendor's features and roadmap | Full: you can read and change the code |
| Data | In your database | In the vendor's system, exported through its API | In your database |
| Cost model | Your engineering team, for as long as you run it | Monthly fees, often per user, per transaction or a share of revenue | Free software. Optional support or enterprise edition, often at a fixed fee |
| Who maintains it | You | The vendor | You, with the community or a support contract |
| Lock-in | None, but the system depends on the team that built it | High: leaving means a migration on the vendor's terms | Low: 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.
| Model | What grows the bill |
|---|---|
| Share of revenue | Every extra dollar you bill |
| Per transaction | Every invoice or payment |
| Per user or seat | Every person using the system |
| Fixed fee | Nothing: 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.
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.
| Criterion | ||
|---|---|---|
| Integration points | REST API, push notifications per tenant, payment and tax plugins, client libraries for Java, PHP, Python, Ruby, Node and Go | Plugin marketplace in the Aviate interface |
| Core operations | Catalog with trial and discount phases, plan changes with proration, add-ons, pause, resume, cancel, usage billing | Aviate Metering for raw usage events |
| Globalization | A price per currency, invoice templates and translations per tenant | Invoice and email templates in six languages |
| Dunning and chargebacks | Retry schedule per tenant, overdue states, chargebacks and reversals | Payment retry settings in the Aviate interface |
| Pricing flexibility | Catalog versions with effective dates, price overrides per subscription | Catalog UI, Aviate Coupons, Aviate Wallet |
| Data and reporting | All data in your own database, analytics plugin with a reporting database | Revenue recognition is in Insider Preview |
| Hierarchical accounts | Parent accounts that pay for their children (Beta in the docs), bundles of subscriptions | |
| Entitlements | Entitlement and billing in the same system, with dunning that can pause the service | |
| Security | Self-hosted, roles and permissions, audit logs, card data tokenized at the gateway | Aviate RBAC roles are in Insider Preview |
| Scale and availability | Stateless nodes behind a load balancer, run by you | Aviate Health for node metrics and stuck events |
| Deployment | Docker, Kubernetes or Tomcat, in your cloud or data center | Any cloud or your own infrastructure |
| Maturity | Open source since 2010, Apache 2.0 license | |
| Cost | Free, with no fee per transaction | A fixed annual fee, never a share of revenue |
| Support | Community help, no support or SLA | Level 3 support from the engineers, first response within 1 business day for a P1 |
| Lock-in | Open 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.
Ready to Transform Your Billing?
Explore the enterprise sandbox, read the docs, or connect with the Kill Bill community.
Support
Work directly with the Kill Bill core team
Kill Bill Community
For technical questions, start by asking the Community
Documentation
Organized product documentation library and API Reference
Customization
Work with experts for Kill Bill customization