Stripe and Xero

Stripe into Xero, fees and all

A Stripe payout is one deposit covering dozens of charges, minus the fees and minus any refunds. We connect Stripe to Xero so the gross sale, the fee and the refund each land in their own account, which means the month reconciles instead of being unpicked by hand.

What goes wrong without it

A payout is not a sale

Stripe settles net, in batches, on its own schedule. Everything below follows from that, and each one leaves you with tidy-looking numbers that do not agree with your bank. If your bank reconciliation is out, everything downstream is out with it.

Income short by the fee The deposit is the sale minus Stripe's fee. Banked as income, revenue is understated and the fee never appears as a cost at all, so both halves of your profit figure are wrong.
One deposit, many charges A single payout can cover two days of trading, so nothing matches one to one and reconciling becomes a hunt through the Stripe dashboard.
Refunds hidden in a later payout A refund reduces a later payout instead of arriving as its own line. Unless the refund is separated out, that payout no longer matches the charges it covers.
What you get

A Stripe file that reconciles itself

Gross sales, Stripe fees and refunds split apart, so income is income and Stripe's fees are recorded as an expense, in cost of sales or in their own fees account
Payouts matched to the charges they actually cover, instead of banked as one lump
A refund comes out of your Stripe balance. If the balance is too small, Stripe takes the rest from the bank account it pays into. The refund is recorded when it happens, not backdated into the original sale's period
GST checked on every mapped account against your circumstances, never assumed
A full payout cycle reconciled against the bank before it is handed over
Whoever runs the file trained on it, and somebody to ring when a number looks wrong
Diagram of a Stripe sale dividing in two: the gross sale, which goes to income, divides into Stripe's fee, which goes to a cost account, and the payout, which is what is left and should hit your bank
Read down: the gross sale, less Stripe's fee, is the payout that reaches your bank.
How it works

Three steps, in this order

1 Agree the mapping before anything is switched on Where the gross, the fee, the refunds and the GST should land, decided first. Unpicking it later costs more than doing it once.
2 Connect it and run a real payout cycle The connection configured, then watched across a full payout cycle, so you see the gross, the fee and the net arrive separately rather than take our word for it.
3 Reconcile before we hand it over You do not get left with a live connection until a full payout cycle reconciles against the bank.
When the standard connection stops short

Where the connector ends, we build

Stripe's own Xero connection brings the data across, and for many businesses that is enough. It stops being enough the moment your reporting needs something the connector was never asked to know. That might be which job a payment belongs to, which entity or location it came from, or which product line it should sit under.

Where a platform has no Xero connector at all, or the one it has cannot code a transaction the way your business reports, we build the connection that can. Everything we automate arrives in Xero as a draft for a person to review and approve, because ownership of what reaches your ledger stays with you.

Coding the connector cannot reach Tracking categories, jobs, locations or product lines carried onto the transaction, so a report by any of them can be relied on.
The platforms with no connector at all Practice software, order systems and CRMs that Xero has never been introduced to. If the data follows a pattern, the pattern can be automated.
Spreadsheets, email and folders of PDFs An invoice that arrives as an attachment, or a spreadsheet somebody maintains by hand, turned into coded draft invoices without anyone retyping them.
A person still approves it Nothing posts itself. Every automated transaction lands as a draft for review, so a human owns what enters the ledger.

If somebody is still opening the Stripe dashboard to work out where a number belongs, that is worth a conversation.

Zsuzsa, Nikoletta, Jitka and Joanna of NN Accountability, from left to right, together in the office
From left: Zsuzsa, Nikoletta, Jitka and Joanna
One business, before and after

Stripe sales counted twice

A business taking its customers' payments through Stripe.

Before The Stripe payouts were reconciled in Xero as received money, and the invoices for the same sales were also marked as paid. Each sale was counted twice, so both income and GST were overstated.
What we changed We set up a separate Stripe feed in Xero, so each payment is matched to the invoice it pays, and bank rules for Stripe's fees, so nobody has to code them by hand from each payout.
After No sale is counted twice. Every payment is matched to its own invoice, and the feed and the fees run on bank rules.
Questions we answer every week

Questions we are asked most

How do you reconcile Stripe payments in Xero? By matching each payout to the charges it actually covers, rather than treating the deposit as a single sale. The gross goes to income, Stripe's fee goes to a cost account, refunds are recorded when they happen, and what is left is the figure that should hit your bank. When those three agree, the payout reconciles on its own. Our guide to reconciling Stripe payments in Xero explains it.
Does Stripe's own Xero connection not already do this? It brings the data across, which is the easy half. Whether the gross, the fee and the refund land in the right accounts, and whether a payout reconciles against the bank, depends entirely on how it is mapped. The mapping is the work. And where the mapping cannot get there, because the coding your reporting needs is beyond what the connector carries, we build the connection that can.
What about GST on Stripe's fees? It is decided against your circumstances and checked, rather than left at whatever the integration defaults to. Getting it wrong is quiet, and it carries into every activity statement afterwards, which is exactly why it is agreed before anything is switched on rather than found later.
The free Xero Health Check from NN Accountability
The free checklist

Download Your FREE Xero Health Check

Identify common bookkeeping errors and discover simple fixes for smoother financial management, written in plain English.

By downloading, you agree to receive occasional Xero tips by email. Unsubscribe any time. Our privacy policy explains how we handle your details.

Download Your FREE Xero Health Check Now

Identify common bookkeeping errors and discover simple fixes for smoother financial management.

By downloading, you agree to receive occasional Xero tips by email. Unsubscribe any time. Our privacy policy explains how we handle your details.