ChartMogul integration

ChartMogul integration

Running a successful subscription business requires careful monitoring of a variety of metrics: MRR, Churn, LTV, CAC, etc. It’s no surprise that our first plugin was the Analytics plugin, which computes in realtime these metrics and provides tools to build your own dashboards. Understanding, tweaking and validating these KPIs for your own business requires careful thinking and is typically owned by an experienced Business Intelligence team working closely with the executive team on a daily basis. For those who simply can’t afford the overhead, ChartMogul comes to the rescue. Their SaaS platform builds these metrics for you and lets you explore your data through cohorts, custom segments and geo-mapping tools. We’re pleased to announce today a new Kill Bill plugin for ChartMogul. This integration is in fact very similar to the Analytics plugin, i.e. it listens in real-time to events that Kill Bill produces, and mirrors the data in ChartMogul:       The plugin is available in beta at https://github.com/killbill/killbill-chartmogul-plugin. For help or feedback, feel free to reach-out on the...

Coinbase integration experiment

When we designed Kill Bill, we always thought of it as a billing platform, rather than simply a subscription billing system. We wanted to make it flexible enough to support much more than simple monthly credit cards payments. We see Kill Bill as your company’s financial toolbox. The ultimate test to validate our architecture was to experiment with a Bitcoin integration. Digital currencies offer a completely different environment compared to traditional payment gateways: the vast majority of concepts don’t apply anymore (e.g. chargebacks) and due to the push nature of transactions, recurring payments are still an open problem. As a proof of concept Kill Bill, we prototyped an integration with Coinbase, allowing customers to pay their subscriptions automatically using their Coinbase wallet (the merchant account being in Coinbase or not). Note that we are simply using Coinbase as a payment gateway, we do not use Coinbase’s recurring payments offering (invoices and payments are driven by Kill Bill). The integration mainly consisted in writing a payment plugin. Similar to, for example, the Stripe or the PayPal plugins, the Coinbase one registers itself at startup. Accounts can then have Coinbase payment methods. When an invoice is generated, an event is posted on the event bus. The payment subsystem will react to it, fetch the default payment method associated with the account, and, if it is of type killbill-coinbase, Kill Bill will delegate the actual payment call to it. A nice feature of the Coinbase API is that it handles currency conversions automatically. Regardless of the default currency on the account (USD, EUR, BTC, …), Kill Bill can simply pass the original amount to Coinbase...

Kill Bill: plugins architecture

Kill Bill wasn’t our first billing system. As we developed these systems, even though the very core always looked the same (i.e. compute invoices and charge customers on a regular basis), it became obvious that each and every one of them required a great deal of flexibility and heavy business logic customization. In Kill Bill, while we addressed the need for plan customization via our catalog module and its set of rules and policies, we developed a plugin framework for pretty much anything else, from reacting to system events to third party integrations. When designing this plugin framework, we quickly settled for an OSGI integration. This gave us a lot of features for free, such as lifecycle and isolation, and allowed us to support non Kill Bill specific bundles (we call these platform plugins). As an example, we run in production the Felix Web Console, which is a great debugging tool. OSGI is quite a complex framework though, so we tried to hide as much complexity as possible from the user who simply wants to develop a Kill Bill specific plugin. We made it so that all that is required is to implement certain interfaces that Kill Bill will use to communicate with the plugin. The type of interfaces implemented determine the type of plugin. The first type of plugin supported is payment plugins. By default, Kill Bill doesn’t know about any payment gateway. Instead, each account has a series of payment methods (credit cards, PayPal accounts, Bitcoin wallets, etc.) attached to it, and each payment method is associated with a given plugin. There is no built-in concept of credit...