Paddle
Renta exports six Paddle objects to your data warehouse: customers, products, prices, subscriptions, transactions with their payments and line items, and adjustments that cover refunds, credits, and chargebacks.
You choose the fields of each object yourself. Every run re-reads the full list of records from Paddle, so the tables follow the current state of your account: new records, status changes, and edits arrive with the next run.
Authentication
Renta connects to Paddle with an API key. You create the key in the Paddle Dashboard under Developer tools > Authentication and paste it into the connection form.
When creating the key, grant it read permission for the entities you plan to export. Renta verifies the key by reading the product list, so a key without read permissions fails when you save the connection.
Renta reads the live environment of your Paddle account. Sandbox accounts use separate API keys and are not supported.
Connect Paddle source
- Navigate to the Connections > Catalog section in the left sidebar.
- Open the Finance category and click the Paddle card.

- Source name.
A display name for this connection. It is used exclusively in the Renta interface. - API key.
Paste the API key from your Paddle Dashboard.

- Check the Source name.
- Click Save.
Renta verifies the key with Paddle before saving the connection, so an invalid key, or a key without read permissions, fails on this step.

The new source appears in the Sources list with the Active status. You can now use it in pipelines.

Create a Paddle pipeline
In the left sidebar, click New pipeline. On the Source step, select Paddle in the list and click Next step.

Choose the Paddle connection you created earlier and click Next step. The card shows the name of the connection and the date it was added.

On the Destination step, select your destination (for example, Google BigQuery) and click Next step.

Choose the destination connection you want to load data into and click Next step. The card shows the dataset and project the data will land in.

Pipeline configuration
On the final step, choose the report type, pick its fields, name the table, and set the schedule.
Report type
Select which Paddle object the pipeline exports. One pipeline loads one report type.

| Report type | Description |
|---|---|
| Customers | Customers of your account: name, email, status, locale, marketing consent, and your custom data. |
| Products | The product catalog: name, description, type, status, tax category, and image URL. |
| Prices | Prices attached to products: unit amount and currency, billing cycle, quantity limits, trial period, tax mode, and country-specific price overrides. |
| Adjustments | Refunds, credits, and chargebacks: action, status, reason, totals in the transaction and payout currencies, and the per-item breakdown. |
| Subscriptions | Subscriptions with their status, billing cycle, the start, first billing, pause, and cancellation dates, the subscription items, the discount, and the scheduled change. |
| Transactions | The billing history of the account: status, origin, invoice number, totals before and after adjustments in the transaction and payout currencies, line items, tax rates, and payment attempts. |
Parameters
Select the Paddle fields to include in the destination table.

