Here are some of the key features of the Kill Bill platform and its ecosystem.

Core Platform

Modularized platform

  • Kill Bill is not an all-in-one solution: you have the ability to create customized deployments (e.g. disable the subscription system) and even replace functionality with your existing systems (e.g. delegate invoicing to SAP)

  • It can run as a standalone web service (HTTP REST APIs) or embedded as a library (Java APIs)

  • Drop-in WAR file, supports major Servlet containers (Jetty, Tomcat, etc.)

  • Cloud ready (successfully deployed on EC2, Heroku, OpenShift)

Scalability/Fault Tolerance

  • Stateless multi-nodes deployment configuration

  • Ability to use a hardware or software load-balancer to route requests to various nodes

  • Horizontal scaling: simply deploy more instances as your load grows

Event based system

  • Kill Bill exposes a message bus used by core components to react asynchronously to events: you can register your own webhooks for real-time notifications

  • Custom plugins can read and write from the bus to implement specific pieces of business logic

  • The bus provides strong atomicity semantics

Pluggable architecture

  • Ability to write custom Ruby and Java plugins on top of the platform

  • Strong isolation layer across plugins but also between plugins and the platform (OSGI)

Auditing

  • Built-in audit and history for all system changes

  • Plugs into LDAP / Active Directory if necessary

Multi-tenancy

  • Supports multiple logical instances on the same deployment

  • Useful to run multiple stores for example or testing in production

Security

  • HTTPs support

  • Role-based access control (RBAC) support

Internationalization

  • Time Zones and locales support

  • Templating engine built-in for invoices, email notifications, etc.

Tags/Custom fields

  • Most objects in Kill Bill can be tagged with arbitrary data

  • User tags are not interpreted by the system, they are only for administrative purposes

  • Kill Bill provides a few built-in system tags to change the business logic on a per-object basis (e.g. turn off payments for an account or a single subscription)

  • Custom fields (key/value pairs) can also be attached to Kill Bill objects to add additional logic by custom plugins or third party apps

Subscription and usage engine

Real time billing and payment

  • Unless configured otherwise, billing and payment happens immediately on action (creation, modification, deletion) tied to subscriptions

  • No batch processes

Powerful catalog to drive billing behavior

  • Product tiers

  • Multi-phase plans (trial, discount phases, etc.)

  • Alignments for start/change/cancellation of plans

  • Granularity for grouping subscriptions on invoices (one or multiple subscriptions per invoice)

  • Support for add-ons

Pro-ration logic calculation

  • Invoices are automatically pro-rated upon plan changes (e.g. upgrade)

Tax Support

  • Support for taxes on invoices

  • Custom plugins provide regional specific tax rules

Entitlement

  • Dunning can be configured to define the actions the system should take in case of failed payments

  • Loose coupling with billing state: a subscription can be paid but entitlement blocked (e.g. the account is still being setup) and entitlement can be granted even if the subscription is overdued (e.g. grace period for large accounts)

Payments

Generic payment API

  • Support for major flows (hosted pages, API integrations, 3D Secure, etc.)

  • Support for US and international payment gateways

  • Support for Card-Present and Card-Not-Present transactions

  • Support for e-currencies (e.g. Bitcoin)

Payment states

  • Idempotency for all payment calls

  • Internal state machine to verify transitions (auth, capture, refund, etc.). The default state machine can be overridden

  • Optimize gateway calls

  • Provides all details for tracing and logging

  • Provides all information for Analytics and reporting layer

Retry logic

  • Payment retry can be configured, or turned off

  • Retry logic can be customized through specific plugins

Payment plugins

  • Support for all major international payment methods: Credit and Debit cards (Visa, MasterCard, Amex, …), Pre-paid cards, PayPal, ACH, …

  • Support for all major payment gateways: Litle & Co., Adyen, Cybersource, Authorize.NET, Stripe, …

  • Support for alternative payment methods (cash, SMS, Boleto, …) and e-currencies (Bitcoin and Alt-Coins)

Ecosystem

  • Administrative user interface (mountable Rails engine)

  • Payment plugins, support for any ActiveMerchant gateway

  • Analytics and reporting plugin (provides ability to specify custom views that can be rendered through a web interface)

  • Any type of plugin can be implemented to interact with the system by receiving events and using rich APIs (CRM plugins, ERP, etc.)

  • Client libraries

    • Java

    • Ruby

    • PHP

    • Python, Objective-c, JS/NodeJS (in the works)

Tests

  • Large number of tests (1,100+):

    • Unit tests

    • System tests

    • Performance tests

    • Integration tests

  • Easy setup (to run and/or add tests) either locally (e.g. laptop) or in your private or public cloud