Migrate from Chargebee to Kill Bill

Moving from Chargebee to Kill Bill means rebuilding your catalog, importing accounts and subscriptions through its APIs, reconnecting the gateway that holds your card tokens, and cutting over without double billing.

On this page

Migrate from Chargebee to Kill Bill without losing subscriptions or double billing

Moving from Chargebee to Kill Bill is feasible, but it is mostly a data and integration project, not a software installation. The reader's trigger is usually a renewal, a pricing change, a residency requirement or lock-in concern. Kill Bill is an open-source subscription billing and payments platform licensed under the Apache License 2.0, and it has been in production since 2010. The work is usually done by internal platform or finance engineering teams, often with an implementation partner for the catalog mapping, the gateway plugin and the cutover plan. Kill Bill itself does not include vendor support or an SLA, so the operating commitments must be planned in-house or contracted separately.

Kill Bill is a standalone Java server packaged as a WAR file and typically run in Tomcat. Your systems call it through REST APIs. Payment gateways, tax providers and fraud providers connect through plugins deployed as JARs in the same environment. The Kaui back office gives support, product configuration, finance reporting and testing teams role-based access to the data. The core team uses MySQL and runs regression tests against MariaDB 10 and PostgreSQL 12, and the Tomcat installation guide requires JDK 11, so confirm your database and JDK choices against the Kill Bill getting started guide before you size the environment.

Effort depends on three things: how many plans, add-ons and price books you must recreate as a Kill Bill catalog, how the gateway that holds your card tokens will be connected through a payment plugin, and what cutover constraints apply, such as a billing cycle that cannot be split or a revenue close that cannot move mid-period. Ask any implementation partner to scope these three areas in writing, including a test plan that proves no customer is billed twice during the parallel run. Confirm with your finance team which invoices, credits and balances must be carried over before the first Kill Bill invoice is generated.

What maps cleanly from Chargebee to Kill Bill and what needs rework

This table compares the main Chargebee billing areas with Kill Bill, marking each as clean, needs rework or gap. Use it to scope custom work and external tools before you commit to a catalog redesign. Confirm every Chargebee module you rely on against your own export and Kill Bill's current plugin list.

AreaKill Bill positionStatusWhat to confirm or build
Plans and catalogKill Bill uses a catalog of products, plans, phases and price lists that you define through its API or Kaui.Needs reworkRebuild Chargebee plans as Kill Bill catalog entries. Map trial phases and multi-currency prices explicitly.
Add-onsAdd-ons are modeled as add-on products attached to a base subscription.Needs reworkCheck whether each Chargebee add-on maps to a recurring add-on, a one-time charge or a usage component.
Subscriptions and lifecycleKill Bill handles subscription creation, upgrades, downgrades and cancellations through its REST APIs.CleanImport active subscriptions with their billing dates, then test change and cancel paths against sample accounts.
Invoices and creditsKill Bill generates invoices and supports invoice items, credits and adjustments.CleanConfirm invoice numbering and tax line presentation match what customers and your accountants expect.
Usage meteringKill Bill supports usage-based subscriptions, but usage records must be sent by your own system.Needs reworkPlan where usage is counted, how records are posted to Kill Bill and how late usage is handled.
Coupons and discountsKill Bill has no built-in coupon engine equivalent to Chargebee's coupon sets.GapModel discounts as credits or price overrides, or add a custom coupon service in front of Kill Bill.
Dunning and retriesKill Bill supports payment retries through its payment plugins and configured retry logic, which depends on your gateway.Needs reworkCompare Chargebee's dunning rules with your Kill Bill retry settings and confirm email reminders come from your own system.
TaxTax calculation is handled through a tax plugin or an external tax service connected to Kill Bill.Needs reworkChoose a tax provider or plugin, then test rates on invoices before cutover.
Gateway and card tokensPayment plugins connect Kill Bill to gateways such as Stripe, Braintree and PayPal. Tokens stay with the gateway or vault.Needs reworkConfirm your token holder can be used by the plugin. Do not move card data unless your PCI scope and gateway agree.
Revenue recognition and retentionKill Bill does not provide revenue recognition or retention tooling comparable to Chargebee's add-on modules.GapList the Chargebee revenue and retention features you use and confirm the replacement with finance and an external tool.
Back office and reportingKaui provides role-based access for support, product configuration, finance reporting and testing.Needs reworkCompare Kaui reports with your Chargebee dashboards and plan a BI export for finance reporting.

Which data moves through documented exports and which integrations must be rebuilt

