Stripe

How to reconcile Stripe payouts in Xero (without losing your mind)

By Md. Nasir Uddin FCA · 26 April 2026 · 7 min read

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

Expense accounts

Balance sheet accounts

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.

Real example

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:

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:

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.

Md. Nasir Uddin FCA

Md. Nasir Uddin FCA

Fellow Chartered Accountant. Silver Xero Champion. Ex-KPMG. We've set up Stripe reconciliation for dozens of ecommerce, SaaS, and service businesses across the UK, US, and beyond.

More about us →