Payout reconciliation reports

Generate detailed reports that connect your Paddle payouts to the underlying transaction movements for accurate financial reconciliation.

Payout reconciliation reports give you complete transparency into how your payout amounts are calculated. They connect your Paddle payouts to the individual transactions and transaction-linked adjustments they include, breaking down all the components that reduce gross sales to net payouts.

Use payout reconciliation reports to:

How it works

A payout is the money Paddle sends you from your sales. If your balance meets the minimum threshold, Paddle creates your payout on the 1st and sends the payment by the 15th. You'll receive funds by the payout method you've set in your settings, like bank transfer, PayPal, or Payoneer.

Learn more about payouts on the Paddle help center.

The payout reconciliation report shows a record of every balance movement for a payout. Each row represents a transaction-linked balance movement.

The report takes your gross transaction amounts and shows exactly how they're reduced by taxes, fees, and adjustments to arrive at your final payout amount.

You can generate reports through the dashboard or via the API. For regular reconciliation workflows, many businesses automate report generation via API to align with their monthly accounting cycles.

To generate a report for a specific payout, you'll need its remittance reference. Find this in the Reference column on Paddle > Payouts or in the upper-right corner of your remittance advice document.

Deduction breakdowns

Each deduction type has its own column, giving you visibility into what impacts your payout amount:

FieldDescription
  • paddle_fee_in_balance_currency
  • paddle_fee_in_transaction_currency
Processing fees charged by Paddle
  • fx_fee_in_balance_currency
Currency conversion costs for international transactions
  • chargeback_fee_in_balance_currency
  • chargeback_fee_in_transaction_currency
Fees for dispute handling
  • retained_fee_in_balance_currency
  • retained_fee_in_transaction_currency
Amounts kept by Paddle during refunds to cover gateway costs
  • tax_in_balance_currency
  • tax_in_transaction_currency
Customer taxes

How balance movements are calculated

The report calculates each row's balance movement using the _in_balance_currency fields:

FieldDescription
total_gross_in_balance_currencyThe gross amount of the transaction in the balance currency.
tax_in_balance_currencyThe tax amount of the transaction in the balance currency.
paddle_fee_in_balance_currencyThe Paddle fee amount of the transaction in the balance currency.
retained_fee_in_balance_currencyThe retained fee amount of the transaction in the balance currency.
fx_fee_in_balance_currencyThe FX fee amount of the transaction in the balance currency.
fx_fee_precision_adjustment_in_balance_currencyThe FX fee precision adjustment amount of the transaction in the balance currency.
chargeback_fee_in_balance_currencyThe chargeback fee amount of the transaction in the balance currency.

The formula shows how gross sales are reduced by fees and taxes to calculate the net amount for each transaction:

Get your reconciliation total

To reconcile your payout, you need to sum the balance_movement_in_balance_currency column. The total amount should equal the amount shown on your remittance advice document for the payout.

Each row's balance_movement_in_balance_currency represents the net amount contributed to your payout after all deductions.

Always use the balance currency fields (ending in _in_balance_currency) for reconciliation. While transaction currency fields are useful for analyzing individual transactions, they won't roll up to your payout total because of currency conversion, fees, and rounding adjustments.w

Discrepancies in totals

Sometimes your report total won't exactly match the bank payout amount. This is usually due to payout-level deductions that aren't tied to specific transactions:

  • Bank and transfer fees   Common

    Consistent charges applied by your bank, like SWIFT fees for international transfers (typically $/€/£15) and other banking charges, are deducted at payout time and won't appear as line items in the report.

  • Manual adjustments   Rare

    Occurs when Paddle corrects invoicing issues. These one-off rebates are deducted directly from payouts rather than being tied to specific transactions.

If you see an unexpected discrepancy, regenerate the report first in case recent adjustments weren't included, then contact support with your remittance reference.

Supplemental data

Beyond reconciliation, the report includes rich data that integrates well with business intelligence tools for deeper revenue analysis.

Location data

The invoice_entity field splits transactions between United States flagUnited States and Rest of World (RoW) for tax reporting. For US transactions, you get detailed location data including state codes (customer_country_state) and ZIP codes (customer_zip_code) to support local tax compliance.

Product and price data

Product information helps you understand your revenue mix. The report includes comma-separated lists of product names (product_name_list) and price descriptions (product_price_description_list), along with the subscription's billing cycle frequency (billing_cycle_frequency) and interval (billing_cycle_interval).

Report filters

When generating payout reconciliation reports, you can filter by:

FieldDescriptionUse case
remittance_referenceFilter by a specific payout using its remittance reference. This gives you all transactions that contributed to that particular payout.Reconciling a specific payout to your bank account.
transaction_updated_dateFilter by the date range when transactions were last updated. Use this to generate reports covering multiple payouts within a time period.Monthly reconciliation reports or analyzing trends over time.

Report columns

Data is provided in the following columns:

remittance_referencestring or null

Remittance reference for the payout. Found in the 'Remittance reference' column on the Payouts page or on the remittance advice document. null if the balance movement isn't tied to a payout.

transaction_idstring

Paddle ID of the transaction this balance movement is for, prefixed with txn_.

adjustment_idstring or null

