<commit_before>= What Is Kill Bill?

== Introduction

Kill Bill is the open-source subscription billing and payments platform.

The *subscription billing* features let you create recurring or usage based subscriptions (e.g. "gold plan subscription at $9.99/month") and manage upgrades and downgrades. The system will take care of generating invoices, managing credits and triggering payments. Netflix, Dropbox and The New York Times are examples of websites which sell such subscriptions.

The *payment* features let you connect with virtually any payment gateway and processor (Stripe, Braintree, PayPal, Adyen, CyberSource, etc.) to charge your customers (using credit or debit cards, ACH, wire transfers, Bitcoin, etc.) for their subscriptions or one-off payments (e.g. shopping cart-type websites like Amazon or Zappos).

We refer to Kill Bill as a *platform* because of its extensibility: you can write plugins to modify the behavior of the system or to integrate with third-party vendors, such as fraud detection solutions (Accertify, Feedzai, etc.) or Tax providers (Avalara AvaTax, etc.). A lot of open-source plugins are available on our http://github.com/killbill/killbill[GitHub organization].

Kill Bill is a standalone Java server that runs in your back-end. Your customers will never interact with it directly, instead your website (it could be a custom e-commerce website, a Drupal or WordPress deployment, etc.) will trigger REST API calls (over HTTP) to process subscriptions or orders. We also provide *Kaui*, the Kill Bill administrative UI, an interface to interact with Kill Bill for your support and finance teams (to manage refunds, invoice adjustments, etc.).

Conceptually, Kill Bill is deployed as such:

* Customers interact with your custom e-commerce website (in blue), which issues REST API calls to Kill Bill. You are responsible for designing and building that piece
* Kill Bill (in pink), with its database, manages subscriptions, invoices, payments, etc.
* Kill Bill interacts with third-party services (in green), such as payment processors like Stripe and PayPal. You are responsible for choosing and signing contracts with these services

image::architecture.svg[format=svg,align=center]


Check this video for a quick tour:

https://www.youtube.com/watch?v=f2IHcz3OLYo[image:http://img.youtube.com/vi/f2IHcz3OLYo/0.jpg[align=center]]

=== The Kill Bill Platform

Some of the features of the Kill Bill platform include:

* Core Foundations
** High level of integrity and *robustness*
** Authentication and role-based access control (*RBAC*) support integrating with your LDAP, Okta, etc.
** A *plugin framework* where open-source and proprietary plugins can be added to modify the behavior of the system, and/or to interact with third party systems
** A robust persistent *event bus*, that is used both internally and externally (events are visible to plugins and to other services via HTTP push notifications)
** An *auditing* framework that keeps track of all the changes that occurred (who?, when?, what?)
* Core services, each of which exposing its own APIs and publishing bus events, which are consumed by other core services or plugins:
** Account
** Catalog
** Subscription and entitlement
** Usage: units recording from metering system
** Invoice: invoice generation and management (e.g. ability to adjust invoice items) for subscriptions and one-off charges
** Payment: payment gateways integration for recurring and one-off payments
** Overdue: dunning management (in case of unpaid invoices for instance)
* Plugins

Contrary to most (SaaS) billing solutions, Kill Bill is *not* a batch oriented system, but instead, it is driven by events occurring in the system (for example, the creation of a new subscription will create a new event that the invoicing core service will process and as result a new invoice may be created along with a new event, which the payment core service will then process, ...).

Kill Bill is packaged as a WAR and is therefore executed within a web container (typically Tomcat). It offers https://killbill.github.io/slate/[REST APIs] to manage the state associated with accounts, subscriptions, invoices, payments, ...