Customers, subscriptions, invoices, plans and add-ons can be exported and re-created in Kill Bill through its REST APIs. Card tokens and the integrations around billing do not move with the data, so each one needs its own reconnection or rebuild step.

Customers and payment accounts

Chargebee's entity-by-entity export is the starting point for customer records, including account names, contact details, billing addresses, currency and tax settings. Map each record to a Kill Bill account through its REST APIs, and keep your own customer identifier on the record so support tickets and ledgers still line up. Check that tax identifiers and currencies arrive intact, because Kill Bill invoices depend on them. Ask Chargebee which fields its export omits before you write the import.

Subscriptions and add-ons

Export each subscription with its plan, start date, billing period, add-ons, quantities and any pending changes. Re-create active subscriptions in Kill Bill against the catalog you built for your plans and add-ons, so renewal dates carry over without restarting the billing cycle. Confirm how scheduled cancellations, trials and coupons appear in the export, since these states are the ones most often lost in translation. Test each subscription type on a non-production tenant first.

Invoices, credits and balances

Export invoices with their line items, taxes, credits and outstanding balances. Kill Bill can hold invoice and credit history, but migrated invoices should be imported as records of past billing, not as new charges. Confirm with finance which open balances move into Kill Bill and which settle in Chargebee before the cutover. Keep a read-only copy of the Chargebee history for audit and reconciliation.

Card tokens stay with the gateway

Card data stays with the payment gateway that holds it, so treat it as a reconnection task and do not export it from Chargebee. Connect that same gateway to Kill Bill through a payment plugin, then link each account to its existing payment method. Kill Bill plugins are deployed as JARs alongside the server, and Kill Bill documents connections to gateways such as Stripe, Braintree and PayPal. Confirm with your gateway that existing tokens work through the new integration before any live charge runs.

Accounting, tax and fraud connections

These connections run inside Chargebee today and do not move with the data. Kill Bill supports tax and fraud providers through plugins, so each one needs a matching plugin or a replacement path. Accounting exports, including ledger accounts, journal mappings and sync schedules, must be rebuilt and reconciled against Kill Bill invoice records. Inventory every connection in Chargebee's settings and assign an owner to each before cutover, because a missing tax or ledger feed often shows up only at month-end.

Webhooks and downstream consumers

Any system that reacts to Chargebee webhooks, such as entitlement services, CRM updates or provisioning jobs, must be rebuilt against Kill Bill's event model. Kill Bill is event-driven, so consumers should subscribe to Kill Bill events instead of Chargebee's webhook endpoints. Map each Chargebee event type to its Kill Bill equivalent, and run new consumers in shadow mode during the parallel period so access is not granted twice. Document which system is the source of truth for entitlements at each stage.

Migration sequence from inventory to decommission

This sequence moves billing from Chargebee to Kill Bill in five stages, each with a written output, so that Kill Bill proves its invoices against real data before it ever bills a customer. Card tokens stay with the gateway throughout, and Chargebee is switched off only after the last cycle it billed is closed.

  1. Inventory catalog, customers, subscriptions and tokens

    Billing operations and finance export every plan, add-on, price, tax setting, customer, subscription and open invoice from Chargebee, then confirm with the gateway which customer records map to which stored payment methods. Engineering documents any usage metrics and webhooks that feed other systems. The output is a reconciled inventory with counts that match between Chargebee and the gateway, and a list of gaps that need a decision before the pilot starts.

  2. Build a pilot catalog in a non-production Kill Bill

    Platform engineers stand up Kill Bill and Kaui in a non-production environment, either from the Docker images or as a WAR deployed to Tomcat on JDK 11 with a supported database such as MySQL or MariaDB, and install the payment plugin for your gateway. The team maps each Chargebee plan and add-on to a Kill Bill catalog, then imports a small set of representative accounts and subscriptions through the REST APIs. The output is a catalog review signed by finance and a pilot where imported subscriptions show the same recurring amounts and next billing dates as Chargebee.

  3. Run Kill Bill invoices in parallel with Chargebee

    For at least one full billing cycle, Chargebee continues to bill live customers while Kill Bill imports the same subscriptions and generates its own invoices in a shadow mode, with no charges sent from it. Finance compares invoice totals, taxes, proration and credits line by line, and the team tests upgrades, downgrades and usage events against both systems. The output is a documented variance log where every difference has a cause and an owner, and a go or no-go decision recorded by the billing owner.

  4. Cut over at a defined billing-date boundary

    The team picks a billing-date boundary and freezes changes in Chargebee at that point, then imports the final subscription state and any open balances into Kill Bill and switches the gateway integration to Kill Bill for new charges. Chargebee stops generating renewals for the migrated subscriptions on that same date, so each customer is billed by exactly one system per cycle. The output is a cutover record showing the boundary date, the reconciled subscription counts on both sides, and a check that no customer received two charges for the same period.

  5. Decommission Chargebee after the final invoice cycle

    Once the last invoice cycle billed from Chargebee has closed and its payments and refunds have settled, finance exports the historical records needed for accounting and retention, and the team confirms the export against the retention policy your auditors expect. Engineering then revokes Chargebee API keys and webhooks and cancels the subscription in line with your contract terms. The output is a closure memo that lists the archived data, its location, and the date Chargebee access ended, which should be confirmed with Chargebee's terms for data export.

