Chargebee to BigQuery: How to Move Your Data

Move Chargebee into BigQuery with Airbyte. Why the Product Catalog version silently skips streams, the default that catches older sites, and empty columns.

Summarize with AI:

Moving Chargebee into BigQuery puts subscription billing next to everything that explains it. Chargebee knows what was invoiced, renewed and churned, and nothing about what those customers cost to acquire, how much support they needed, or whether they used the product they are paying for.

One configuration field decides which streams you get, and its default is wrong for a large group of accounts. Choosing it badly does not fail the sync, it silently skips the streams your reporting depends on, which is the kind of thing worth knowing before rather than after.

Chargebee to BigQuery at a glance:

CapabilitySupportedWhat it means for this pipeline
Product Catalog versionRequired settingIt decides which streams exist, and defaults to 2.0
Version mismatchSkipped, not failedThe stream is logged and passed over quietly
Shared streamsBoth versionsSubscription and Coupon carry columns you cannot use
Dataset locationImmutableMatch it to your product and marketing datasets
CredentialsPer siteEach site, including test, has its own API keys

Why move data from Chargebee to BigQuery?

Two situations account for most of these pipelines.

The first is subscription metrics your finance team will stand behind. Recurring revenue, expansion, contraction and churn are definitions people argue about, and settling them once in a warehouse beats three teams each computing retention from a different export.

The second is joining billing to acquisition and behaviour, which on BigQuery is unusually convenient because your advertising data and product analytics are frequently there already. Whether a channel brings customers who renew is a question that needs all three in one place.

What do you need before you start?

Three short items, and one of them is the whole article:

Your Product Catalog version, confirmed rather than assumed. Sites created before 5 May 2021 use Product Catalog 1.0 and sites created on or after it use 2.0. You can check in the Chargebee API documentation under the API Version section. The Chargebee source documentation covers the setup.

A read-only API key and your site name. Generated under Settings, Configure Chargebee and then API Keys. The site name is the subdomain of your account URL, so an account at acme.chargebee.com has a site name of acme rather than the full address.

A deliberate start date. Supplied as a UTC date and time, with data before it not replicated. Finance questions reach further back than product ones, so ask before choosing rather than defaulting to something recent.

A BigQuery service account and a decided dataset location. With the BigQuery User and BigQuery Data Editor roles. Queries can only reference datasets in the same physical location and that cannot be changed after creation, so match it to your advertising and product datasets.

Note that each Chargebee site has its own independent set of API keys, including the dedicated test site, so a key copied from your sandbox will not work against production.

How do you build a Chargebee to BigQuery pipeline in Airbyte?

Step 1: Establish your catalog version

Check which Product Catalog your site uses before touching the connector. This takes two minutes and prevents the most confusing failure available here, where everything appears to work and the streams you needed are quietly absent from the destination.

Step 2: Configure the Chargebee source

Click Sources in the left navigation, then New Source, and select Chargebee, following adding a source. Enter the site name, API key and start date, then set Product Catalog to your version rather than accepting the default of 2.0.

Step 3: Configure the BigQuery destination

Click Destinations, then New Destination, and select BigQuery, following adding a destination. Supply the project, dataset and service account key. Batched standard inserts is the default and is ample, because billing data is small by warehouse standards.

Step 4: Create the connection and check the logs

Click Connections, then New connection, select your streams and an incremental sync mode. Daily suits billing data. After the first run, read the sync log rather than only the success indicator, because skipped streams are reported there rather than as a failure.

Then reconcile a closed month against Chargebee's own reporting before anyone builds on it, because a discrepancy found now is a configuration question while one found later is a credibility problem.

Why does the Product Catalog version decide everything?

Because Chargebee restructured how it models what you sell, and the two generations expose different objects. Product Catalog 1.0 sites have Plans and Addons. Product Catalog 2.0 sites have Item Families, Items, Item Prices, Differential Prices, Price Tiers, Subscription Items and Usage.

The connector defaults to 2.0, which is right for anything created since May 2021 and wrong for every older site. And a mismatch does not raise an error: the connector skips the incompatible stream and logs that it is available only for the other version, so the sync succeeds with your plans table missing.

That is a quiet failure in exactly the place it hurts, because an established business on Product Catalog 1.0 is precisely the kind of account with years of billing history worth analysing. Confirm the version, then check your tables exist after the first sync rather than trusting the green tick.

Why are some columns permanently empty?

Because a few streams serve both catalog generations at once. Subscription and Coupon include fields belonging to Product Catalog 1.0 and fields belonging to 2.0, and only the set matching your site contains anything. The rest arrive as columns that will never hold a value.

That is harmless until somebody builds on one. An analyst exploring the subscriptions table sees a plausible-looking column, writes a model against it, and produces a report that is empty for reasons nothing in the schema explains. The column exists, it is simply from the other version of the product.

So expose views rather than the raw tables, selecting only the columns your catalog version populates. On BigQuery that also helps with cost, since a view narrowing the columns reduces what a query scans and therefore what it bills.

Frequently asked questions

How do I find my Product Catalog version?

Check the Chargebee API documentation under the API Version section. Sites created before 5 May 2021 use Product Catalog 1.0, and sites created on or after it use 2.0.

A stream I selected is missing from BigQuery. Why?

It is probably incompatible with your Product Catalog version. The connector skips those streams and logs a message rather than failing, so check the sync log and your version setting.

Why does the subscriptions table have empty columns?

Subscription and Coupon carry fields from both catalog versions, and only the ones matching your site contain data. Expose views selecting the columns your version populates.

Can I change the dataset location later?

No. It is fixed at creation, and queries can only reference datasets in the same physical location, so match it to the advertising and product data you intend to join.

Can I do this without writing code?

Yes. The setup above is entirely UI-driven. You will want BigQuery views hiding the columns your catalog version does not populate and defining your revenue measures.

Get your Chargebee data into BigQuery

Confirm your Product Catalog version before anything else, because the default is wrong for older sites and a mismatch skips streams quietly. Create the dataset in the right location since that is permanent, read the sync log after the first run, and expose views hiding the columns your version does not populate.

Airbyte's connector catalog includes 700+ pre-built connectors, so billing data can sit beside the acquisition and product sources that explain it. For the same source in another warehouse, see Chargebee to Snowflake, and for payment data alongside it, Stripe to BigQuery.

Start syncing now →

Integrate with 700+ apps using Airbyte

Move data from 700+ sources into warehouses, lakes, and beyond. Set up pipelines in minutes with pre-built connectors and the Connector Builder.