.xlsx). The export carries every field your finance team needs to reconcile against bank statements and accounting records: amounts, fee breakdowns, exchange rates, refund status, and timestamps.
Both formats are produced by the same transaction search endpoint. The output format is chosen by the Accept header; the request body selects which transactions you want. That makes reconciliation flexible: filter by payout batch for monthly close, or by date range to generate quarterly reports.
Choosing CSV or Excel
CSV
Best for scripts, accounting imports (Xero, QuickBooks), and pipelines. Plain text, easy to diff and grep.
Excel (`.xlsx`)
Best for finance teams opening files directly. Numeric columns keep their formatting, no import wizard.
Exporting from the console
1
Open the payout detail page
Navigate to Payouts in the Console and click the batch you want to export.
2
Click Export
Click the Export button on the detail page and choose either CSV or Excel. The download starts immediately.
payout-{batchId}-transactions.csv or .xlsx on console exports. When you export from the transactions search page directly, the default filename is transactions-{YYYY-MM-DD}.{csv|xlsx}.
Exporting via API
Both formats live on the existing transaction search endpoint. You choose the format with theAccept header and the rows with the request body.
Endpoint
Headers
The
Accept match is case-insensitive. Omitting Accept (or sending application/json) returns the standard paginated JSON response instead.
Request body
Any filter supported by transaction search works. For payout reconciliation, filter by batch ID:status, created_at range, currency, customer_email.contains, order_id.contains. Combine them freely. See the API reference for the complete search schema.
Example: CSV
Example: Excel (.xlsx)
Swap the Accept header and treat the response body as binary:
The response carries
Content-Disposition: attachment; filename="..." for browser downloads. Server-side callers can ignore it and name the file themselves.Response columns
Each row represents one transaction that matched the search filters.Amounts are decimal. The export converts minor units to decimal (
5000 cents becomes 50.00), which differs from the JSON API where amounts stay in minor units. This is intentional: exports are read by humans and accounting tools, so the representation matches what you’d expect to see in a ledger.Refund columns are populated only for payment transactions with completed refunds. For refund transactions themselves, or payments with no refunds, both columns are blank.
Understanding fees
The Fee Total column is the sum of every fee for the transaction. The Fee Details column gives the breakdown astype:amount pairs separated by pipes (|).
Example: a Fee Details value of processing:0.75|scheme:0.50 resolves to:
Row limits and truncation
An export is capped at 10,000 rows per request. When the filter matches more than that, the export still returns (with the first 10,000 rows) and sets two response headers so callers know it happened:
The console surfaces truncation as a warning toast after the download completes. API callers should inspect the headers and, if truncated, narrow the filter window (by date, status, or currency) and retry until each window fits under the cap.
Tips for reconciliation
Match payouts to bank statements
Match payouts to bank statements
Use the payment reference from the payout batch detail page. This reference appears on your bank statement and uniquely identifies the transfer.
Link transactions to orders
Link transactions to orders
The Order ID column maps to the
order_id you provided when creating the payment request. Use this to match exported rows to your invoices or order management system.Handle cross-currency payouts
Handle cross-currency payouts
For cross-border payments, Amount and Currency show the original transaction values. Converted Amount and Payout Currency show what was actually paid out. Exchange Rate is the rate applied at conversion time, which may differ from spot rates on the payout date.
Reconcile refunds
Reconcile refunds
Refund Status and Refunded Amount let you identify transactions that were fully or partially refunded within the batch. Subtract Refunded Amount from the gross Amount to get net revenue per transaction.
Next steps
Payout overview
How payouts work and the full reconciliation workflow
API reference
Full endpoint and search schema documentation