Stripe bookkeeping: book the sales and the fees, not just the payouts
A Stripe payout lands in your bank as one lump: sales less fees, refunds and disputes. Book the lump and your books understate both what you sold and what taking cards cost you. The payout reconciliation report has the detail.
Worked example: two payouts, one refund, one dispute
The tool ships a synthetic Stripe payout report for March 2026 (fixtures/stripe-payouts.csv): three charges, a refund, a dispute with its fee, and a charge not yet paid out. Two deposits ($611.20 and $96.80) are in the bank. The payout command matched each deposit to its bank line and split it. The first payout reads as $750.00 of sales (after the $50.00 refund), a $100.00 dispute loss and $38.80 of fees; the second as $100.00 of sales less $3.20 of fees.
| March 2026 | Booked from deposits | Booked from the payout report |
|---|---|---|
| Sales (charges less the $50.00 refund) | $708.00 | $850.00 |
| Stripe fees, dispute loss and dispute fee | $0.00 | −$142.00 |
| Net profit | $708.00 | $708.00 |
The profit is the same; the difference is that one set of books shows what you sold, what taking cards cost, and a $100.00 chargeback as a separate line you can see and contest. That matters for the fees you deduct on Schedule C, for comparing with the gross figure on a 1099-K, and for spotting a processing rate that creeps up.
How to book it
- Download the payout reconciliation report from Stripe as a CSV, and your bank statement.
- Import the bank statement in AI Bookkeeper, then run
payouts stripe-payouts.csv. Each payout is matched to the bank line of equal amount within a few days and shown as a plan; add--applyto post the splits. - Read the leftovers. A row whose net is not gross less fee is refused as damaged; two bank lines that fit equally well are skipped rather than guessed; rows not yet paid out are listed as pending.
- Run it again next month. A payout already split is reported as done and nothing posts twice.
Column names were checked against Stripe's published reconciliation schema, but no real export has been tried; check the totals against your own statement. Shopify Payments' payout transactions and PayPal's activity CSV read through the same command.
Questions
Should I book Stripe payouts or Stripe sales as income?
Book the gross charges as sales, refunds as negative sales, and Stripe fees and dispute losses as expenses. The payout is only the cash that arrived, so booking it alone understates income and expenses by the same amount.
Which Stripe report do I need?
The payout reconciliation report, downloaded as CSV from the Stripe Dashboard's reports page. It lists every balance transaction under its payout with gross, fee and net columns.
What if a charge has not been paid out yet?
It stays pending until its payout lands. The tool lists those rows and splits them once the matching deposit appears in the bank.
Is it free?
Yes. It is open source (MIT), runs in your browser or as a command line tool, and nothing is uploaded.
Open AI Bookkeeper and import your bank statement and payout report.