How to Reconcile Stripe Payouts in Xero
The manual step-by-step for decomposing a Stripe payout into charges, fees, refunds, and chargebacks — then reconciling the single bank line in Xero.
A £3,847.62 deposit lands in your bank feed on a Thursday morning. It says “STRIPE PAYMENTS UK.” Xero spots it and politely offers to match it to the nearest open invoice. Click yes and you’ve produced a tidy, completely wrong reconciliation — fees unposted, refunds unacknowledged, invoices incorrectly settled.
The problem isn’t Xero. The problem is that a Stripe payout is not one accounting event. It’s a batch of events — charges, refunds, chargebacks, and platform fees — that Stripe has netted into a single bank transfer. Treating the net figure as a single receipt is the reconciliation equivalent of only reading the final line of a bank statement.
This post walks through the manual method, step by step, for a UK Xero business receiving Stripe payouts in GBP. It’s the how-to companion to why rule-based reconciliation breaks — that post explains why rules can’t handle this; this one shows you what to do instead.
What a Stripe Payout Actually Contains
Before you open Xero, open Stripe.
The Stripe payout reconciliation report
Stripe’s payout reconciliation report breaks each payout into its underlying components. For a typical UK business you’ll find:
- Gross charges — the sum of all successful customer payments included in this settlement batch
- Refunds — amounts returned to customers since the previous payout
- Chargebacks — disputed transactions Stripe has reversed against your balance
- Platform fees — Stripe’s processing charge, currently 1.5% + 20p per transaction for standard UK domestic cards, deducted before the payout is sent
Reading the net payout formula
The net payout that hits your bank account is: gross charges − refunds − chargebacks − fees. The payout reconciliation report, downloadable as a CSV from your Stripe Dashboard under Reporting → Balance, shows every contributing transaction by reporting category.
Download the CSV before you touch Xero. Everything flows from that file.
The Manual Process, Step by Step
Step 1 — Set Up a Stripe Clearing Account in Xero
Before reconciling your first payout, create a current-account type bank account in Xero called “Stripe” (or “Stripe Clearing”). This is where Stripe payments live before they reach your actual bank. It gives you a home for the gross receipts and deductions, so when the net payout transfers to your real bank it zeroes out cleanly.
If you skip this step and simply code everything to your main bank account, you end up double-counting or chasing pennies on the split. The clearing account is the scaffold that makes the rest of the process work.
Step 2 — Match Each Charge to Its Xero Invoice
The payout CSV lists every charge with the customer email, the amount, the Stripe charge ID, and the date. Open Xero’s Accounts Receivable → Awaiting Payment list alongside the CSV.
For each charge, find the corresponding invoice in Xero and record a payment against it from the Stripe clearing account. Do not use the main bank account — use Stripe clearing. After this step, your Stripe clearing account balance should equal the gross charges total, and all the settled invoices should move to “Paid.”
Common problem: some charges won’t match a single invoice. A £230 charge might cover £200 of invoice 1147 and £30 remaining on invoice 1139. That requires a split payment in Xero — record the full £230 as a single receipt, then allocate it across both invoices on the allocation screen.
Another common problem: a charge was partially covered by an earlier payout. The Stripe CSV will show the full charge amount, but your Xero invoice already has a part-payment against it. Match the remainder only, not the full amount.
Step 3 — Post the Platform Fees
Stripe’s fees don’t appear as a separate bank transaction. They’re deducted silently before the payout reaches you. You need to post them manually.
In Xero, create a spend money transaction from the Stripe clearing account for the total fee amount shown in the CSV. Post it to your payment processing fees account — an account such as 7900 in a typical chart of accounts, though your chart may use a different code. Your accountant will have set this up, or will tell you where it lives.
Add a reference that includes the Stripe payout ID (it appears in the CSV as payout_id) so you can trace it if questions arise later.
Do not guess the account code. If you’re unsure which nominal account your accountant has designated for payment processing costs, ask before posting. Posting to the wrong account distorts your profit and loss and will surface as a correction at year-end.
Step 4 — Process Refunds
Each refund in the payout CSV means Stripe paid a customer back and deducted the amount from your settlement. In Xero, refunds are handled as credit notes.
For each refund:
- Open the original invoice in Xero.
- Apply a credit note for the refunded amount — this reverses the revenue correctly.
- Mark the credit note as paid from the Stripe clearing account (Stripe already moved the cash — you’re just reflecting it).
If the refunded invoice has already been fully paid in Xero, you’ll need to void or adjust the payment first, then apply the credit note. It’s an extra step but it’s the correct way to keep the audit trail clean.
Step 5 — Post Chargebacks
A chargeback is more involved than a refund. When a customer disputes a payment and Stripe sides with them, Stripe reverses the original charge and deducts £20 from your balance as a dispute fee, regardless of outcome.
In Xero:
- Record a spend money transaction from Stripe clearing for the chargeback amount — post it to your bad debt account (an account such as 8100, but use whichever code your chart designates).
- Reverse the original invoice payment. The invoice is now open again, which is correct — the debt was not paid.
- Record a separate spend money for the £20 dispute fee — post it to your payment processing fees account alongside the regular platform fees.
Some businesses prefer to write off the invoice entirely once a chargeback is confirmed. Others prefer to leave it open and pursue the customer directly. That is a credit policy decision, not a bookkeeping one — but the bookkeeping must reflect whichever policy you’ve chosen.
Step 6 — Reconcile the Bank Line
After steps 2–5, your Stripe clearing account balance should equal the net payout amount that landed in your real bank account — the £3,847.62 from the opening scenario.
Now open Xero’s bank reconciliation for your main bank account. Find the Stripe payout line. Use Find & Match and select the transfer from Stripe clearing. The two figures should agree exactly. Click Reconcile.
The bank line is now reconciled, the clearing account zeroes out, and every underlying transaction — charges, fees, refunds, chargeback, dispute fee — is sitting in the right nominal account.
Worked Example
The scenario
Amber Osprey Ltd is a UK subscription software business with monthly Stripe payouts. Their Thursday settlement arrives as £3,847.62 in their Barclays account. The Stripe payout CSV shows:
- 24 successful charges totalling £4,380.00 gross
- 2 refunds totalling £120.00
- 1 chargeback of £85.00
- 1 dispute fee of £20.00
- Platform fees of £307.38 (1.5% + 20p per transaction across 24 charges)
- Net to bank: £4,380.00 − £120.00 − £85.00 − £20.00 − £307.38 = £3,847.62
Xero state before reconciliation
The Barclays feed shows one unreconciled line:
Date Description Spent Received Status
12 Jun 2026 STRIPE PAYMENTS UK £3,847.62 Unreconciled
The Stripe clearing account shows a zero balance. Accounts receivable shows 24 invoices in “Awaiting Payment,” ranging from £89 to £390. Two of those invoices belong to the customer who received refunds — they are partially disputed and will need credit notes.
Reconciliation steps taken
- 24 invoice payments recorded from Stripe clearing — 22 match cleanly, 2 require split allocation across part-paid invoices.
- Platform fees of £307.38 posted as spend money from Stripe clearing to the payment processing fees account.
- Two credit notes raised against the refunded invoices (£60 and £60); both marked paid from Stripe clearing.
- Chargeback of £85 posted as spend money from Stripe clearing to the bad debt account; underlying invoice left open.
- Dispute fee of £20 posted as spend money from Stripe clearing to the payment processing fees account.
- Stripe clearing balance now sits at exactly £3,847.62 — matching the bank payout.
- Barclays bank line reconciled by matching the transfer from Stripe clearing.
Xero state after reconciliation
The Barclays line shows Reconciled. Twenty-two invoices show Paid. Two invoices have credit notes applied. The chargeback invoice remains open with a note. Platform fees (£307.38 + £20.00), refunds, and the chargeback reversal are all posted to the correct accounts, each with the Stripe payout ID in the reference field.
Total time for an experienced bookkeeper: 30–45 minutes for a 24-transaction payout. Multiply by weekly payouts and you’re looking at roughly 26–39 hours a year on this single reconciliation task.
Why The Conventional Shortcuts Break
Most UK founders do one of three things instead of the above, and all three create problems.
Reconciling the net payout to one invoice
Fast, but wrong. The net amount won’t match any single invoice. Xero will let you force the match, but the underlying invoices stay open and your accounts receivable balance is overstated until someone fixes it.
Using a Stripe-to-Xero sync tool
Tools like Stripe’s native Xero integration or third-party sync apps push transactions automatically. They handle clean charges well. They handle refunds inconsistently. Chargebacks typically require manual intervention because dispute handling isn’t standardised across integrations. The sync gives you a head start, but you still need to know the underlying process to fix what it gets wrong.
Letting bank rules handle Stripe deposits
A bank rule that codes all Stripe deposits to sales income posts the net figure as revenue, which means your revenue figure is understated by every fee and chargeback you ever receive. HMRC doesn’t distinguish — if your accounts show net-of-fees income, that will surface as an issue. The Xero bank rules vs AI comparison goes deeper on why rules fail at exactly this kind of payout scenario.
The correct process — clearing account, individual invoice matching, explicit fee posting, credit notes for refunds, bad debt for chargebacks — is more steps, but each step corresponds to a real accounting event. There are no shortcuts that preserve the audit trail.
Takeaway
- A Stripe payout is a net figure: gross charges minus refunds, chargebacks, and platform fees. You must decompose it before you can reconcile it.
- The correct structure is a Stripe clearing account in Xero — gross receipts land there, deductions post from there, and the net transfers to your real bank account.
- Platform fees go to your payment processing fees account (ask your accountant which nominal code applies — do not guess). Chargebacks go to your bad debt account and leave the underlying invoice open.
- Refunds require credit notes against the original invoices, not just a negative transaction in the bank feed.
- Reconciling the net bank line without decomposing it first leaves fees unposted, invoices open, and a year-end clean-up job for your accountant — which costs more than doing it right each month.
Get on the list
Reconciling a weekly Stripe payout the right way takes 30–45 minutes every time. TheBookkeeper.ai does it overnight: it fetches the Stripe payout report, matches every charge to its Xero invoice, posts fees and chargebacks to the correct accounts, and reconciles the bank line — flagging only the transactions that genuinely need a human call. Get on the waitlist if you want your Thursday morning back.
Sources:
Frequently asked questions
Do Stripe fees show as a separate transaction in my Xero bank feed?
No. Stripe deducts its processing fees before transferring the net payout to your bank, so they never appear as a separate bank line. You must post them manually as a spend money transaction from your Stripe clearing account to a payment processing fees nominal code — your accountant will confirm the correct code.
Should I set up a separate bank account in Xero for Stripe?
Yes, and it is the step most people skip. Create a current-account type bank account called "Stripe Clearing" in Xero. Gross receipts land there, fees and refunds post from there, and only the net payout transfers to your real bank account. Without it, you end up double-counting or chasing rounding differences you cannot easily explain.
How do I handle a Stripe refund in Xero without breaking the audit trail?
Raise a credit note against the original invoice for the refunded amount, then mark the credit note as paid from your Stripe clearing account. Do not simply post a negative line in the bank feed — that leaves the original invoice still showing as paid and misrepresents your accounts receivable balance.
What account should Stripe chargebacks go to in Xero?
Post the chargeback amount as a spend money transaction from your Stripe clearing account to your bad debt nominal account. Also post the £20 dispute fee Stripe charges to your payment processing fees account. Leave the underlying invoice open — the debt was not collected — unless your credit policy is to write it off entirely.
How long does it take to reconcile a Stripe payout manually each month?
An experienced bookkeeper typically spends 30–45 minutes on a single payout containing around 20–25 transactions. That adds up to roughly 26–39 hours a year if you receive weekly payouts. Automated services like TheBookkeeper.ai can handle the matching, fee posting, and bank reconciliation overnight, flagging only genuine exceptions for human review.
Want this running on your Xero?
We're running a private beta for UK Xero users. Get on the list and we'll show you what reconciled-by-morning looks like on your books.