How the migration changes with catalog size and starting point

A small catalog with a few plans, a handful of add-ons and one payment gateway is the simplest starting point. Most of the effort goes into confirming that each Chargebee plan maps to a Kill Bill product and plan definition, and that the gateway token references carry over intact through the payment plugin. Because the account count is manageable, you can import and reconcile in a few controlled batches and run a short parallel period on a small set of test accounts before the full cutover.

  • Catalog mapping: Write each Chargebee plan, price point and add-on down in one reference sheet, then build the matching Kill Bill catalog once and review it with finance.
  • Import order: Load accounts, then subscriptions, then invoice history, and check totals after each batch.
  • Gateway tokens: Confirm with your gateway that the stored credentials remain valid for the Kill Bill payment plugin before any live charge runs.
  • Parallel run: Keep the Chargebee account live for a full billing cycle so you can compare invoices side by side.
  • Cutover: Disable Chargebee renewals only after Kill Bill has generated and collected the first invoice for every migrated subscription.

Confirm with your gateway and your Kill Bill plugin provider which token formats and card update events they support before you schedule the cutover date.

What drives migration cost and duration, and how to keep each down

This table lists the main factors that change the effort and recurring cost of moving from Chargebee to Kill Bill, with who is paid for each piece of work. Read each row as a question to put to your implementation partner and to your internal team before accepting a written quote.

DriverWhy it changes cost or effortHow to keep it down
Catalog complexityEach Chargebee plan, add-on, coupon and price point must be rebuilt as a Kill Bill catalog, and tiered or multi-currency pricing adds mapping and test cases.Retire unused plans before export, and ask the quote to list catalog objects as a countable scope item.
Number of usage metricsUsage-based billing needs metric definitions, rating rules and reconciliation against historical usage records, which is often the largest unknown in scope.Start with the metrics that bill most revenue, and agree in writing how usage history is handled.
Gateway count and token reconnectionCard tokens stay with the gateway, so each gateway needs a Kill Bill payment plugin, credentials, and tests that confirm existing tokens charge correctly.Limit the number of gateways in scope, and confirm with each gateway how tokens can be referenced from a new integration before build starts.
Data volume and import methodAccount, subscription and invoice history is imported through Kill Bill's REST APIs, so volume drives import runtime, retries and validation effort.Import only the history you need for active balances and audits, and budget validation time for reconciliation runs.
Reconciliation rulesInvoices, credits, proration and tax must match Chargebee's output or finance must explain each variance, and rules are written by people who know the business.Document the rules before build, and ask for a reconciliation report format as a deliverable.
Custom tax or fraud integrationsTax and fraud providers are connected as plugins deployed alongside the server, so each custom integration is extra build, test and maintenance work.Keep existing third-party providers where possible, and list each plugin as a separate line item.
Team skills in Java and TomcatKill Bill runs as a WAR file in Tomcat on JDK 11 or later per its installation guide, so teams without Java operations skills usually pay a partner or hire for that work.Confirm which skills your team already has, and ask whether the partner will transfer runbooks and train operators.
Parallel run lengthRunning Chargebee and Kill Bill side by side through a full billing cycle keeps two systems, two sets of invoices and reconciliation work running at once.Plan the parallel period around your actual billing calendar, and ask the quote to state the cycle it assumes.
Recurring operationsHosting, the database (MySQL or PostgreSQL per the getting started guide), upgrades, backups and support continue after cutover, and Kill Bill does not include support or an SLA under its Apache 2.0 license.Ask for a separate retainer quote for upgrades and support, and compare it with the cost of Chargebee's plan you are leaving.

What usually goes wrong and how to prevent it

Most failed billing migrations fail at the seams: the cutover date, the gateway connection, and the catalog mapping. The cards below cover the risks that recur when moving from Chargebee to Kill Bill, and the check to run before each one can reach customers.

