Why your Shopify and Xero numbers don't match (and how to fix it)
myclever AI Team · Content Team · small-business · 6 min read
Shopify says one number. Xero says another. Here are the seven most common reasons your totals do not match, and exactly how to fix each one.
Almost every Shopify merchant who uses Xero hits the same problem. The numbers do not match.
Shopify shows £20,000 in sales last month. Xero shows £19,400. Or £20,300. Or three different numbers depending on which report you run. By the time you have figured out the difference, it is the end of the day and you still do not know which one is right.
The good news is that the explanation is usually simple. The fix is usually simple too. But getting there means understanding where the gaps come from.
## The seven most common reasons
There are usually seven reasons the numbers diverge.
The first is fees. Shopify reports gross sales. Xero often only sees the net payout after Shopify Payments, Stripe, or PayPal have taken their fee. Unless fees are being recorded as a separate expense, the totals will not match by definition.
The second is refunds. Shopify reports refunds against the period of the original sale. Xero usually records them in the period the refund was processed. If a sale happened in March and was refunded in April, Shopify will show the impact in March, Xero in April.
The third is timing. Shopify shows orders by order date. Xero shows transactions by payment received date or payout date. For card payments, the difference can be one or two days. For some payment methods, longer.
The fourth is taxes. Shopify and Xero handle VAT and sales tax differently. If your tax mapping is off, the totals will appear to disagree even when both are technically correct.
The fifth is currency. If you sell in multiple currencies, Shopify shows totals in the customer's currency or your store's base currency. Xero shows them in your accounting currency at the exchange rate applied on the payout date. Mismatch is guaranteed.
The sixth is gift cards. Gift cards are revenue when redeemed, not when sold. Shopify and Xero often disagree on the timing depending on how the integration is configured.
The seventh is shipping and discounts. These are often recorded as separate line items in Xero but bundled into the sales total in Shopify. Unless the mapping accounts for this, the headline numbers will not align.
## How to actually fix it
The right approach depends on volume.
For low-volume stores, the fix is a monthly reconciliation routine. You export the relevant reports from Shopify, identify which of the seven causes is creating the gap, and adjust the journal entries in Xero. This is manual but workable.
For mid-volume stores, the native Shopify-Xero integration handles most of these automatically. You still need to configure the mapping correctly, particularly for fees, refunds, and tax, but once it is set up, most differences disappear.
For higher-volume stores, or anyone selling in multiple currencies, a dedicated connector like A2X, Synder, or Link My Books is worth the cost. These tools are built specifically for this problem and handle the seven causes above as their default behaviour.
We covered the full picture of getting Shopify and Xero properly connected in [how to connect Shopify and Xero](/blog/how-to-connect-shopify-and-xero), and the broader principle of joining your tools together in [data integration for small businesses](/blog/data-integration-for-small-business).
## The check that confirms it is fixed
The simplest test of whether your reconciliation is right is the bank balance.
If you take your opening Xero bank balance, add the net payouts received from Shopify, subtract the bank fees and chargebacks, and the result matches your closing bank balance, your numbers are reconciled.
If they do not match, one of the seven causes above is still unresolved. Work through them in order. The fee and timing differences will explain the majority of cases.
## What changes once it is fixed
Reconciled numbers are useful for the obvious reason. Your accounts are accurate. Your tax filings are correct. Your monthly reporting is trustworthy.
They are also useful for a less obvious reason. Once the basic data is right, the patterns inside it become readable.
Your true margin per product, net of fees. Your real refund rate over time. The actual contribution of each sales channel. The drift in average order value. These signals are invisible while the underlying data is unreliable. Once it is fixed, they become the most useful part of the system. We explored what to look for in [ecommerce goal setting and revenue growth](/blog/ecommerce-goal-setting-increase-online-sales-revenue).
Most businesses do the reconciliation work and stop there. The numbers tick. The accountant is happy. The patterns sitting inside the data are never read.
myclever AI is built for that next step. Once your Shopify and Xero data is clean, it reads the two together and turns the patterns into a ranked weekly action plan. Explore how at [/features](/features).