Who it's for: anyone in a SaaS finance team who has to explain a Stripe payout to the penny, from finance assistant to financial controller.
What you'll get: how Stripe payouts are built, a clearing-account method that works every month, journals for fees, refunds, disputes and FX, a month-end check, and AI prompts you can copy.
Reading time: about 12 minutes. Have last month's payout reconciliation report to hand.
Why one net number causes so much trouble
Stripe pays you a single net amount. Behind it sit hundreds of customer payments, the fees on each, a few refunds, the odd dispute and, if you sell abroad, some currency conversion. Post that payout as one line and revenue, fees and debtors are all wrong, and nobody can say why. Break it out properly and the bank line explains itself, which is more than can be said for most bank lines.
Key terms
- Stripe balance: money Stripe holds for you. It's split into pending (not yet released) and available (ready to pay out).
- Balance transaction: Stripe's record of every movement in or out of your balance: a charge, a fee, a refund, a dispute, a payout.
- Payout: a transfer from your Stripe balance to your bank account.
- Automatic payouts: payouts Stripe sends on a schedule. Stripe can tell you exactly which transactions each one contains.
- Manual or instant payouts: payouts you trigger yourself. Stripe can't tie these to specific transactions, so you reconcile the balance instead.
- Reporting category: Stripe's grouping of balance transactions for finance use, such as charge, refund, dispute, dispute reversal and fee.
- Dispute (chargeback): a customer asks their card issuer to reverse a payment. Stripe takes the amount, plus a fee, out of your balance while it's decided.
- Stripe clearing account: a balance sheet account in your ledger that mirrors your Stripe balance.
How a Stripe payout is built
As at October 2026, Stripe's documentation describes the payout reconciliation report as available to accounts on automatic payouts. It groups each payout's transactions by reporting category, with gross, fee and net columns. A typical payout looks like this:
| Reporting category | What it is | Effect on payout |
|---|---|---|
| Charge | Customer payments | Adds the gross amount; the Stripe fee is deducted |
| Refund | Money returned to customers | Reduces the payout |
| Dispute | Disputed amount withdrawn, plus the dispute fee | Reduces the payout |
| Dispute reversal | Disputed amount returned after a win | Adds to the payout |
| Fee | Other Stripe fees, such as billing or add-on product fees | Reduces the payout |
| Other adjustments | Anything else Stripe adjusts | Either way; investigate each one |
A few points from Stripe's current docs that trip people up:
- The report groups payouts by their expected arrival date, not the date your bank posts the money.
- Report data runs on its own schedule, so a payout can land before its detail is ready.
- If you use manual or instant payouts, Stripe points you to the balance report instead, and you reconcile the Stripe balance like a bank account.
- The fee received for a dispute is generally not returned even if you win (except where Stripe's terms say otherwise). If you counter a dispute there's a separate countered fee, which Stripe returns if you win.
- Refunds and disputes on currency-converted payments use the exchange rate on the day of the refund or dispute, not the original rate.
Fee levels vary by region and change over time, so check Stripe's pricing page for your rates rather than relying on old figures.
The method: a Stripe clearing account
A common approach is to treat Stripe like a bank account in your ledger. Everything that moves your Stripe balance goes through the clearing account, and every payout moves money from clearing to the real bank account. At month-end the clearing balance should equal your Stripe balance.
| Event | Dr | Cr |
|---|---|---|
| Customer pays an invoice through Stripe | Stripe clearing | Trade debtors |
| Stripe processing fee | Payment processing fees | Stripe clearing |
| Refund paid to customer (credit note posted separately) | Trade debtors | Stripe clearing |
| Dispute opened: amount withdrawn | Disputed payments (current asset) | Stripe clearing |
| Dispute fee | Payment processing fees | Stripe clearing |
| Dispute won: amount returned | Stripe clearing | Disputed payments |
| Payout to bank | Bank | Stripe clearing |
If you sell through Stripe Checkout without separate invoices, the charge line credits revenue (or deferred revenue) and VAT instead of debtors. The rest is the same.
Step by step, every payout and every month-end
| Step | What "done" looks like | |
|---|---|---|
| ☐ | Download the payout reconciliation report (summary and itemised) for the month | Both files saved with the run date |
| ☐ | For each payout, check gross less fees less refunds less disputes equals the payout amount | Every payout adds up to the bank deposit |
| ☐ | Post charges, fees, refunds and disputes to the clearing account (or check your integration has) | Each category posted gross, not netted |
| ☐ | Match each payout to the bank statement | Bank line cleared against Stripe clearing |
| ☐ | Check each charge cleared the right customer invoice | No paid invoices still showing open in debtors |
| ☐ | Review open disputes and update their status | Disputed payments balance agrees to Stripe's open dispute list |
| ☐ | Post FX differences on converted payments, refunds and disputes | Differences booked to FX gains and losses |
| ☐ | At month-end, agree clearing to the ending Stripe balance in the balance summary | Balances agree, or differences listed and explained |
| ☐ | Get the reconciliation reviewed and signed off | Reviewer's name and date on the working paper |
AI shortcut: give an approved AI tool the itemised payout report and your ledger's open debtors list. Ask it to match each charge to an invoice using the invoice ID or customer and amount, and list charges it couldn't match. You review the unmatched list and the confident matches in a sample.
Worked example 1: one payout, broken out
MonthEndClub Co Ltd (fictional) has a GBP Stripe account on automatic payouts. Customers pay invoices raised in the billing system. The summary for a payout arriving on 14 October shows:
| Category | Gross (£) | Fee (£) | Net (£) |
|---|---|---|---|
| Charges | 48,000 | (1,020) | 46,980 |
| Refunds | (1,200) | 0 | (1,200) |
| Disputes | (600) | (20) | (620) |
| Payout | 46,200 | (1,040) | 45,160 |
The dispute fee here is illustrative; your actual fee is on Stripe's pricing page for your region.
The journals:
| Account | Dr | Cr |
|---|---|---|
| Stripe clearing | £48,000 | |
| Trade debtors (customer payments) | £48,000 | |
| Payment processing fees (£1,020 + £20) | £1,040 | |
| Trade debtors (refunds paid) | £1,200 | |
| Disputed payments | £600 | |
| Stripe clearing (£1,040 + £1,200 + £600) | £2,840 | |
| Bank | £45,160 | |
| Stripe clearing | £45,160 | |
| Totals | £96,000 | £96,000 |
Check on clearing: 48,000 − 2,840 − 45,160 = nil. The refund also needs a credit note in the billing system (reducing revenue or deferred revenue, and VAT), which is what the £1,200 debit to debtors clears.
The dispute outcome. If MonthEndClub Co Ltd wins, the £600 comes back as a dispute reversal:
| Account | Dr | Cr |
|---|---|---|
| Stripe clearing | £600 | |
| Disputed payments | £600 |
If it loses, the money is gone. A common approach is to write it off to bad debts, or to raise a credit note if the customer genuinely didn't get the service. The £20 fee stays as a cost either way.
Worked example 2: FX on a US dollar payment
A US customer is invoiced $1,000. The ledger records it at its month rate of £0.79 per dollar, so the debtor is £790. Stripe converts the payment into GBP at £0.80, so £800 gross arrives in the Stripe balance (before fees, which are posted as above). Stripe may also charge a currency conversion fee; check how your account shows it.
| Account | Dr | Cr |
|---|---|---|
| Stripe clearing | £800 | |
| Trade debtors | £790 | |
| FX gains and losses | £10 |
If that customer is refunded in full a month later when the rate is £0.78, Stripe takes £780 from the balance (the customer still gets exactly $1,000). The refund is booked at £780 in clearing, and any difference against the credit note in the ledger goes to FX gains and losses.
Worked example 3: the month-end check
Charges on 30 and 31 October won't be paid out until November. That's why the clearing account has a balance at month-end, and why that balance is checked against Stripe.
| Stripe clearing at 31 October | £ |
|---|---|
| Balance per ledger | 12,340 |
| Ending balance per Stripe balance summary | 12,340 |
| Difference | nil |
If they don't agree, the usual suspects are an unposted fee, a dispute not yet booked, a payout dated differently in the bank, or an integration posting payouts net. Stripe deducts a payout from your balance on its expected arrival date. If your bank posts it a day later, the payout sits as cash in transit in the bank reconciliation, not as a Stripe difference.
AI shortcut: give an approved AI tool the clearing account detail for the month and Stripe's itemised ending balance report. Ask it to list items in one and not the other, grouped by reporting category. You check each item and post the fixes.
If you report under US GAAP (ASC 606)
The mechanics are the same. Processing fees are usually treated as a cost, not netted off revenue, under both ASC 606 and IFRS 15, because Stripe is a supplier to you rather than a customer. Lost disputes and refunds are handled under each framework's rules on variable consideration and credit losses, which tend to give the same answer for ordinary subscription refunds.
Common mistakes and audit watch-outs
- Posting the payout as revenue. Revenue ends up net of fees and refunds, and fees disappear from costs.
- No clearing account. Without one there's nothing to reconcile at month-end, and timing differences hide errors.
- Forgetting open disputes. The amount has left your balance but hasn't been lost yet. Track it as an asset until it's decided.
- Expecting the dispute fee back. Under Stripe's standard terms the received fee isn't returned, even on a win.
- Using the original rate for refunds. Stripe uses the rate on the day of the refund or dispute.
- Using the wrong report. Manual and instant payouts can't be tied to transactions. Reconcile the balance instead.
- Coding Stripe fees without checking VAT. Check the VAT treatment shown on Stripe's fee statements and code fees to match. Some itemised reports also show withheld tax within the fee.
- Accepting AI matches without sampling. AI can match the wrong customer when amounts are identical. Sample confident matches and review every exception.
Tools that can help
Stripe's own payout reconciliation and balance reports are the starting point. Xero and QuickBooks both have Stripe feeds that can post gross transactions to a clearing account, and NetSuite has connectors that do the same at larger volumes. Billing tools such as Chargebee can help match charges to invoices. Excel or Google Sheets are fine for the month-end tie-out. None of these replace the reconciliation; they just mean less of it is typed by hand.
AI prompts to try
Use only AI tools your company has approved for customer and financial data. AI drafts and matches; you check and sign off.
1. Break out a payout. Give it: the itemised payout report for one payout. Ask: "Summarise this payout by reporting category with gross, fee and net, and show that the net total equals the payout amount." Check: the total matches the bank deposit.
2. Match charges to invoices. Give it: the itemised report and your open debtors list. Ask: "Match each charge to an invoice using invoice ID first, then customer and amount. List anything unmatched or matched to more than one invoice." Check: a sample of matches and every exception.
3. Draft the journal. Give it: the summary report and your chart of accounts names. Ask: "Draft a journal to post this payout through a Stripe clearing account, with fees, refunds and disputes on separate lines." Check: it balances and clearing nets to nil.
4. Explain a clearing difference. Give it: the clearing account detail and Stripe's ending balance itemised report. Ask: "List items that appear in one but not the other, grouped by category." Check: each item against Stripe before posting anything.
Rates, thresholds and rules in this guide
Figures were checked against the pages below in October 2026. They change regularly (often each April or at Budget time), and we can't guarantee they're still current or right for your situation. Always check the official page before relying on them.
- Payout reconciliation report (Stripe Docs): which accounts can use the report, grouping by expected arrival date, data timing, manual and instant payouts, and withheld tax in fees
- How disputes work (Stripe Docs): dispute received and countered fees, and when they are returned
- Conversions on disputes and refunds (Stripe Docs): the exchange rate used for refunds and disputes on converted payments
- Pricing & Fees (Stripe, UK): current UK card and dispute fees
Key takeaways
- Never post a Stripe payout as one net figure; break out charges, fees, refunds and disputes.
- Use a Stripe clearing account and agree it to Stripe's ending balance every month.
- Track open disputes as an asset until they're won or lost.
- Refunds and disputes on converted payments use the rate on the day, so expect FX differences.
- Let AI do the matching and journal drafts; a person reviews and signs off.
FAQs
Why doesn't my Stripe payout match the day's sales?
Payouts follow a schedule and include transactions from earlier days, less fees, refunds and disputes. The payout reconciliation report shows exactly which transactions each automatic payout contains.
Are Stripe fees cost of sales or overheads?
It depends on your policy. Many SaaS teams put payment processing fees in cost of sales because they scale with revenue; others keep them in overheads. Whichever policy is chosen, the key is applying it consistently.
What if I use manual payouts?
Stripe can't tie manual or instant payouts to specific transactions. A common approach is to reconcile the Stripe balance like a bank account using the balance report, and treat each payout as a transfer.
Can AI reconcile Stripe for me?
It can do most of the matching and draft the journals, which is where the time goes. It can't decide how to treat a lost dispute or approve a posting. Use approved tools only, check totals against Stripe's reports, and keep sign-off with a person.
Related guides
- Reconciling Your Billing System to the Ledger
- Bank Reconciliations Done Properly
- Month-End FX Revaluation, Step by Step
- SaaS Gross Margin: What Belongs in Cost of Sales
More in Revenue guides.
From the Club
Net of fees, still worth it. The Team Mug · The Washed Cap
Join the Club. New guides, early access and members-only batches. Join here.
This guide is general information about common practice. It isn't tailored to any business, and standards, tax rules and figures change. Check your own circumstances, the latest rules and, where needed, a qualified professional before acting.
Last reviewed: October 2026.