Stripe payout / balance summary report
The period-level roll-up Stripe produces to explain a bank deposit: opening balance, the activity that moved it, the payouts sent, and the closing balance. People wrongly read the payout total as "sales for the period."
The shape, how the file is really laid out
Two related shapes ship from Stripe Reporting. The Balance summary is a small
grouped table, a "reporting_category" column (charge, refund, dispute, fee,
payout, adjustment, ...) against gross / fee / net amounts, bracketed by a
"Starting balance" line at the top and an "Ending balance" line at the bottom;
those two lines are NOT transactions, they are period markers. The Payout
reconciliation report is one row per payout with columns like
automatic_payout_id, arrival_date, gross, fee, net, currency. Amounts pulled
from the Dashboard CSV are decimal (e.g. 1420.55); the same figures pulled via
the API arrive as integer minor units (142055 cents) and zero-decimal
currencies like JPY carry no fraction at all (¥142055 means ¥142,055, not
¥1,420.55). Dates default to the account's timezone in Dashboard exports but
the Reporting API emits paired _utc columns; a payout's arrival_date is a
calendar date, not a timestamp.
The traps
Payout ≠ revenue: the net payout is gross charges minus fees, minus refunds, minus disputes, minus reserve holds and prior negative balances rolled forward, a $50,000 sales week can pay out $46,300 or, after a big dispute, $8,000.
- Every trap in this export, worked through
- The reconciliation anchor, the total the file asserts about itself
- The refusal cases, when to stop and ask instead of guess
Reference: Stripe Docs, Reporting: Balance summary and Payout reconciliation reports · Stripe API reference: balance_transactions / payouts (currency minor units)