Back to blog
28 May 2026 · 8 min read

How to Reconcile Shopify Payouts in Xero

Shopify pays you one net figure, but your books need gross sales, refunds, and fees posted separately. Here's how to do it correctly in Xero.

Reconciliation Xero UK Bookkeeping

One number lands in your bank account. Behind it sits a month’s worth of orders, a handful of refunds, and transaction fees Shopify has already deducted before the transfer left their system. Xero sees the single deposit. Your accountant needs to see three or four distinct accounting events — and if you just click “OK” on the bank feed and move on, none of those events get recorded correctly.

This is the Shopify payout reconciliation problem. It’s not exotic — every UK Shopify merchant using Xero runs into it — but it’s stubborn, and it quietly corrupts your books every single week until someone cleans it up.

What a Shopify Payments Payout Actually Contains

What the net deposit includes

When Shopify Payments settles to your bank account, the single deposit figure is the result of several deductions already made by Shopify:

What hits your Barclays or Starling account is the net: gross sales minus all of the above. Shopify’s payout report (available at Finances > Payouts in your Shopify admin, exportable to CSV) shows you the breakdown — but Xero’s bank feed sees only the final number.

VAT timing and payout period

UK payout timing is typically five to seven business days after the sale, which means a single payout may span orders from different days, different product categories, and different VAT treatments. HMRC expects you to account for VAT on gross sales, not the net payout — so you cannot simply match the deposit to a revenue figure and call it done.

The Problem Xero’s Bank Feed Creates

The unreconciled deposit in your bank feed

Your bank feed shows something like this on a Wednesday morning:

Date         Description              Spent    Received    Status
11 Jun 2026  SHOPIFY PAYMENTS                  £4,218.43   Unreconciled

Xero’s automatic reconciliation — JAX, the Anthropic-powered matching layer — is good at clean lines: a standing order that matches a supplier bill, a BACS payment that ties to a single invoice. The £4,218.43 Shopify deposit is not a clean line. There is no single invoice in Xero for £4,218.43. The amount is a net figure that Xero has no way to decompose on its own because the decomposition lives on Shopify’s servers, not in your bank data.

Why JAX can’t match the line

So JAX passes on it. The line sits unreconciled. You have three unsatisfying choices: click through anyway (which leaves fees unposted and produces wrong revenue figures), ignore it until month-end (where you’ll have several of these queued up), or sit down with the Shopify payout report and post it manually.

Why The Conventional Approaches Break Down

Xero bank rules

Xero’s own bank rules can be configured to auto-code a Shopify deposit to a revenue account when the description matches “SHOPIFY PAYMENTS.” But a bank rule posts the whole £4,218.43 to revenue. The fees are never expensed. The refunds are never recognised as reductions. Your gross revenue is understated and your expenses are overstated — two errors that compound over a trading year and take an accountant time to unwind at year-end. (See also: what your accountant fixes at year-end — Shopify mis-postings are on that list more often than you’d think.)

The manual approach

The manual approach is accurate but slow. You download the Shopify payout CSV, open Xero, create a receive money transaction against the bank line, and build the split: gross sales to your revenue account (4000 or equivalent), transaction fees to your payment processing fees account (typically 7900), and refunds back out through either a credit note or a contra line. On a payout covering 80 orders with 12 refunds, that takes 20 to 40 minutes. Weekly payouts mean the task recurs every seven days.

App-based integrations

App-based integrations (Link My Books, Reconcile.ly, and similar tools on the Xero App Store) automate the decomposition and push summary journals into Xero automatically. They’re a legitimate option for high-volume merchants. They do still require initial configuration, ongoing mapping management, and a monthly subscription — and they work best when your Shopify setup is stable. A new product category, a gift card redemption, or a merchant cash advance deduction can break the mapping silently until your accountant spots it.

A human bookkeeper

