Why your Stripe payouts don't match your revenue
Almost every SaaS founder who bills through Stripe hits the same moment: the deposits in the bank don't add up to the sales in the Stripe dashboard, and the revenue in the accounting software matches neither. Nothing is necessarily wrong. These numbers measure different things, and they only line up when each piece is recorded separately.
What's inside a Stripe payout
A payout is a batch. It bundles together everything that happened in your Stripe balance over a period and sends you the net amount. A single payout can include:
- Gross charges from new subscriptions, renewals, and one-off payments
- Processing fees, which Stripe deducts before paying you
- Refunds you issued, which reduce the balance
- Disputes (chargebacks) and any dispute fees
- Sales tax or VAT you collected through Stripe, which belongs to the tax authority, not to you
- Currency conversion, if you charge in one currency and get paid out in another
Payouts also run on a schedule that depends on your country and account settings, so sales from the last few days of a month often land in the bank the following month.
Why recording payouts as revenue goes wrong
If your bookkeeping simply records each bank deposit from Stripe as income, four things happen at once:
- Revenue is understated, because fees and refunds have already been taken out.
- Processing fees never appear as an expense, so your true cost of collecting revenue is hidden.
- Sales tax you collected shows up as income, when it's money you owe.
- Month-end revenue is wrong, because late-month sales sit in the next month's payout.
The result is a set of books that can't be compared with Stripe, with your MRR, or with your own sense of how the month went.
The fix: a Stripe clearing account
The standard approach, which Stripe's own reconciliation reports are designed around, is to treat your Stripe balance as a separate account in your books, often called a clearing account. Every transaction flows through it:
| Transaction | Recorded as |
|---|---|
| Customer pays $10,000 in subscriptions | Clearing account up $10,000; revenue (or deferred revenue) recorded |
| Stripe charges $320 in fees | Clearing account down $320; fees expense recorded |
| You refund $400 | Clearing account down $400; refunds recorded against revenue |
| Stripe pays out $8,900 to your bank | Clearing account down $8,900; bank up $8,900 |
At the end of the month, the clearing account in this example holds $380. That should equal the money still sitting in your Stripe balance, waiting for the next payout. If it does, your books and Stripe agree. If it doesn't, something has been missed or double-counted, and you know exactly where to look.
The figures above are illustrative; your fees depend on your Stripe pricing and payment methods.
How to reconcile it each month
- Pull the right report. Stripe's payout reconciliation report breaks each automatic payout into the transactions it settles, and shows what was still unsettled at the end of the period.
- Record gross, not net. Book sales, fees, refunds, disputes, and tax collected as separate lines.
- Match each payout to the bank. Every payout in Stripe should appear as one deposit in your bank feed.
- Tie out the ending balance. Your clearing account balance should match Stripe's ending balance for the month.
- Investigate differences straight away. Small unexplained gaps compound quickly once a few months pass.
If you use instant or manual payouts, Stripe can't tell which transactions each payout contains, so reconciliation has to work from the balance as a whole rather than payout by payout.
Where it gets more involved
Annual plans add a second layer: the cash arrives up front, but the revenue is earned over the year. That's covered in deferred revenue for SaaS. Multiple currencies, Stripe Tax, and connected platforms such as Paddle or Maxio also need their own handling, but the principle is the same: record every component separately, then prove the balance.
Doing this yourself or getting help
The clearing-account method works in both QuickBooks Online and Xero, and many founders run it themselves at first. It becomes time-consuming as transaction volume grows, and that's usually the point where it makes sense to hand it to a bookkeeper who reconciles Stripe every month.
Sources and further reading
This guide is general information about bookkeeping and SaaS metrics, not accounting, tax, or legal advice for your situation. Decisions about accounting policies, tax, and formal financial statements belong with your accountant or CPA.
Check your own numbers
The free SaaS Metrics Health Check walks you through six checks that show whether your billing data, books, and metrics agree.
Get the free checklist