Payments & Settlement · Stripe (Reporting, Itemized balance change from activity)

Stripe itemized balance change (transactions) report

The transaction-grain export where every charge, refund, dispute and fee is its own row. It is the file people should use for revenue, and the one where they most often sum the wrong column.

The shape, how the file is really laid out

One row per balance transaction. Load-bearing columns: balance_transaction_id,

reporting_category, currency, gross, fee, net, created_utc, available_on_utc,

plus a source id (charge/refund id) and any customer or metadata columns you

opted into. For cross-border charges a separate presentment amount and

presentment currency describe what the customer paid before conversion, while

gross/fee/net are in your settlement currency. Refunds, disputes and fees post

as their own rows with negative net; there is no single signed "amount"

column that already reflects direction, direction lives in the sign of net

and in reporting_category. created_utc is when the charge happened;

available_on_utc is when the money becomes payout-eligible, and they routinely

fall in different months.

The traps

The fee-net trap: gross is what the customer paid, fee is Stripe's cut, net is what hit your balance, and gross = fee + net per row.

In the Format LibraryGet the Format Library

Reference: Stripe Docs, Reporting: Itemized balance change from activity report and reporting categories · Stripe Docs, Payouts: available_on vs created and settlement timing