A human bookkeeper handles all of this well. They read the payout report, understand the structure, and post the split correctly every time. At £30–60 per hour for qualified UK bookkeeping, it’s a real cost when the task repeats weekly. What a bookkeeper costs in the UK in 2026 covers the full picture — but for a Shopify merchant doing moderate volume, this is often the line item that tips the decision toward automation.

How Shopify Payout Reconciliation Should Actually Work

The correct posting for a Shopify payout in Xero has three or four components, depending on whether refunds occurred in the period.

Gross sales

Gross sales post to your trading revenue account — typically 4000 in a standard Xero chart of accounts. If you sell products with different VAT treatments (standard-rated vs. zero-rated), the gross sales need to be split by VAT code at this stage. Getting this wrong is the most common VAT error on Shopify accounts.

Transaction fees

Transaction fees post as an expense — typically to 7900 (Payment processing fees) or a similarly named account. These are a real business cost and reduce taxable profit. They should not be netted against revenue.

Refunds

Refunds reduce your revenue. The cleanest approach in Xero is a credit note against the original invoice if you raised sales invoices, or a negative line in the receive money transaction if you’re using the summary journal approach. Either way, refunds need to be explicitly recognised — posting only the net-of-refunds figure to revenue understates both gross sales and the cost of returns.

Chargebacks

Chargebacks, if any occurred in the period, need separate treatment. A chargeback is a reversal of a completed sale — the revenue needs to be reversed and the chargeback fee (a separate line on the Shopify payout report) posted as an expense.

The bank reconciliation match in Xero ties all of these together against the single deposit line, so the bank account reconciles to zero on that line and every underlying accounting event is correctly recorded.

Worked Example

All figures representative; company name anonymised.

The scenario. Amber Starling Ltd is a UK homeware brand selling via Shopify, VAT-registered, on the Shopify Grow plan. Their Wednesday payout from Shopify Payments settles into their Monzo Business account for £4,218.43. The underlying Shopify payout report shows:

  • Gross sales: £5,102.00 (38 orders, all standard-rated for VAT purposes)
  • Refunds: -£318.00 (4 returned orders, full refund in each case)
  • Transaction fees: -£556.07 (1.7% + 25p × 38 orders, applied to gross before refunds)
  • Chargeback deduction: -£9.50 (one disputed order, including the Shopify chargeback fee)

Net payout: £4,218.43

The Xero state before.

The Monzo bank feed shows one unreconciled line for £4,218.43. In Xero’s chart of accounts: account 4000 (Sales), 7900 (Payment processing fees), 8100 (Bad debts / chargebacks). No outstanding invoices — Amber Starling uses summary journals rather than raising per-order invoices in Xero, which is standard practice for high-volume e-commerce.

Date         Description                 Spent    Received    Status
11 Jun 2026  SHOPIFY PAYMENTS 6A4X29              £4,218.43   Unreconciled

What TheBookkeeper.ai does.

  1. Detects the unreconciled bank line via the Xero bank feed API.
  2. Fetches the matching Shopify payout report via the Shopify API using the payout reference. Returns the structured breakdown: gross charges, refund lines, fee lines, chargeback lines.
  3. Confirms VAT treatment — all 38 orders are standard-rated (20%), consistent with account history. No mixed-rate split required.
  4. Composes a receive money transaction in Xero, split across four lines:
    • £5,102.00 credit to 4000 (Sales) — gross order revenue, VAT code 20% (standard rated)
    • -£318.00 debit against 4000 (Sales) — refunds reducing gross revenue, VAT code 20%
    • £556.07 debit to 7900 (Payment processing fees) — transaction fees as an expense, VAT exempt (Shopify fees are a financial service)
    • £9.50 debit to 8100 (Chargebacks and disputes) — the disputed order and its fee
  5. The four lines net to £4,218.43 — matching the bank deposit exactly.
  6. Posts the receive money transaction to Xero and marks the bank line reconciled.
  7. Sends a morning notification: “Shopify payout £4,218.43 reconciled. 38 orders posted, 4 refunds recognised, fees to 7900. One chargeback (£9.50) posted to 8100 — check dispute status on order #1041.”

