Kill Bill Ruby client library.

Kill Bill compatibility

Client version Kill Bill version
0.x.y 0.16.z
1.x.y 0.18.z


Get the killbill-client gem:

gem install killbill-client

Alternatively, add the dependency in your Gemfile:

gem 'killbill-client', '~> 1.0'


Here is a snippet creating your first account and subscription:

require 'killbill_client'

KillBillClient.url = ''

# Multi-tenancy and RBAC credentials
options = {
  :username => 'admin',
  :password => 'password',
  :api_key => 'bob',
  :api_secret => 'lazar'

# Audit log data
user = 'me'
reason = 'Going through my first tutorial'
comment = 'I like it!'

# Create an account
.name = 'John Doe'
.first_name_length = 4
.external_key = 'john-doe'
.currency = 'USD'
 = .create(user, reason, comment, options)

# Add a subscription
subscription =
subscription. = .
subscription.product_name = 'Sports'
subscription.product_category = 'BASE'
subscription.billing_period = 'MONTHLY'
subscription.price_list = 'DEFAULT'
subscription = subscription.create(user, reason, comment, nil, true, options)

# List invoices
.invoices(true, options).each do |invoice|
  puts invoice.inspect

The following script will tag a list of accounts with OVERDUE_ENFORCEMENT_OFF and AUTO_PAY_OFF:

require 'killbill_client'

KillBillClient.url = ''

AUDIT_USER = 'pierre (via ruby script)' + '/accounts.txt') do ||
   = KillBillClient::Model::Account.find_by_id 
  puts "Current tags for #{.name} (#{.}): #{', ')}"


  puts "New tags for #{.name} (#{.}): #{', ')}"

We have lots of examples in our integration tests.


To run the integration tests:

rake test:remote:spec

You need to set in spec/spec_helper.rb the url of your instance, e.g. KillBillClient.url = '' and the username and password to authenticate the API, e.g. KillBillClient.username = 'admin' and KillBillClient.password = 'password'


The Kill Bill Ruby client is released under the Apache license.