Paddle ID of the adjustment applied to the transaction this balance movement is for, prefixed with adj_. null if balance movement isn't tied to an adjustment.

customer_idstring

Paddle ID of the customer the transaction belongs to, prefixed with ctm_.

subscription_idstring or null

Paddle ID of the subscription the transaction belongs to, prefixed with sub_. null if the transaction isn't tied to a subscription.

payout_created_atstring<date-time> or null

RFC 3339 datetime string of when the payout was created. null if the balance movement isn't tied to a payout.

payout_period_starts_atstring<date-time> or null

RFC 3339 datetime string of when the payout's period starts. null if the balance movement isn't tied to a payout.

payout_period_ends_atstring<date-time> or null

RFC 3339 datetime string of when the payout's period ends. null if the balance movement isn't tied to a payout.

transaction_created_atstring<date-time>

RFC 3339 datetime string of when the transaction was created.

transaction_updated_atstring<date-time>

RFC 3339 datetime string of when the transaction was updated.

transaction_completed_atstring<date-time> or null

RFC 3339 datetime string of when the transaction was marked as completed. null for transactions that aren't completed.

payout_currency_codestring or null

Three-letter ISO 4217 currency code of your payout currency. null if the balance movement isn't tied to a payout.

transaction_currency_codestring

Supported three-letter ISO 4217 currency code for the transaction or adjustment related to this balance movement.

balance_movement_typestring

Type of balance movement associated to the transaction or adjustment.

directionstring

Whether this balance movement added or deducted funds from your balance.

customer_tax_codestring or null

Tax code of the customer.

customer_zip_codestring or null

Zip or postal code of the customer.

customer_country_statestring or null

Two-letter abbreviation of the state where the transaction took place. Only for customers in the USA.

customer_country_codestring

Supported two-letter ISO 3166-1 alpha-2 country code of the address that the transaction belongs to.

price_tax_modestring

Whether the tax mode for the price on the transaction is set as internal or external.

tax_rate_liststring

Comma-separated list of tax rates charged for items on the transaction.

originstring

How the transaction for this balance movement was created.

payment_methodstring or null

Type of payment method used on the last payment attempt for the transaction.

product_id_liststring

Comma-separated list of product IDs on the transaction for this balance movement.

product_name_liststring

Comma-separated list of product names on the transaction for this balance movement.

price_id_liststring

Comma-separated list of price IDs on the transaction for this balance movement.

product_price_description_liststring

Comma-separated list of price descriptions on the transaction for this balance movement.

billing_cycle_frequencyinteger or null

Amount of time for how often the subscription is charged. null if the transaction isn't tied to a subscription.

billing_cycle_intervalstring or null

Unit of time for how often the subscription is charged. null if the transaction isn't tied to a subscription.

transaction_to_balance_currency_base_exchange_ratestring or null

Base exchange rate used to calculate the exchange rate for the transaction for this balance movement. Combined with exchange_margin_rate to give transaction_to_balance_currency_exchange_rate. null if the currency wasn't converted.

exchange_margin_ratestring or null

Margin rate for the currency conversion. null if the currency wasn't converted.

transaction_to_balance_currency_exchange_ratestring or null

Exchange rate used to convert between the transaction currency and your balance currency. null if the currency wasn't converted.

invoice_entitystring

Whether the transaction is attributed to the United States (US) or the Rest of World (RoW).

total_gross_in_transaction_currencystring

Total for the transaction before any fees in the original transaction currency.

total_gross_in_balance_currencystring

Total for the transaction before any fees in the balance currency.

tax_in_transaction_currencystring

Total tax on the subtotal for the transaction in the transaction currency.

tax_in_balance_currencystring

Total tax on the subtotal for the transaction in the balance currency.

paddle_fee_in_transaction_currencystring or null

Total fee taken by Paddle for the transaction in the transaction currency. null until the transaction is completed and the fee is processed.

paddle_fee_in_balance_currencystring or null

Total fee taken by Paddle for the transaction in the balance currency. null until the transaction is completed and the fee is processed.

fx_fee_in_balance_currencystring

Total FX fee charged for the transaction, in the balance currency.

fx_fee_precision_adjustment_in_balance_currencystring

Corrective adjustment for the fx_fee_in_balance_currency to reconcile discrepancies between the reported fee and the exact amount charged due to precision and rounding calculations.

chargeback_fee_in_transaction_currencystring or null

Chargeback fee incurred for the adjustment in the transaction currency. Present where the associated adjustment has an action of chargeback or chargeback_warning.

chargeback_fee_in_balance_currencystring or null

Chargeback fee incurred for the adjustment in the balance currency. Present where the associated adjustment has an action of chargeback or chargeback_warning.

retained_fee_in_transaction_currencystring

Fee retained by Paddle during refunds and chargebacks to cover gateway costs, recorded in the transaction currency.

retained_fee_in_balance_currencystring

Fee retained by Paddle during refunds and chargebacks to cover gateway costs, recorded in the balance currency.

balance_movement_in_transaction_currencystring

Total for this balance movement after all fees (excluding FX fees) and charges, recorded in the transaction currency.

balance_movement_in_balance_currencystring

Total for this balance movement after all fees and charges, recorded in the balance currency. Should equal the associated payout amount unless rebates or a SWIFT fee have been applied.

Related pages