The Xero state after.

The Monzo line is reconciled. Account 4000 shows £4,784.00 net sales (£5,102 minus £318 refunds). Account 7900 shows £556.07 expensed. Account 8100 shows £9.50 for the chargeback. The VAT return picks up the correct gross figures. Your accountant sees a clean, annotated ledger.

What it flagged.

One item for review: the chargeback on order #1041. TheBookkeeper.ai posted the £9.50 correctly but noted that if the dispute is resolved in Amber Starling’s favour, the deduction will be reversed in a future payout. The notification includes the order reference so the decision takes one check, not a trawl through Shopify.

Takeaway

  • A Shopify Payments payout is a net figure — gross sales minus refunds, fees, and any chargebacks. Posting the deposit as a single revenue line overstates net revenue and leaves fees completely unrecorded.
  • Xero’s bank feed and JAX cannot decompose the payout on their own — the breakdown lives in Shopify’s payout report, not in the bank transaction data.
  • The correct Xero posting has at minimum three lines: gross sales to revenue, transaction fees to an expense account, and refunds back out against revenue. Chargebacks add a fourth line.
  • VAT must be calculated on your gross sales figures, not the net payout. HMRC’s position is clear on this — your VAT return should reflect what customers actually paid.
  • Bank rules can approximate this but silently mis-post fees and refunds every week — an error that accumulates until year-end.
  • Rule-based reconciliation works for simple, clean lines. Shopify payouts are not simple or clean.

Get on the list

We’re running a private beta for UK Xero users handling Shopify and similar platform payouts. If your Wednesday morning currently involves a payout report and a Xero journal, get on the waitlist and we’ll do it for you instead.


Sources:

Frequently asked questions

Why does my Shopify payout not match any invoice in Xero?

Shopify Payments settles a net figure — gross sales minus transaction fees, refunds, and any chargebacks — so no single invoice in Xero will match the deposit. You need to create a split receive money transaction that breaks the payout back into its components before Xero can reconcile the bank line.

Are Shopify transaction fees VAT-exempt in the UK?

Yes. Shopify's transaction and processing fees are classed as a financial service under UK VAT rules, so they are VAT-exempt. Post them to an expense account (such as payment processing fees) without a VAT code. Do not net them against sales revenue — they are a genuine business cost and should appear separately in your profit and loss.

Does a Xero bank rule work for Shopify payouts?

A bank rule can auto-code the deposit to a revenue account, but it posts the entire net amount as income. Transaction fees go unrecorded as an expense, and refunds are never recognised as revenue reductions. Both errors accumulate weekly and typically surface as adjustments at year-end, costing accountant time to unwind.

When should I account for VAT on Shopify sales — at payout date or order date?

HMRC expects VAT to be accounted for on the tax point of the original sale, not the payout date. Because a payout can span orders from different days, your VAT return should reflect the gross sales figures from those order dates. Posting only the net payout figure to your VAT return will understate the output tax you owe.

How do I handle a Shopify chargeback in Xero?

A chargeback reverses a completed sale: post the original revenue amount as a reduction against your sales account, and post any chargeback fee Shopify deducts to a separate expense account such as chargebacks and disputes. If the dispute is later resolved in your favour, Shopify will return the amount in a future payout, which you then post as income at that point.

Can TheBookkeeper.ai handle Shopify payout reconciliation automatically?

Yes. TheBookkeeper.ai connects to both the Xero bank feed and the Shopify Payments API, fetches the payout breakdown, posts the correct split transaction — gross sales, refunds, fees, and chargebacks — and marks the bank line reconciled, typically before you sit down in the morning. It is built specifically for UK Xero users processing Shopify and similar platform payouts.

Continue

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.