Why a payout total alone isn't a reconciliation
Stripe's payout amount is a single net figure. It doesn't show you which charges, refunds, adjustments, or Stripe fees were rolled into it. To reconcile against your books you need the underlying balance transactions: gross amount, Stripe fee, and net, for each one, summed and checked against what actually landed in the bank.
Build the reconciliation columns
- List every balance transaction tied to the payout, not just the payout row itself.
- Keep gross, fee, and net as separate columns rather than one blended amount.
- Exclude the payout's own balance transaction from the sum, since it's the total, not a line item.
- Add a check column that flags any row where the summed net doesn't match the payout amount.
Get this wrong and a single missed refund or an unusually large fee adjustment quietly breaks the tie-out, and you won't notice until the numbers don't match at month end.
Handle currency correctly
Stripe reports most currencies in the smallest unit, cents for USD, but zero-decimal currencies like JPY are already whole units. Converting every amount as if it were cents produces payout totals off by a factor of 100 for those currencies. Confirm your conversion logic checks the currency per transaction, not once for the whole export.
Keep it repeatable
A reconciliation you rebuild by hand every payout cycle is a reconciliation that eventually gets skipped. Put the report on a schedule so it refreshes automatically and flags mismatches without you having to remember to run it.
Reconciling invoices, not payouts?
Chasing unpaid customer invoices is a different job from tying payouts to balance transactions. See how to build a Stripe accounts receivable aging report in Google Sheets for that case.
Skip the manual build
Stripe Exporter's payout reconciliation report does this automatically: gross, fee, and net for every balance transaction behind a payout, summed, and checked against the payout amount, with any mismatch flagged.
See Stripe Exporter