Kill Bill supports multi-tenancy, meaning you can run multiple logical instances of Kill Bill with a single server and database (see this http://killbill.io/blog/subscription-service-using-kill-bill[blog post] which illustrates some of the use cases).

=== Where to Start?

==== Layman's Next Steps

If you are interested to know more about what Kill Bill is about, the following links will be of interest:

* http://docs.killbill.io/latest/features.html[List of features]
* http://docs.killbill.io/latest/faq.html[FAQ]
* http://killbill.io/blog/[Our official blog]
* https://www.capterra.com/p/159213/Kill-Bill/#reviews[User reviews on Capterra, a Gartner company]

==== Technical Guides

To start integrating Kill Bill in your environment:

1. Follow the installation tutorial below
2. Integrate your application through our https://killbill.github.io/slate/[REST APIs]
3. Configure Kill Bill to match your own set of requirements:
 * http://killbill.io/subscription-billing[Billing System manual]
 * http://killbill.io/payments-platform/[Payment System manual]

*All of our documentation is hosted in a https://github.com/killbill/killbill-docs[GitHub repository], so please either submit a PR when obvious things are missing or wrong, or let us know so we can improve it!*<commit_msg>Trivial updates to What Is Kill Bill?<commit_after>= What Is Kill Bill?

== Introduction

Kill Bill is the open-source subscription billing and payments platform.

The *subscription billing* features let you create recurring or usage based subscriptions (e.g. "gold plan subscription at $9.99/month") and manage upgrades and downgrades. The system will take care of generating invoices, managing credits and triggering payments. Netflix, Dropbox and The New York Times are examples of websites which sell such subscriptions.

The *payment* features let you connect with virtually any payment gateway and processor (Stripe, Braintree, PayPal, Adyen, CyberSource, etc.) to charge your customers (using credit or debit cards, ACH, wire transfers, Bitcoin, etc.) for their subscriptions or one-off payments (e.g. shopping cart-type websites like Amazon or Zappos).

We refer to Kill Bill as a *platform* because of its extensibility: you can write plugins to modify the behavior of the system or to integrate with third-party vendors, such as fraud detection solutions (Accertify, Feedzai, etc.) or Tax providers (Avalara AvaTax, etc.). A lot of open-source plugins are available on our http://github.com/killbill/killbill[GitHub organization].

Kill Bill is a standalone Java server that runs in your back-end. Your customers will never interact with it directly, instead your website (it could be a custom e-commerce website, a Drupal or WordPress deployment, etc.) will trigger REST API calls (over HTTP) to process subscriptions or orders. We also provide *Kaui*, the Kill Bill administrative UI, an interface to interact with Kill Bill for your support and finance teams (to manage refunds, invoice adjustments, etc.).

Conceptually, Kill Bill is deployed as such:

* Customers interact with your custom e-commerce website (in blue), which issues REST API calls to Kill Bill. You are responsible for designing and building that piece
* Kill Bill (in pink), with its database, manages subscriptions, invoices, payments, etc.
* Kill Bill interacts with third-party services (in green), such as payment processors like Stripe and PayPal. You are responsible for choosing and signing contracts with these services

image::architecture.svg[format=svg,align=center]


Check this video for a quick tour:

https://www.youtube.com/watch?v=f2IHcz3OLYo[image:http://img.youtube.com/vi/f2IHcz3OLYo/0.jpg[align=center]]

== The Kill Bill Platform

Some of the features of the Kill Bill platform include:

* Core Foundations
** High level of integrity and *robustness*
** Authentication and role-based access control (*RBAC*) support integrating with your LDAP, Okta, etc.
** A *plugin framework* where open-source and proprietary plugins can be added to modify the behavior of the system, and/or to interact with third party systems
** A robust persistent *event bus*, that is used both internally and externally (events are visible to plugins and to other services via HTTP push notifications)
** An *auditing* framework that keeps track of all the changes that occurred (who?, when?, what?)
* Core services, each of which exposing its own APIs and publishing bus events, which are consumed by other core services or plugins:
** Account
** Catalog
** Subscription and entitlement
** Usage: units recording from metering system
** Invoice: invoice generation and management (e.g. ability to adjust invoice items) for subscriptions and one-off charges
** Payment: payment gateways integration for recurring and one-off payments
** Overdue: dunning management (in case of unpaid invoices for instance)
* Plugins

Contrary to most (SaaS) billing solutions, Kill Bill is *not* a batch oriented system, but instead, it is driven by events occurring in the system (for example, the creation of a new subscription will create a new event that the invoicing core service will process and as result a new invoice may be created along with a new event, which the payment core service will then process, ...).

Kill Bill is packaged as a WAR and is therefore executed within a web container (typically Tomcat). It offers https://killbill.github.io/slate/[REST APIs] to manage the state associated with accounts, subscriptions, invoices, payments, ...

Kill Bill supports multi-tenancy, meaning you can run multiple logical instances of Kill Bill with a single server and database (see this http://killbill.io/blog/subscription-service-using-kill-bill[blog post] which illustrates some of the use cases).

== Where to Start?

=== Layman's Next Steps

If you are interested to know more about what Kill Bill is about, the following links will be of interest:

* http://docs.killbill.io/latest/features.html[List of features]
* http://docs.killbill.io/latest/faq.html[FAQ]
* http://killbill.io/blog/[Our official blog]
* https://www.capterra.com/p/159213/Kill-Bill/#reviews[User reviews on Capterra, a Gartner company]

=== Technical Guides

To start integrating Kill Bill in your environment:

1. Follow the http://docs.killbill.io/latest/getting_started.html[Getting Started guide]
2. Integrate your application through our https://killbill.github.io/slate/[REST APIs]
3. Configure Kill Bill to match your own set of requirements:
 * http://killbill.io/subscription-billing[Billing System manual]
 * http://killbill.io/payments-platform/[Payment System manual]

*All of our documentation is hosted in a https://github.com/killbill/killbill-docs[GitHub repository], so please either submit a PR when obvious things are missing or wrong, or let us know so we can improve it!*
{'fraction_non_alphanumeric': 0.07061916417369232, 'fraction_numerical': 0.0030822228265796393, 'mean_word_length': 4.861849096705632, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 10, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2000635', 'n_tokens_mistral': 2868, 'n_tokens_neox': 2695, 'n_words': 1477}