Skip to main content
Connectors

Paddle connector

Set up the Paddle connector in Kaivo: authentication, configuration, the 13 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your Paddle data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your payment and finance data instead of moving it.

What is the Paddle connector

Sync your Paddle billing data into BigQuery with Kaivo to analyse subscriptions, transactions, and revenue.

CategoryFinance & Payments, E-commerce
AuthenticationAPI key
SetupSelf-service

Getting started with the Paddle connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Paddle account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating Paddle

Authenticate with your API Key.

FieldDescription
API Key

Your Paddle API key. Navigate to Paddle > Developer tools > Authentication > Generate API key.

Configuring the Paddle connector

When you set up the connector, you provide:

FieldDescription
Environment

The Paddle API environment. Use Live for production and Sandbox for testing.

Start Date

Any data before this date will not be fetched.

Tables and columns synced from Paddle

Kaivo syncs 13 tables from Paddle into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
actionSTRING
created_atSTRING
currency_codeSTRING
customer_idSTRING
idSTRING
payout_totals__chargeback_fee__amountSTRING
payout_totals__chargeback_fee__original__amountSTRING
payout_totals__chargeback_fee__original__currency_codeSTRING
payout_totals__currency_codeSTRING
payout_totals__earningsSTRING
payout_totals__feeSTRING
payout_totals__subtotalSTRING
payout_totals__taxSTRING
payout_totals__totalSTRING
reasonSTRING
statusSTRING
subscription_idSTRING
totals__currency_codeSTRING
totals__earningsSTRING
totals__feeSTRING
totals__subtotalSTRING
totals__taxSTRING
totals__totalSTRING
transaction_idSTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: adjustments__items

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
amountSTRING
idSTRING
item_idSTRING
totals__subtotalSTRING
totals__taxSTRING
totals__totalSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: adjustments__tax_rates_used

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
tax_rateSTRING
totals__subtotalSTRING
totals__taxSTRING
totals__totalSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
company_numberSTRING
created_atSTRING
customer_idSTRING
idSTRING
nameSTRING
statusSTRING
tax_identifierSTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: businesses__contacts

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
emailSTRING
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
descriptionSTRING
citySTRING
country_codeSTRING
created_atSTRING
customer_idSTRING
first_lineSTRING
idSTRING
postal_codeSTRING
regionSTRING
statusSTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
created_atSTRING
emailSTRING
idSTRING
localeSTRING
marketing_consentBOOL
nameSTRING
statusSTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
descriptionSTRING
amountSTRING
codeSTRING
created_atSTRING
enabled_for_checkoutBOOL
expires_atSTRING
idSTRING
maximum_recurring_intervalsFLOAT64
recurBOOL
statusSTRING
times_usedFLOAT64
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
descriptionSTRING
groupSTRING
nameSTRING
uuidSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: event_types__available_versions

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
data__typeSTRING
data__descriptionSTRING
data__amountSTRING
data__billing_cycle__frequencyFLOAT64
data__billing_cycle__intervalSTRING
data__citySTRING
data__codeSTRING
data__company_numberSTRING
data__country_codeSTRING
data__created_atSTRING
data__customer_idSTRING
data__emailSTRING
data__enabled_for_checkoutBOOL
data__expires_atSTRING
data__first_lineSTRING
data__idSTRING
data__image_urlSTRING
data__localeSTRING
data__marketing_consentBOOL
data__maximum_recurring_intervalsFLOAT64
data__nameSTRING
data__postal_codeSTRING
data__product_idSTRING
data__quantity__maximumFLOAT64
data__quantity__minimumFLOAT64
data__recurBOOL
data__regionSTRING
data__statusSTRING
data__tax_categorySTRING
data__tax_identifierSTRING
data__tax_modeSTRING
data__trial_period__frequencyFLOAT64
data__trial_period__intervalSTRING
data__trial_period__requires_payment_methodBOOL
data__unit_price__amountSTRING
data__unit_price__currency_codeSTRING
data__updated_atSTRING
event_idSTRING
event_typeSTRING
occurred_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: events__data__contacts

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
emailSTRING
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: events__data__restrict_to

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: events__data__unit_price_overrides

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
uuidSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: ip_addresses__ipv4_cidrs

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
descriptionSTRING
billing_cycle__frequencyFLOAT64
billing_cycle__intervalSTRING
created_atSTRING
idSTRING
nameSTRING
product_idSTRING
quantity__maximumFLOAT64
quantity__minimumFLOAT64
statusSTRING
tax_modeSTRING
trial_period__frequencyFLOAT64
trial_period__intervalSTRING
unit_price__amountSTRING
unit_price__currency_codeSTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: prices__unit_price_overrides

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
descriptionSTRING
created_atSTRING
idSTRING
image_urlSTRING
nameSTRING
statusSTRING
tax_categorySTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRING
created_atSTRING
expires_atSTRING
idSTRING
statusSTRING
updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: reports__filters

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
nameSTRING
operatorSTRING
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRING
statusSTRING
customer_idSTRING
address_idSTRING
business_idSTRING
currency_codeSTRING
created_atSTRING
updated_atSTRING
started_atSTRING
first_billed_atSTRING
next_billed_atSTRING
paused_atSTRING
canceled_atSTRING
collection_modeSTRING
current_billing_period__starts_atSTRING
current_billing_period__ends_atSTRING
billing_cycle__frequencyFLOAT64
billing_cycle__intervalSTRING
management_urls__update_payment_methodSTRING
management_urls__cancelSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: subscriptions__items

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
statusSTRING
quantityFLOAT64
recurringBOOL
created_atSTRING
updated_atSTRING
previously_billed_atSTRING
next_billed_atSTRING
price__typeSTRING
price__descriptionSTRING
price__idSTRING
price__product_idSTRING
price__nameSTRING
price__tax_modeSTRING
price__billing_cycle__frequencyFLOAT64
price__billing_cycle__intervalSTRING
price__unit_price__amountSTRING
price__unit_price__currency_codeSTRING
price__statusSTRING
price__quantity__minimumFLOAT64
price__quantity__maximumFLOAT64
price__created_atSTRING
price__updated_atSTRING
product__typeSTRING
product__descriptionSTRING
product__idSTRING
product__nameSTRING
product__tax_categorySTRING
product__image_urlSTRING
product__statusSTRING
product__created_atSTRING
product__updated_atSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: subscriptions__items__price__unit_price_overrides

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRING
statusSTRING
customer_idSTRING
address_idSTRING
business_idSTRING
originSTRING
collection_modeSTRING
subscription_idSTRING
invoice_idSTRING
invoice_numberSTRING
currency_codeSTRING
discount_idSTRING
created_atSTRING
updated_atSTRING
billed_atSTRING
revised_atSTRING
checkout__urlSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: transactions__items

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
quantityFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: transactions__payments

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Paddle sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Paddle supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for Paddle?

It depends on how much history is in your Paddle account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when Paddle's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in Paddle, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in Paddle instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the Paddle connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Paddle data

Recurring revenue

Use subscriptions and transactions to track recurring revenue and churn over time.

Billing reporting

Join transactions with adjustments and discounts to reconcile revenue.

Customer view

Use customers and businesses to measure lifetime value.

Product analysis

Use products and prices to see what drives revenue.

Use Paddle data in your AI and BI tools

Once Paddle data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with Paddle data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for Paddle connector pricing and plan details.

Was this helpful?

Still need help? Share an idea