PAYMENT PROCESSORS · QUICKBOOKS ONLINE & XERO
How to Categorize Stripe Fees and Payouts in QuickBooks and Xero
Last Updated: October 5, 2026A Stripe payout is not revenue, and Stripe fees are not a single number you can read off the bank feed. Stripe pays out net of its processing fees, refunds, disputes and any Stripe-product charges, usually on a rolling schedule that does not line up with your month end. If you book the deposit as sales, you understate revenue and omit the fees entirely — and the gap widens every month you grow.
The Short Answer
| What the charge actually is | Two separate things: processing fees deducted from each charge, and net payouts transferred to your bank. Possibly also subscription fees for Stripe Billing, Radar, Tax or Connect. |
| Where the fee belongs | A cost-of-sales or operating expense account for merchant fees — kept separate from bank charges so you can see the effective rate. |
| QuickBooks Online default | Merchant Account Fees (an Expenses account). Many charts use Bank Charges and Fees; either works if used consistently. |
| Xero default | Bank Fees, or better, a custom Merchant Fees account under Direct Costs so it sits above gross profit. |
| Expense or balance sheet | The fee is an expense. The Stripe balance — money collected but not yet paid out — is an asset, and at month end it is usually the missing piece. |
| Bank feed descriptor | Typically contains STRIPE with a transfer reference. The descriptor shows only the net amount, which is why it cannot be categorised in isolation. |
Why You Cannot Categorise a Stripe Deposit
This is the part that trips up otherwise careful books. A single Stripe payout can contain hundreds of charges, minus fees on each one, minus any refunds issued that period, minus disputed amounts, plus any dispute reversals, minus Stripe product subscription charges.
So there is no account the deposit belongs in. The deposit is the result of several things, and the only correct treatment is to record the gross activity and the deductions separately, then confirm that what is left equals the amount that hit the bank. That is a reconciliation, not a categorisation.
Practically, that means working from the Stripe balance report for the period rather than the bank line: gross charges to revenue, fees to merchant fees, refunds against revenue, disputes and dispute fees to their own accounts, and the closing Stripe balance carried as an asset.
The Month-End Problem Nobody Notices
Stripe pays out on a rolling delay. So on the last day of the month there is always money Stripe has collected from your customers and not yet sent you.
If your books only recognise revenue when the payout lands, you are recognising revenue days late, every single month, and the amount in transit never appears on your balance sheet at all. In a growing business the in-transit figure grows too, so the understatement compounds rather than averaging out.
The fix is a Stripe clearing account — an asset account that gross sales are credited into and payouts are transferred out of. Its balance at month end should equal your Stripe balance. When it does, you know nothing has been dropped; when it does not, the difference tells you exactly what is missing.
The Common Mis-Categorisation
Putting the net payout in Sales. Revenue is understated by the fees, and the fees never appear as a cost. Gross margin looks better than it is, and the effective processing rate — which is worth watching, because it moves with card mix and chargebacks — is invisible.
Putting Stripe fees in Bank Charges. Not wrong exactly, but it mixes a volume-driven cost of selling with fixed bank account charges, so neither figure means anything. Merchant fees belong in their own account.
Netting refunds against fees. Refunds reduce revenue; fees are a cost. Collapsing them hides both the refund rate and the fee rate, and refund rate is usually the more useful of the two.
Stripe Fees and Payouts Categorisation FAQs
Should Stripe fees go in cost of goods sold or operating expenses?
Either is defensible, and the choice matters less than consistency. Putting merchant fees in cost of sales means your gross margin reflects the true cost of taking the money, which most e-commerce operators prefer. Putting them in operating expenses keeps gross margin product-focused. Pick one, use it every month, and do not move it mid-year — moving it makes year-on-year comparison impossible. The tax treatment is a question for your CPA; it does not change either way.
Do I need a Stripe clearing account?
If you take more than a handful of payments a month, yes. It is the only way to tie gross sales to net payouts and to see what is in transit at month end. Without one, revenue is recognised whenever Stripe happens to pay out, the in-transit balance is missing from your balance sheet, and nothing proves that every charge made it into the books.
How do I handle Stripe disputes and chargebacks?
Separately from refunds, because they behave differently. A dispute removes the original amount and usually adds a dispute fee; if you win, the amount comes back but typically the fee does not. Tracking them in their own account makes the real cost of disputes visible, which matters because a rising dispute rate is an operational problem before it is an accounting one.
This page is about where the transaction belongs in your books. Whether a cost is deductible, and how it is treated on a return, is a question for your CPA — and consistent categorisation is what lets them answer it without guessing. Dedicated bookkeepers from $75/month, extra hours at $15/hour, wholesale $10/hour for CPA firms, with a 100% money-back guarantee on your 1st retainer, refundable on the unused balance.
Related Resources
Stop Deciding This Every Month
A dedicated bookkeeper who codes Stripe Fees and Payouts the same way every time — from $75/month with a 100% money-back guarantee on your 1st retainer, refundable on the unused balance.