How to reconcile Stripe payouts in Xero (without losing your mind)
Stripe is a brilliant payment processor, but its payouts are where most ecommerce books fall apart. A single payout that hits your bank for £4,378.21 might represent 87 successful charges, 4 refunds, 3 chargebacks, 162 separate Stripe fees, and a small currency conversion adjustment. This guide walks through the reconciliation workflow that keeps all of that matching cleanly in Xero — no spreadsheets, no manual journals, no end-of-quarter panic.
Why Stripe payouts break standard bookkeeping
If you take payments through Stripe, here's what actually happens. A customer pays you £100. Stripe holds it briefly, takes their fee (roughly 1.5% + 20p for UK cards, more for international), and adds the net to your Stripe balance. A day or two later — depending on your payout schedule — Stripe takes everything in your balance and sends a single bank transfer to your business account.
That bank transfer is the only thing your accounting software sees through the bank feed. It might be £4,378.21. But behind it sits dozens or hundreds of individual transactions, each with its own gross amount, its own Stripe fee, and possibly its own refund or chargeback. If you reconcile that single £4,378.21 line as "Stripe income", you've made the books balance — but you've thrown away every piece of useful information about your sales.
The job of proper Stripe bookkeeping is to break that bundled payout back apart, post the gross sales as revenue, the fees as an expense, and any refunds/chargebacks correctly — so your P&L actually reflects what's happening.
The honest reality: If Stripe is more than a small fraction of your revenue, you genuinely cannot do this manually month after month. You need either Stripe's native Xero integration or a third-party tool like A2X for Stripe. Trying to do it by hand from CSV exports is how bookkeepers burn out.
The two approaches: Stripe-Xero feed vs A2X for Stripe
There are two genuinely viable approaches to Stripe-in-Xero reconciliation. They both work, but they suit different kinds of businesses.
Option 1: Stripe's native Xero integration
Stripe has a built-in connection with Xero. You connect them, and every individual Stripe transaction syncs into Xero as a separate line in a clearing account. When the payout arrives in your bank, you reconcile it against the matching transactions in the clearing account.
Pros: free, full transaction-level detail, granular reporting on individual customers and invoices.
Cons: creates an enormous volume of Xero transactions (one per Stripe charge — easily thousands per month for a busy business), can slow Xero down, and reconciliation is line-by-line rather than summary-level. Best for businesses doing fewer than ~200 transactions per month.
Option 2: A2X for Stripe
A2X for Stripe works the same way A2X works for Amazon or Shopify. Instead of syncing every individual transaction, A2X reads the Stripe payout report, breaks it into summary categories (Sales, Refunds, Stripe Fees, Chargebacks, etc.), and posts a single clean journal to Xero per payout period.
Pros: dramatically less clutter in Xero, faster reconciliation, cleaner P&L, scales to any volume.
Cons: roughly £15–£35/month subscription, less granular if you need to investigate individual customers from inside Xero (you'd go to Stripe's dashboard for that).
For most ecommerce sellers doing more than 200 transactions per month, A2X for Stripe is the cleaner setup. For invoice-based service businesses with maybe 30 Stripe charges per month, the native Stripe-Xero integration is fine and saves the subscription cost.
Chart of accounts setup for Stripe
Whichever approach you pick, you need the right accounts in Xero before you connect anything. Here's the structure:
Revenue accounts
- Stripe Sales (or just Sales if Stripe is your only payment processor)
- Stripe Refunds (a contra-revenue account — this reduces revenue rather than being an expense)
Expense accounts
- Stripe Processing Fees
- Stripe Chargebacks & Dispute Fees
Balance sheet accounts
- Stripe Clearing Account (current asset) — this is the critical one. It represents money sitting in your Stripe balance that hasn't yet been paid out to your bank. Sales hit this account first, then payouts move it to your bank.
The Stripe Clearing Account is what makes the whole system work. Sales go in, fees and refunds come out, payouts to your bank empty it. At any point in time, the balance of this account should equal your current Stripe balance — which you can verify by logging into Stripe.
The monthly reconciliation workflow
Once everything is set up, the recurring workflow is genuinely simple. Here's the sequence:
1. Let A2X (or the Stripe-Xero feed) post the journals
Each payout period, A2X reads Stripe's data and posts a journal that debits your bank, credits the Stripe Clearing Account, and breaks out fees and refunds correctly. Review and approve.
2. Match the bank deposit
The actual Stripe payout hits your business bank account. The bank feed picks it up. You match it against the corresponding A2X journal in Xero. Amounts should match to the penny.
3. Verify the Stripe Clearing Account balance
At month-end, check that the balance of your Stripe Clearing Account in Xero equals your Stripe dashboard balance. If they match, your books are clean. If they don't, there's an unposted transaction or a categorization error to investigate.
One client doing roughly £40k/month through Stripe came to us after their previous bookkeeper had been reconciling Stripe payouts as a single revenue line for eight months. Their P&L showed revenue of £320k for the year. Once we backed out the Stripe fees that had been hidden inside revenue and properly categorised refunds as contra-revenue rather than expenses, the actual gross revenue was £337k — and the gross margin looked completely different. Eight months of decisions had been made on incorrect numbers.
Refunds, chargebacks, and disputes
This is where most setups go wrong. Stripe doesn't treat refunds, chargebacks, and disputes the same way, and your bookkeeping shouldn't either.
Refunds
A refund is a customer-initiated reversal of a sale. The original Stripe fee is partially refunded by Stripe (the percentage portion, but not the fixed fee). Refunds should reduce revenue (post to a contra-revenue account, not as an expense). This makes refund rate visible on the P&L.
Chargebacks
A chargeback is a card-network-initiated reversal — the customer disputed the charge with their bank. Stripe charges you a chargeback fee (currently £15–£20 per chargeback) on top of returning the original amount. Both the returned amount and the chargeback fee should sit in their own accounts so you can see the cost of fraud and disputes separately from regular refunds.
Disputes still in process
If a chargeback is currently being disputed (i.e. you're contesting it with evidence), Stripe holds the funds but hasn't lost them yet. The accounting treatment depends on whether you expect to win — conservatively, you'd record the loss now and reverse it if you win. Aggressive accounting would defer recognition until the dispute resolves. Pick a policy and stay consistent.
Multi-currency Stripe accounts
If you accept payments in multiple currencies — say USD and GBP — Stripe will hold separate balances per currency and pay them out separately. Each balance needs its own clearing account in Xero, or your reporting will be a mess.
The typical setup:
- Stripe Clearing Account — GBP
- Stripe Clearing Account — USD
- Stripe Clearing Account — EUR
You'd also enable multi-currency in Xero (requires Standard or Premium plan). Each clearing account holds its native currency. Foreign exchange gains and losses post to a separate account when balances are converted.
Stripe's currency conversion rate is broadly competitive but not as good as services like Wise or Revolut. If you have meaningful international revenue, it's often worth keeping foreign currency balances separately and converting in larger batches at better rates.
Common mistakes
Reconciling payouts as a single revenue line
The single biggest error. As covered above, this throws away every piece of useful financial information. Even small businesses should break out fees and refunds.
Not having a Stripe Clearing Account
Without a clearing account, you can't reconcile mid-payout-cycle. If month-end falls between when Stripe collected sales and when it paid them out, your books will look wrong because the cash is in flight.
Posting Stripe fees as bank charges
Stripe fees are processing fees, not bank charges. They're a different kind of expense and benchmarking them against bank charges (which are typically near zero) makes Stripe fees look enormous and distorts your operating costs analysis.
Ignoring chargebacks until they're old
If you're getting frequent chargebacks, that's a signal — either fraud is finding you, or your customer experience needs work. Properly categorised chargebacks make this visible monthly. Buried in "Stripe transactions" they're invisible until year-end.
Mixing Stripe with other payment processors in the same accounts
If you also use PayPal, Square, or Klarna, each needs its own clearing account and its own fees account. Otherwise you can't tell which processor is most expensive or which is sending you the most chargebacks.
This is where most service businesses call us. Stripe-in-Xero looks simple at first, then gets complicated as soon as refunds and chargebacks start happening. Book a free 20-minute review if you'd like a second opinion on how your current setup is working.
When to get help
For very simple Stripe usage — a service business taking 20-30 invoice payments a month, no refunds, no international — the native Stripe-Xero integration plus 30 minutes of monthly reconciliation is fine to do yourself.
Once you cross any of these thresholds, professional setup pays for itself fast:
- Multi-currency Stripe (different currencies have different fee structures)
- More than ~200 transactions per month
- Regular refunds (more than a handful per month)
- Multiple Stripe accounts (for example, one for the UK entity, one for the US entity)
- Subscription billing through Stripe Billing (recurring revenue accounting has its own rules)
- Marketplace use of Stripe Connect (paying out to third parties)
Each of these adds layers of complexity that compound. Done right at setup, the monthly workflow stays simple. Fixed badly six months in, the cleanup is significant.