Double billing during cutover

Chargebee and Kill Bill both hold active subscriptions for the same customers if the switch is not sequenced. The result is a customer charged twice for one period. Freeze Chargebee renewals for a named date, import subscriptions with their next billing dates, and confirm in Kill Bill that only one system schedules each invoice. Run a reconciliation of open invoices by customer before and after the switch. Keep a rollback owner and a written decision point.

Mismatched proration and billing dates

Chargebee and Kill Bill can compute proration and billing cycle anchors differently, so a mid-cycle upgrade may produce a different amount than customers were promised. Test a set of representative subscriptions (monthly, annual, trialing, mid-cycle upgrade, cancellation with refund) in a staging tenant and compare the invoice line items with Chargebee's output. Document any policy differences and decide with finance which behavior to keep before go-live.

Gateway tokens not reconnected

Card tokens stay with the gateway, not with Chargebee, so Kill Bill must connect to the same gateway account through its payment plugin. A plugin configured with the wrong account, or a token format the plugin cannot read, causes failed renewals that look like card declines. Before cutover, run a test charge against a sample of stored payment methods per gateway, and confirm the plugin config keys, webhook endpoints and the gateway account ID match production.

Add-on and coupon mapping gaps

Chargebee add-ons, coupons and plan-level discounts do not map automatically to a Kill Bill catalog. An add-on that is dropped silently removes recurring revenue, and a coupon that is not rebuilt bills full price. Build a mapping sheet that lists every Chargebee plan, add-on, coupon and price point, and assign each one to a Kill Bill product, add-on or discount. Reconcile the monthly recurring total per plan between the two systems before go-live.

Unmapped usage metrics

Usage-based charges depend on metrics that must be defined in the Kill Bill catalog and fed with the same event counts Chargebee used. Missing metrics or different aggregation windows, such as calendar month versus billing period, shift invoices. Export usage history from the source, define each metric with its unit and aggregation, and replay a closed billing period to check that the totals match before any live usage flows into Kill Bill.

No vendor support or SLA

Kill Bill is open source under the Apache License 2.0 and ships with no support or SLA. When a billing run fails at 2 a.m., your team or a contracted partner must diagnose it, so the fix depends on who holds the runbook. Agree in writing who answers incidents, what the escalation path is, and which upgrade and patch process applies. Keep a copy of the release notes for the version in use and plan upgrades on a fixed schedule.

Under-tested Tomcat and database operations

Kill Bill runs as a WAR in Tomcat with JDK 11 and a relational database, and the core team tests against MySQL, MariaDB 10 and PostgreSQL 12. Undersized connection pools, missing backups, or untested restores can stop billing jobs or lose invoices. Load test the billing run at your real customer count, rehearse a database restore, and monitor JVM heap, pool saturation and the job queue. Confirm the database version against the documented test matrix.

Questions buyers ask before moving from Chargebee to Kill Bill

What does a move from Chargebee to Kill Bill cost?

The cost is the sum of separate components: the people who plan and build the migration, the servers and database that run Kill Bill and Kaui, the engineering to map your catalog and connect your gateway plugin, testing, and the ongoing staff who operate billing. Kill Bill itself is Apache 2.0 licensed, so there is no license fee for the core, but the Kill Bill project states that it includes no support or SLA. Ask any quote to split one-time costs (migration, plugin work, parallel running) from recurring costs (hosting, upgrades, on-call support, retainers). Costs rise with the number of plans, add-ons, custom usage metrics and integrations such as tax or fraud providers. Gateway fees continue either way.

How long does a Chargebee to Kill Bill migration take?

The timeline depends on the complexity of your catalog, the volume of accounts and subscriptions, the number of gateway and tax integrations, and how many billing cycles you want to run in parallel before cutover. Kill Bill's documentation describes a Tomcat-hosted server with REST APIs and plugins deployed as JARs, so the work is mostly in data mapping, plugin configuration and testing rather than in the server itself. No duration is set by the product. Ask any implementation partner for a timeline built from a written scope, and confirm the Java runtime and database versions you will run, because the Kill Bill getting started guide requires JDK 11 for the Tomcat installation.

What does our team need to provide for the migration?

Your team needs to provide a current export of Chargebee data, a clear inventory of plans, add-ons, coupons and usage rules, and access to the gateway account that holds your card tokens. You also need named owners for finance reconciliation, a Java and database operations owner, and someone who can approve the cutover date. Engineers should be ready to build or review integrations for webhooks, tax and fraud providers, and any internal systems that read invoices. Confirm with your accountants which invoice and revenue records must be preserved, since those rules shape the import design more than the software does.

