Integration
Chargebee + Bastle
What syncs from Chargebee, what it makes possible, and how to connect it.
This connector works and can be connected today, with edge cases still being closed. Check the first month against the source before you rely on it.
What does the Chargebee integration do?
What syncs
Bastle reads the following from Chargebee and normalises it into the same entities every other source produces. Ingestion is read-only: nothing is created, changed or cancelled upstream.
- Item prices → plans. Plan and add-on item types are imported; charge-type items are never treated as a plan.
- Customers and subscriptions, including add-ons and their quantities.
- Invoices and transactions → charges, and credit notes → refunds. Chargebee's monetary fields are already integer minor units, so nothing is converted through floating point.
- Trial periods, mapped from Chargebee's trial period and unit onto Bastle's trial fields.
- Dunning state from payment failure and success events, driving the delinquency flag.
- Cadence: webhook-driven for changes; historical import run manually today.
Once connected
What Chargebee data unlocks
Connecting a source is not the point; what you can answer afterwards is. These are the questions this data makes answerable.
Product Catalog 2.0 modelled properly
Item prices, not legacy plans, are the unit of import, so a catalogue built the modern Chargebee way maps onto Bastle plans without a translation layer.
Business time preserved
Bastle keeps Chargebee's own occurred-at timestamps as the business time of each event, separate from when Bastle received it, so a late webhook does not move revenue into the wrong month.
One view across billing systems
A workspace can hold more than one source, so a Chargebee book and a Stripe book roll into the same MRR without a spreadsheet in between.
Setup
Connecting Chargebee
The whole flow, start to first chart. No implementation call and no data engineer.
- Create a full-access API key in ChargebeeSettings → Configure Chargebee → API Keys. Bastle uses it as the basic-auth username against {site}.chargebee.com/api/v2.
- Connect the site in Settings → IntegrationsProvide the site subdomain and the API key. Both are stored server-side.
- Add a webhook in ChargebeePoint it at /api/webhooks/chargebee and set a basic-auth username and password on the endpoint, then enter the same pair in Bastle. Requests that do not present them are rejected.
- Ask us to run the historical importBackfill is triggered manually during onboarding while the scheduled runner is being wired.
Why item prices rather than plans
Chargebee's Product Catalog 2.0 replaced plans with items and item prices, and the two models coexist in the wild. Bastle imports item prices, mapping period and period unit onto an interval and interval count and reading the price as integer cents. Charge-type items are deliberately never treated as recurring: a one-off setup fee that gets modelled as a plan is one of the more common ways an MRR figure quietly inflates.
Currency and time handling
Chargebee returns currency codes in uppercase ISO 4217 and timestamps as unix seconds; Bastle lowercases the former and converts the latter to UTC ISO strings. Every monetary field stays an integer throughout — there is no point in the pipeline where cents pass through a float.
What is not covered
Bastle does not read Chargebee's quote, order or entitlement objects, and it does not act on Chargebee's own dunning configuration. Failed payments arrive as events and feed Bastle's delinquency window and Recover campaigns, but Chargebee's retry schedule remains Chargebee's business.
What "beta" means here
The connector is written and the inbound webhook route verifies signatures and writes normalised rows, so a connected account keeps up with changes as they happen. What is not self-serve yet is the historical backfill: the code that walks your provider's API from the beginning exists in the connector, but the scheduled runner that triggers it is still a stub, so first-time imports are run by hand with us. Expect to email someone once during setup, and expect that to stop being true.
Bastle is free while in beta, connectors included. There is no tier that unlocks a provider.
Related
Other sources
Companies billing through Chargebee usually have at least one of these in the stack too.
- StripeBetaThe Stripe integration turns a Stripe account into Bastle's subscription data model: prices become plans, subscriptions carry their add-ons and discounts, and charges carry the Stripe fee from the balance transaction. Ongoing changes arrive over a signature-verified webhook endpoint within seconds of happening in Stripe, so MRR, churn and failed-payment state track the billing account rather than a nightly export.
- RecurlyBetaThe Recurly integration reads a Recurly site through the v3 API at version v2021-02-25, importing plans, accounts, subscriptions and transactions in that order so that references resolve as they are written. Webhook notifications are verified by HMAC signature with a five-minute replay tolerance and optional endpoint basic auth, and both US and EU data regions are supported.
- PaddleBetaThe Paddle integration reads Paddle Billing — the current platform, not Paddle Classic — importing prices as plans plus customers, subscriptions, transactions and adjustments. Because Paddle is a merchant of record, its own reported fee totals are treated as authoritative, so net revenue reflects what Paddle actually remitted rather than an estimate.
- Universal APILiveBastle's write API accepts subscription data from any billing system, including one you built yourself. A single batched import endpoint upserts plans, customers, subscriptions, charges and refunds against your own external ids, and a read API returns the same metrics the dashboard renders. It is available today, self-serve, with scoped API keys.
Chargebee and Bastle: common questions
Does Bastle support Chargebee's legacy plans model?
How are Chargebee webhooks authenticated?
Can I run Chargebee and another billing system at once?
Does Bastle write anything back to my billing provider?
Connect Chargebee and see your own history.
Bastle backfills what Chargebee will serve, then keeps current over webhooks — usually a couple of minutes before the first real chart. Free while in beta, no card required.