| Name | API name | Description |
|---|---|---|
ID text | id | Unique identifier of the customer. |
Status text | status | Current status of the customer. For example: active, archived. |
Name text | name | Full name of the customer. May be null if not provided. |
Email text | email | Email address of the customer. |
Marketing Consent bool | marketing_consent | Whether the customer has given consent to receive marketing communications. |
Locale text | locale | Locale code for the customer, used for communication language preferences. |
Created At datetime | created_at | Timestamp when the customer was created in Paddle. |
Updated At datetime | updated_at | Timestamp when the customer was last updated in Paddle. |
Created Date At date | created_date_at | Date portion of the created_at timestamp. Used for partitioning. |
Custom Data json | custom_data | User-defined key-value metadata attached to the customer. Structure varies per customer. |
Import Meta json | import_meta | Metadata about the origin of the customer if imported from another platform. Contains external_id and imported_from when present. |
| Name | API name | Description |
|---|---|---|
ID text | id | Unique identifier of the product. |
Status text | status | Current status of the product. For example: active, archived. |
Type text | type | Type of the product. For example: standard, custom. |
Name text | name | Name of the product as displayed to customers. |
Description text | description | Short description of the product. |
Tax Category text | tax_category | Tax category for the product, used to determine applicable tax rates. |
Image URL text | image_url | URL of the product image. May be null if no image is set. |
Created At datetime | created_at | Timestamp when the product was created in Paddle. |
Updated At datetime | updated_at | Timestamp when the product was last updated in Paddle. |
Created Date At date | created_date_at | Date portion of the created_at timestamp. Used for partitioning. |
Custom Data json | custom_data | User-defined key-value metadata attached to the product. Structure varies per product. |
Import Meta json | import_meta | Metadata about the origin of the product if imported from another platform. Contains external_id and imported_from when present. |
| Name | API name | Description |
|---|---|---|
ID text | id | Unique identifier of the price. |
Product ID text | product_id | Identifier of the product this price belongs to. |
Status text | status | Current status of the price. For example: active, archived. |
Type text | type | Type of the price. For example: standard, custom. |
Name text | name | Name of the price. May be null if not explicitly set. |
Description text | description | Short description of the price. |
Tax Mode text | tax_mode | How tax is handled for this price. For example: external, internal, account_setting. |
Billing Cycle Interval text | billing_cycle_interval | Unit of time for the billing cycle. For example: month, year, week, day. |
Billing Cycle Frequency int | billing_cycle_frequency | Number of billing cycle intervals between charges. |
Unit Price Amount text | unit_price_amount | Price amount in the smallest currency unit (e.g., cents). Stored as string by Paddle. |
Unit Price Currency Code text | unit_price_currency_code | Three-letter ISO 4217 currency code for the unit price. |
Quantity Minimum int | quantity_minimum | Minimum quantity that can be purchased at this price. |
Quantity Maximum int | quantity_maximum | Maximum quantity that can be purchased at this price. |
Import Meta External ID text | import_meta_external_id | External identifier from the original platform if the price was imported. |
Import Meta Imported From text | import_meta_imported_from | Name of the platform the price was imported from. |
Created At datetime | created_at | Timestamp when the price was created in Paddle. |
Updated At datetime | updated_at | Timestamp when the price was last updated in Paddle. |
Created Date At date | created_date_at | Date portion of the created_at timestamp. Used for partitioning. |
Custom Data json | custom_data | User-defined key-value metadata attached to the price. Structure varies per price. |
Trial Period json | trial_period | Trial period configuration for the price. Nullable and variable structure. |
Unit Price Overrides json | unit_price_overrides | Array of price overrides for specific countries or regions. Variable structure. |
| Name | API name | Description |
|---|---|---|
ID text | id | Unique identifier of the adjustment. |
Transaction ID text | transaction_id | Identifier of the transaction that this adjustment is for. |
Subscription ID text | subscription_id | Identifier of the subscription related to this adjustment. |
Customer ID text | customer_id | Identifier of the customer related to this adjustment. |
Action text | action | Adjustment action. Possible values: refund, credit, chargeback. |
Type text | type | Adjustment type. Possible values: full, partial. |
Status text | status | Status of the adjustment. Possible values: pending_approval, approved, rejected, reversed. |
Reason text | reason | Reason for the adjustment. |
Currency Code text | currency_code | Three-letter ISO 4217 currency code of the adjustment. |
Totals Currency Code text | totals_currency_code | Three-letter ISO 4217 currency code of the totals. |
Totals Subtotal text | totals_subtotal | Subtotal before tax in the lowest denomination of the currency. |
Totals Tax text | totals_tax | Total tax on the subtotal in the lowest denomination of the currency. |
Totals Total text | totals_total | Total after tax in the lowest denomination of the currency. |
Totals Fee text | totals_fee | Paddle fee for the adjustment in the lowest denomination of the currency. |
Totals Earnings text | totals_earnings | Earnings in the lowest denomination of the currency. May be negative for refunds. |
Totals Retained Fee text | totals_retained_fee | Retained fee for the adjustment in the lowest denomination of the currency. |
Payout Totals Currency Code text | payout_totals_currency_code | Three-letter ISO 4217 currency code used for payout. |
Payout Totals Subtotal text | payout_totals_subtotal | Payout subtotal before tax in the lowest denomination of the payout currency. |
Payout Totals Tax text | payout_totals_tax | Payout tax amount in the lowest denomination of the payout currency. |
Payout Totals Total text | payout_totals_total | Payout total after tax in the lowest denomination of the payout currency. |
Payout Totals Fee text | payout_totals_fee | Paddle fee for payout in the lowest denomination of the payout currency. |
Payout Totals Earnings text | payout_totals_earnings | Payout earnings in the lowest denomination of the payout currency. May be negative for refunds. |
Payout Totals Retained Fee text | payout_totals_retained_fee | Retained fee for payout in the lowest denomination of the payout currency. |
Created At datetime | created_at | Timestamp when the adjustment was created in RFC 3339 format. |
Updated At datetime | updated_at | Timestamp when the adjustment was last updated in RFC 3339 format. |
Created Date At date | created_date_at | Date portion of the created_at timestamp. Used for partitioning. |
Items structure | items | Array of adjustment items included in this adjustment. |
Tax Rates Used structure | tax_rates_used | Array of tax rates applied to this adjustment. |
| Name | API name | Description |
|---|---|---|
ID text | id | Unique identifier of the subscription. |
Status text | status | Current status of the subscription. For example: active, canceled, paused, past_due, trialing. |
Customer ID text | customer_id | Identifier of the customer who owns this subscription. |
Address ID text | address_id | Identifier of the address associated with this subscription. |
Business ID text | business_id | Identifier of the business associated with this subscription. May be null for individual customers. |
Currency Code text | currency_code | Three-letter ISO 4217 currency code for this subscription. |
Collection Mode text | collection_mode | How payment is collected. For example: automatic, manual. |
Created At datetime | created_at | Timestamp when the subscription was created in Paddle. |
Updated At datetime | updated_at | Timestamp when the subscription was last updated in Paddle. |
Created Date At date | created_date_at | Date portion of the created_at timestamp. Used for partitioning. |
Started At datetime | started_at | Timestamp when the subscription first became active. |
First Billed At datetime | first_billed_at | Timestamp when the subscription was first billed. |
Next Billed At datetime | next_billed_at | Timestamp when the next billing is scheduled. Null if subscription is canceled or paused. |
Paused At datetime | paused_at | Timestamp when the subscription was paused. Null if not paused. |
Canceled At datetime | canceled_at | Timestamp when the subscription was canceled. Null if not canceled. |
Current Billing Period Starts At datetime | current_billing_period_starts_at | Start of the current billing period. |
Current Billing Period Ends At datetime | current_billing_period_ends_at | End of the current billing period. |
Billing Cycle Frequency int | billing_cycle_frequency | Number of billing cycle intervals between charges. |
Billing Cycle Interval text | billing_cycle_interval | Unit of time for the billing cycle. For example: month, year, week, day. |
Items [Object] structure | items | Array of subscription line items. Each item contains status, quantity, recurring flag, dates, and nested price/product objects stored as json. |
Management URL Update Payment Method text | management_urls_update_payment_method | Customer portal URL to update payment method for this subscription. |
Management URL Cancel text | management_urls_cancel | Customer portal URL to cancel this subscription. |
Import Meta External ID text | import_meta_external_id | External identifier from the original platform if the subscription was imported. |
Import Meta Imported From text | import_meta_imported_from | Name of the platform the subscription was imported from. |
Custom Data json | custom_data | User-defined key-value metadata attached to the subscription. Structure varies per subscription. |
Billing Details json | billing_details | Billing details for manual collection mode subscriptions. Null when collection_mode is automatic. |
Scheduled Change json | scheduled_change | Scheduled change to the subscription, if any. Contains action and effective_at when present. |
Discount json | discount | Discount applied to the subscription. Contains discount id, starts_at, ends_at when present. |
Consent Requirements json | consent_requirements | Array of consent requirements for the subscription. Variable structure. |
| Name | API name | Description |
|---|---|---|
ID text | id | Unique identifier of the transaction. |
Customer ID text | customer_id | Identifier of the customer related to this transaction. |
Address ID text | address_id | Identifier of the customer address used for this transaction. |
Business ID text | business_id | Identifier of the business entity related to this transaction. May be null for individual customers. |
Subscription ID text | subscription_id | Identifier of the subscription this transaction belongs to. |
Invoice ID text | invoice_id | Identifier of the invoice issued for this transaction. Null if not yet invoiced. |
Discount ID text | discount_id | Identifier of the discount applied to this transaction. Null if no discount was applied. |
Status text | status | Current status of the transaction. For example: completed, past_due, canceled. |
Origin text | origin | How the transaction was created. For example: subscription_recurring, web, api. |
Collection Mode text | collection_mode | How payment is collected for this transaction. For example: automatic, manual. |
Invoice Number text | invoice_number | Human-readable invoice number for this transaction. Null if not yet invoiced. |
Currency Code text | currency_code | Three-letter ISO 4217 currency code for the transaction. |
Created At datetime | created_at | Timestamp when the transaction was created in Paddle. |
Updated At datetime | updated_at | Timestamp when the transaction was last updated in Paddle. |
Created Date At date | created_date_at | Date portion of the created_at timestamp. Used for partitioning. |
Revised At datetime | revised_at | Timestamp when the transaction was revised. Null if never revised. |
Billed At datetime | billed_at | Timestamp when the transaction was billed. |
Billing Period Starts At datetime | billing_period_starts_at | Start of the billing period for this transaction. |
Billing Period Ends At datetime | billing_period_ends_at | End of the billing period for this transaction. |
Checkout URL text | checkout_url | URL of the checkout page for this transaction. |
Details Totals Subtotal text | details_totals_subtotal | Subtotal before tax and discount in the lowest denomination of the currency. |
Details Totals Tax text | details_totals_tax | Total tax amount in the lowest denomination of the currency. |
Details Totals Discount text | details_totals_discount | Total discount amount in the lowest denomination of the currency. |
Details Totals Total text | details_totals_total | Total after tax and discount in the lowest denomination of the currency. |
Details Totals Grand Total text | details_totals_grand_total | Grand total including tax in the lowest denomination of the currency. |
Details Totals Grand Total Tax text | details_totals_grand_total_tax | Tax portion of the grand total in the lowest denomination of the currency. |
Details Totals Fee text | details_totals_fee | Paddle fee in the lowest denomination of the currency. Null when transaction is not yet completed. |
Details Totals Credit text | details_totals_credit | Credit applied in the lowest denomination of the currency. |
Details Totals Credit To Balance text | details_totals_credit_to_balance | Credit applied to the customer balance in the lowest denomination of the currency. |
Details Totals Balance text | details_totals_balance | Remaining balance to collect in the lowest denomination of the currency. |
Details Totals Earnings text | details_totals_earnings | Earnings after fees in the lowest denomination of the currency. Null when transaction is not yet completed. |
Details Totals Currency Code text | details_totals_currency_code | Three-letter ISO 4217 currency code for the totals. |
Details Totals Exchange Rate text | details_totals_exchange_rate | Exchange rate used for currency conversion. '1' when no conversion is needed. |
Details Adjusted Totals Subtotal text | details_adjusted_totals_subtotal | Adjusted subtotal before tax in the lowest denomination of the currency. |
Details Adjusted Totals Tax text | details_adjusted_totals_tax | Adjusted tax amount in the lowest denomination of the currency. |
Details Adjusted Totals Total text | details_adjusted_totals_total | Adjusted total after tax in the lowest denomination of the currency. |
Details Adjusted Totals Grand Total text | details_adjusted_totals_grand_total | Adjusted grand total including tax in the lowest denomination of the currency. |
Details Adjusted Totals Grand Total Tax text | details_adjusted_totals_grand_total_tax | Adjusted tax portion of the grand total in the lowest denomination of the currency. |
Details Adjusted Totals Fee text | details_adjusted_totals_fee | Adjusted Paddle fee in the lowest denomination of the currency. Null when transaction is not yet completed. |
Details Adjusted Totals Retained Fee text | details_adjusted_totals_retained_fee | Retained fee after adjustments in the lowest denomination of the currency. |
Details Adjusted Totals Earnings text | details_adjusted_totals_earnings | Adjusted earnings after fees in the lowest denomination of the currency. Null when transaction is not yet completed. |
Details Adjusted Totals Currency Code text | details_adjusted_totals_currency_code | Three-letter ISO 4217 currency code for adjusted totals. |
Details Payout Totals Subtotal text | details_payout_totals_subtotal | Payout subtotal before tax in the lowest denomination of the payout currency. Null when payout has not been calculated. |
Details Payout Totals Tax text | details_payout_totals_tax | Payout tax amount in the lowest denomination of the payout currency. |
Details Payout Totals Discount text | details_payout_totals_discount | Payout discount amount in the lowest denomination of the payout currency. |
Details Payout Totals Total text | details_payout_totals_total | Payout total after tax in the lowest denomination of the payout currency. |
Details Payout Totals Credit text | details_payout_totals_credit | Payout credit applied in the lowest denomination of the payout currency. |
Details Payout Totals Credit To Balance text | details_payout_totals_credit_to_balance | Payout credit applied to balance in the lowest denomination of the payout currency. |
Details Payout Totals Balance text | details_payout_totals_balance | Payout remaining balance in the lowest denomination of the payout currency. |
Details Payout Totals Grand Total text | details_payout_totals_grand_total | Payout grand total including tax in the lowest denomination of the payout currency. |
Details Payout Totals Grand Total Tax text | details_payout_totals_grand_total_tax | Payout tax portion of the grand total in the lowest denomination of the payout currency. |
Details Payout Totals Fee text | details_payout_totals_fee | Paddle payout fee in the lowest denomination of the payout currency. |
Details Payout Totals Fee Rate text | details_payout_totals_fee_rate | Paddle fee rate as a decimal string. For example: '0.05'. |
Details Payout Totals Earnings text | details_payout_totals_earnings | Payout earnings after fees in the lowest denomination of the payout currency. |
Details Payout Totals Currency Code text | details_payout_totals_currency_code | Three-letter ISO 4217 currency code for the payout. |
Details Payout Totals Exchange Rate text | details_payout_totals_exchange_rate | Exchange rate from the transaction currency to the payout currency. |
Details Adjusted Payout Totals Subtotal text | details_adjusted_payout_totals_subtotal | Adjusted payout subtotal in the lowest denomination of the payout currency. Null when payout has not been calculated. |
Details Adjusted Payout Totals Tax text | details_adjusted_payout_totals_tax | Adjusted payout tax amount in the lowest denomination of the payout currency. |
Details Adjusted Payout Totals Total text | details_adjusted_payout_totals_total | Adjusted payout total in the lowest denomination of the payout currency. |
Details Adjusted Payout Totals Fee text | details_adjusted_payout_totals_fee | Adjusted payout Paddle fee in the lowest denomination of the payout currency. |
Details Adjusted Payout Totals Retained Fee text | details_adjusted_payout_totals_retained_fee | Adjusted payout retained fee in the lowest denomination of the payout currency. |
Details Adjusted Payout Totals Chargeback Fee json | details_adjusted_payout_totals_chargeback_fee | Chargeback fee details containing amount and original currency. Stored as JSON due to nested structure. |
Details Adjusted Payout Totals Earnings text | details_adjusted_payout_totals_earnings | Adjusted payout earnings in the lowest denomination of the payout currency. |
Details Adjusted Payout Totals Currency Code text | details_adjusted_payout_totals_currency_code | Three-letter ISO 4217 currency code for adjusted payout totals. |
Details Adjusted Payout Totals Exchange Rate text | details_adjusted_payout_totals_exchange_rate | Exchange rate used for adjusted payout currency conversion. |
Items structure | items | Array of line items included in this transaction. |
Details Tax Rates Used structure | details_tax_rates_used | Array of tax rates applied to this transaction with per-rate totals. |
Details Line Items structure | details_line_items | Array of individual line items in the transaction details with per-item totals. |
Payments structure | payments | Array of payment attempts for this transaction. |
Custom Data json | custom_data | User-defined key-value metadata attached to the transaction. Structure varies per transaction (e.g., user_id, workspace_id, classic_passthrough). |
Billing Details json | billing_details | Billing details for manually-collected transactions. Null for automatic collection mode. |
Receipt Data json | receipt_data | Receipt data for the transaction. Null when no receipt has been generated. |
Below each field is the name its column takes in the destination table. To select every field at once, click Select All. The Selected tab lists everything you picked.
Paddle reports monetary amounts as strings in the smallest currency unit, and Renta loads them as is: a payment of $100.00 arrives as 10000. Cast these columns to a number in your queries. Timestamps arrive as regular datetime columns, and Created Date At is a ready-made date version of the creation timestamp.
Fields that hold a list of values load as nested records.
| Report type | Fields that load as nested records |
|---|---|
| Adjustments | Items, Tax Rates Used |
| Subscriptions | Items |
| Transactions | Items, Details Line Items, Details Tax Rates Used, Payments |
The Custom Data field arrives as a JSON string with the keys you set in Paddle. Several fields with a variable structure arrive the same way: the trial period and price overrides of a price, the discount and scheduled change of a subscription, the billing details of a transaction, the price inside transaction items, and the payment method details inside payments. Extract their keys with the JSON functions of your warehouse.
Table name
Name the destination table. You can keep the auto-generated name or enter your own. For a data lake destination, this becomes the folder name.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time, the exact time each run starts, then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the ETL tab, where you can track its runs, progress, and the destination table name.

Sync strategy
Every Paddle report type works in full reload mode.
| Strategy | Supported report types | Description |
|---|---|---|
| Full reload | Customers, Products, Prices, Adjustments, Subscriptions, Transactions | The Paddle API returns the current state of every record. Renta reads the full list of the selected object on each run and replaces the contents of the destination table, so the table mirrors the account at the moment of the run. Changes made in Paddle after a record was loaded arrive with the next run. |
The pipeline has no date range: a run always covers the whole history of the object. The more records the account holds, the longer a run takes.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.