Can we migrate to Kill Bill without an implementation partner?

Yes, if your team has Java, database and payments engineering skills and enough time to test thoroughly. Kill Bill is open source, its core is maintained by The Billing Project, LLC, and its documentation covers the REST APIs, plugins and Docker setup. The main risks for an in-house team are the data mapping, the gateway plugin configuration and the cutover controls, which are easy to underestimate. Many organizations bring in outside help for a fixed-scope piece, such as the catalog mapping, the plugin integration or the parallel run, while keeping operations in-house. DeployOpen plans, implements and supports self-hosted platforms in your own infrastructure under a written scope, with ongoing support available as a retainer.

Can card data move from Chargebee to Kill Bill?

Card data normally stays with the payment gateway that issued the tokens, and the move is about reconnecting those tokens rather than copying card numbers. Kill Bill connects to gateways such as Stripe, Braintree and PayPal through payment plugins, so the practical path is to keep the same gateway account and configure the Kill Bill plugin to use the existing payment method references. Confirm with your gateway whether those references can be used by a different billing system, what their migration or token portability process requires, and how the change affects your PCI DSS scope. Do not assume that an export from Chargebee contains usable card credentials.

How do we run Chargebee and Kill Bill safely during cutover?

The safe approach is to define one system of record for each customer at each point in time and to prevent both systems from charging the same subscription. Typical controls include freezing Chargebee plan changes before the import snapshot, importing subscriptions with their next billing dates, disabling automatic collection in one system before enabling it in the other, and reconciling invoices and payment results daily during a parallel period. Run at least one full billing cycle in shadow mode, comparing expected invoices and charges. Write the rollback steps before cutover, including how to re-enable Chargebee if reconciliation fails.

Does Kill Bill come with vendor support?

The Kill Bill project is open source under the Apache License 2.0, and its README states that it includes no support or SLA. Support must come from a source you choose: an internal team with Kill Bill expertise, a commercial partner, or a retainer for upgrades, monitoring and incident response. Ask any provider to define in writing what is covered, response expectations, upgrade handling for the Kill Bill and plugin versions you run, and who holds on-call responsibility. Confirm whether a support arrangement covers your database and Tomcat layers as well as the billing application.

What does Chargebee export and how do we get it into Kill Bill?

Chargebee lets you export data entity by entity, so the import plan should start from what those exports contain and what they omit. Map each Chargebee plan and add-on to a Kill Bill catalog entry, then import accounts, subscriptions and invoice history through Kill Bill's REST APIs, validating each batch against source totals. Keep an audit log of every imported record and its identifiers. Check the exports available from your Chargebee plan and their retention period in Chargebee's own documentation, and confirm with your finance team which historical invoices must be imported as records and which can be summarized.

How DeployOpen scopes and runs a Kill Bill migration

DeployOpen plans, implements, integrates, hardens, backs up, upgrades, documents and supports self-hosted platforms inside the client's own infrastructure. For a Chargebee to Kill Bill move, that means the Kill Bill server, the Kaui back office, the database, the payment gateway plugin and the cutover runbook all run in your cloud account, data center or air-gapped network, under your control. Most engagements are fixed-scope, so the catalog mapping, the account and subscription import, the gateway plugin work, the parallel-run period and the cutover criteria are agreed in writing before work starts. Scope documents for this kind of work typically name the Chargebee export files in use, the Kill Bill version and JDK it will run on, the target database engine, and who signs off each stage.

Ask for the written scope to list each deliverable and what evidence it produces: a catalog reconciliation showing every Chargebee plan and add-on mapped to a Kill Bill product and plan, an import log for accounts and subscriptions, test results from the payment plugin against your gateway sandbox, and a signed cutover checklist. Also confirm who owns the Tomcat hosting, the database backups, and the restore tests after go-live, since those responsibilities determine what the quote must cover. Note that Kill Bill itself carries no support or SLA from its project, so the operating model for upgrades and incidents must be defined in the scope rather than assumed.

Ongoing support, upgrades and continuous testing are available as retainers, which suits a Kill Bill estate that will need patching, plugin updates and periodic restore drills after cutover. DeployOpen does not publish a price list, and it does not estimate fees for this work. A quote follows from the written scope, so the most useful preparation is an inventory of your Chargebee plans, add-ons, active subscriptions, gateway tokens and integrations, which lets the scope reflect your actual complexity. DeployOpen prepares systems, controls and evidence for compliance assessments, but independent auditors and certification bodies issue any audit report or attestation.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.