About Kill Bill
Contrary to any SaaS solution:
- Kill Bill is open-source. Read more: Why open-source software?
- Kill Bill has a pluggable architecture, allowing you to write plugins (i.e., custom code) to extend or change default behaviors.
- Kill Bill is not a batch system by default. Instead, it uses an event-oriented architecture. Modules share and react to events. For example, whenever a new invoice is generated, the invoice module sends an invoice creation event on the message bus. The payment module reacts and triggers the actual payment. These events are available to plugins, so you can write custom logic the same way.
- Because you host your own instances, you are in full control of your data. (See also “Do you track any usage data in Kill Bill?”)
Using a SaaS solution (for example, Zuora or Chargebee) seems like a smart business decision. These types of SaaS billing solutions have been around for several years, know their clients’ needs, and often give the impression that they can solve all of your billing problems.
But just as there are benefits to using a SaaS billing solution, there are also disadvantages, and they aren’t minor. The largest disadvantage is if you work with a SaaS billing provider, all of the data associated with your revenue is in their hands – not yours. That precious data can even be difficult to access at times, believe it or not.
Before you lock yourself into a SaaS subscription billing vendor, consider the following:
- Restrictions in integrating with existing business software (accounting, CRM, etc.)
- Limited feature sets
- Limited choices in third-party providers, such as for payment processing, tax calculation, fraud detection, etc.
- Issues with testing (limited number of sandboxes at a high cost)
- Inadequate analysis and reporting solutions (i.e., holding your data hostage)
To read more about this, see our article, The Pitfalls of a SaaS Billing and Payments Solution.
Kill Bill includes an XML catalog that supports these features (and more):
- Real-time catalog with subscription plans and one-off products
- Product tiers
- Pricing lists
- Different subscription types (main subscription, add-on subscriptions, etc.)
There are several ways to handle coupons and discounts:
- The simplest option is for your catalog to include discount plans (plans can additionally include discount phases)
- An alternative is to use the PhasePriceOverride element when creating a subscription
- Finally, to implement a fully fledged coupon functionality, use the EntitlementPluginApi to write your custom plugin (Kill Bill Coupon Plugin Demo is an example)
For more details, check this Moving Towards a Flexible Catalog post.
The email notifications plugin lets you send emails to your customers regarding upcoming invoices, payment successes and failures, subscription cancellations, etc.
Compliance & Security
Here are some general tips on securing your Kill Bill installation:
- Install Kill Bill behind a firewall (it should not be exposed on the public internet).
- Change the default username/password (admin/password) in your live environment.
- Don’t store sensitive data in Kill Bill. While most plugins have support for directly saving card or bank account numbers, for instance, this should only be used for testing purposes or if you use a proxy tokenizer; if you don’t, use a third-party vault.
- Encrypt username and passwords in configuration files.
- Use SSL for all communication with your eCommerce application as well as with the payment providers.
- Subscribe to our Community mailing list to receive security advisories.
- Never store security codes (CCV, CVV, etc.) in your live environment.
It is eventually your responsibility to make sure your Kill Bill installation is secure and compliant.
Yes—there are various ways to customize Kill Bill:
- System properties—These let you configure the core platform. Also, most internal modules have a second, more advanced, layer of configuration, usually through XML files. These let you configure the dunning (overdue) policy, the various plans and billing policies, etc.
- Plugins—If you need more advanced (billing or non-billing) logic, Kill Bill has a plugin capability. You can write custom code to extend or even override Kill Bill’s default behaviors. We can recommend development partners to help you do that, if necessary.
We have two release trains:
- The latest release with an even minor number (e.g., 0.22.x) is stable (APIs are backward compatible).
- The development team uses odd minor numbers for developing new features (0.17.x, 0.19.x, 0.21.x, etc.). API and DDL changes are frequent.
Before each release, there are thousands of tests that we perform:
- Unit tests
- Functional tests
- Java library integration tests
- Server integration tests to check the REST APIs
- Client APIs integration tests
However, note that Kill Bill is a platform to build billing systems. There are many combinations of configurations possible, and we cannot test them all. We provide a test framework to help you verify your system before going to production.
Also, take extra care when installing third-party plugins.
Only the plugins hosted on our killbill organization on GitHub are officially supported.