Shopify Xero Integration: Sync Sales, Fees and Stock [2026]

Learn exactly what the Shopify integration by Xero syncs, what it leaves out, how to set it up step by step, and how to handle inventory across every channel you sell on.

by OneCart Team
Aug 8, 2026 15 min read

Connecting Shopify to Xero is one of the highest-return hours a growing store owner can spend. Done properly, every day’s sales, refunds, gateway fees and payouts land in your books on their own, your bank reconciliation stops being a monthly ordeal, and you get a live read on margin instead of a guess. Done badly, or not at all, you end up exporting CSVs at midnight and arguing with your accountant about why the Shopify payout in the bank does not match the revenue in the ledger.

The good news is that Xero now ships its own free Shopify connector. The part most guides skip is what that connector deliberately does not do. This guide covers what the Shopify integration by Xero actually syncs, the three gaps it leaves open, how to set it up step by step, which sync mode to pick, and where you need something more once you sell on more than one channel. If you are on a different accounting stack, we have separate guides for QuickBooks ecommerce integration and for NetSuite and Shopify.

Why Connect Shopify to Xero at All?

Shopify is a commerce platform. Xero is your general ledger. Neither one is trying to be the other, and the space between them is where most small ecommerce finance problems live.

Without a connection, the working day looks like this. Shopify records a sale of $120. Shopify Payments takes its cut, holds the money, then deposits a lump sum of several days’ orders into your bank account, net of fees and minus any refunds issued in that window. Your bank feed in Xero shows one number. Nothing in Xero knows what that number is made of. Somebody has to take it apart by hand.

Multiply that by every payout, every gateway and every refund, and three predictable problems appear:

  • Reconciliation debt. The bank line and the sales records never match on their own, because the deposit is net of fees and refunds. Left alone, this compounds until month-end close takes days instead of hours.
  • Invisible fee leakage. Payment processing fees, app subscriptions and shipping charges are real costs of goods sold. If they are never posted properly, your reported gross margin is flattering and your pricing decisions are built on it. Our Shopify fee calculator shows how much of a typical order those fees actually take.
  • Stale numbers. Cash flow forecasting is worthless if the ledger is three weeks behind the store. Most owners discover a cash problem long after the decision that caused it.

The point of connecting Shopify and Xero is not to save data entry. It is to make yesterday’s trading visible today, while you can still do something about it.

Actionable Insight: Before you connect anything, decide who owns the reconciliation. An integration makes a good process fast and a bad process fast to get wrong. If nobody is reviewing the daily entries, automation just produces a tidier mess.

What the Shopify Integration by Xero Actually Does

Xero built and maintains its own Shopify connector, listed on the Xero App Store as “Shopify integration by Xero”. This is the one Xero points customers at from its own Shopify partnership page, and it is the sensible default for most stores.

Here is what Xero says it does, feature by feature:

CapabilityWhat it means in practice
Sales syncShopify sales transactions flow into Xero automatically each day, either as a daily summary or as individual per-sale transactions
Payout matchingPayouts from Shopify Payments and other gateways are matched to your bank account, with fees, refunds and taxes handled as part of the entry
Fee visibilityShopify Payments and PayPal transaction fees are broken out rather than buried inside a net deposit
POS includedShopify POS sales sync alongside your online store, so in-person and online revenue land in the same ledger
Tax mappingShopify taxes can be mapped to Xero tax rates or to liability accounts
Historical backfillUp to 90 days of historical data can be synced when you first connect
PriceFree on all Xero plans, per Xero’s own app listing

At the time of writing the app carries a 4.5 out of 5 rating from 46 Xero users, which is a fair reflection of it: solid at the reconciliation job it was built for, and a source of frustration when people expect it to do things it was never designed to do.

That last point is the whole reason for the next section.

The Three Gaps: Inventory, Products and Sales Tax

Read Xero’s own description of the integration closely and you will notice what it covers: sales, payouts, fees and taxes. Money in, money out, matched to the bank. That is the entire remit.

Gap one: it does not sync stock levels. Nothing in the connector adjusts inventory quantities. If you are selling the same SKU on Shopify and anywhere else, the integration will not help you keep those counts aligned, and it will not stop you selling stock you no longer have. If you have never had that go wrong, our guide on what a stockout costs is a preview of what it looks like when it does.

Gap two: it does not manage your product catalogue. Product data, variants, SKUs, images and descriptions are not part of the sync. Xero is not a product information system and does not pretend to be.

Gap three: US sales tax is not handled. Xero states this plainly on its Shopify page: the integration imports a summary of sales and purchases but does not account for sales tax in the US, and sales tax data needs to be downloaded directly from Shopify for reporting and filing. If you have nexus obligations across multiple states, the connector is not your compliance solution and you should not treat it as one.

None of these are defects. They are scope decisions. The connector is an accounting bridge, and an accounting bridge is what it is very good at.

Actionable Insight: Write down which of the three gaps actually applies to you before you shop for extra tools. A single-channel UK store with one warehouse can live inside the native integration indefinitely. A seller running Shopify plus two marketplaces cannot, and no amount of accounting automation will fix that.

How to Set Up the Shopify Xero Integration, Step by Step

The setup runs from the Xero side, not the Shopify side. Budget twenty minutes for the connection itself and rather longer for the chart of accounts decisions, which are the part that actually matters.

Step 1: Get your chart of accounts ready first. Before you connect anything, make sure Xero has sensible accounts waiting for the data: a sales account for Shopify revenue, an expense account for payment processing fees, an account for shipping income, one for refunds and discounts, and a clearing or holding account for the gateway. Connecting first and tidying later means unpicking entries that have already posted.

Step 2: Open the Xero App Store and install the app. Log in to Xero, go to the Xero App Store, search for Shopify integration by Xero, and select Get this app. Xero’s own instructions for this are on Xero Central. If you do not have Xero yet, you will need an organisation set up before the connector has anywhere to send data.

Step 3: Authorise the connection to your Shopify store. You will be redirected to link your Shopify and Xero accounts and asked to approve access. Do this from an account with admin rights on both sides, not a staff login, or you will hit permission errors partway through.

Step 4: Choose your sync mode. This is the one setting people regret. You are choosing between a daily summary and individual per-sale transactions, and the trade-off is covered in the next section. Decide deliberately.

Step 5: Map your accounts and tax rates. Point Shopify revenue, fees, shipping, refunds and discounts at the accounts you prepared in step one, and map Shopify’s tax lines to the right Xero tax rates or liability accounts. Get this wrong and every subsequent entry inherits the error.

Step 6: Backfill your history, carefully. The integration can pull up to 90 days of historical data. Only do this if the period you are importing has not already been reconciled by hand. Importing over manually entered transactions is the fastest way to create duplicates.

Step 7: Reconcile the first payout end to end. Take one complete payout, trace it from Shopify orders through fees and refunds to the deposit in your bank feed, and confirm it balances. If the first one reconciles cleanly, the mapping is right. If it does not, fix the mapping now, not after three weeks of entries.

Actionable Insight: Xero has partnered with Amaka to provide setup support for this integration, so if the account mapping is beyond your comfort level, that help exists and is worth using rather than guessing at your own tax codes.

Daily Summary or Per-Sale Transactions? Choosing a Sync Mode

The connector lets you sync a daily summary or a separate transaction per sale, and this single choice determines what your Xero organisation feels like to work in for the next several years.

Daily summaryPer-sale transactions
What posts to XeroOne consolidated entry per day, per payment gatewayOne transaction per order, with customer and line-item detail
Best forHigher-volume stores that want a clean, fast ledgerLower-volume or high-value stores that need order-level visibility in the books
ReconciliationFast, since you match a summary to a payoutMore granular, but far more lines to work through
Xero performanceStays light even at volumeLedger grows quickly with order count
Trade-offYou lose per-order detail in XeroYou gain detail you may already have in Shopify

For most stores past a few dozen orders a day, daily summary is the right default. The per-order detail already exists in Shopify, which is the better place to analyse it, and pushing thousands of individual transactions into an accounting ledger makes Xero slower to work in without answering a question Shopify cannot already answer.

Choose per-sale transactions when the order-level record genuinely belongs in the ledger: low volume with high value per order, B2B-style sales where you need the customer on the transaction, or an accountant who has asked for it specifically.

Ask what question you will be answering in Xero. If the answer is “how did the business trade”, the summary is enough. If it is “what did this specific customer buy”, you are asking Shopify’s question in the wrong system.

Actionable Insight: Switching modes later is disruptive because the two produce structurally different histories. Pick based on where you expect to be in a year, not where you are this month.

Where Xero’s Inventory Stops and Multichannel Begins

Xero does have inventory. Its inventory management feature tracks items you buy and sell, keeps stock levels current, and populates invoices and purchase orders. Xero states it handles up to 4,000 items. For a single-channel store with a modest catalogue, that is genuinely enough.

Two things break it.

The first is catalogue size. Four thousand tracked items sounds generous until you count variants. A clothing line with 200 styles across five sizes and four colours is already at 4,000 SKUs from a catalogue most people would describe as small.

The second, and the one that actually causes losses, is channel count. Xero’s inventory is a record of what you own. It is not a synchronisation engine between the places you sell. The moment the same stock is listed on Shopify and on a marketplace, you need something that decrements every channel when a unit sells anywhere, and neither Xero nor the Shopify connector does that. This is the core problem omnichannel inventory management exists to solve.

This is where OneCart fits alongside Xero rather than against it. OneCart sits in front of your sales channels, holding one Item Master and one live stock position across Shopify, Shopee, Lazada, TikTok Shop, Amazon and the rest, so a sale on any channel adjusts availability everywhere. Xero stays where it belongs, as the system of record for the money. For the accounting handoff, OneCart connects to Xero directly. You authorise it from Reports > Finance > Finance Integrations, choose the Xero organisation to sync to, and map each shop to a Xero contact. Every order then becomes a draft invoice you review and approve before anything posts to your books, either on daily auto-sync, one order at a time with a preview first, or backfilled across a date range when you set up. Because every channel you connect feeds the same Xero organisation, your marketplaces reconcile into one set of books rather than one store at a time. Our Xero and Shopify integration page covers the setup, and our help centre also documents automated invoicing through Zapier or our public API for other accounting stacks.

The division of labour is worth stating plainly, because sellers routinely try to make one tool do both jobs:

  • Shopify owns the storefront and the customer experience.
  • OneCart owns stock, listings and orders across every channel.
  • Xero owns the ledger, the bank reconciliation and the reporting.

Actionable Insight: If you are evaluating whether you have outgrown the native setup, the test is not catalogue size or revenue. It is whether the same physical unit can be sold in two places. The day that becomes true, accounting automation stops being your binding constraint.

Six Mistakes That Break a Shopify Xero Integration

Almost every broken setup we see comes down to one of these.

Running two integrations at once. Sellers install the Xero connector, are not sure it is working, then add a second sync app as insurance. Both post. Every transaction now exists twice, and untangling it is far more work than the original problem. Pick one path and disable the other properly.

Backfilling over reconciled periods. The 90-day historical sync is useful on a fresh setup and destructive on top of months of hand-entered transactions. Check what has already been reconciled before you import anything.

Leaving the default account mapping. Defaults put revenue somewhere plausible and fees somewhere less so. If payment processing fees are not landing in a cost account you actually look at, your margin reporting is fiction. This is the same discipline that applies to every channel’s charges, which is why we keep a running breakdown of Shopify’s own fees.

Treating the connector as tax compliance. It is not, in the US, and Xero says so. Sales tax reporting still comes out of Shopify.

Assuming stock is covered. It is the single most common misreading of what the integration does. Sales sync is not stock sync.

Never reviewing the entries. Automation moves the work from data entry to exception handling. If nobody is checking the exceptions, the errors simply accumulate faster and more neatly than they used to. A fortnightly ten-minute review of unreconciled items catches nearly everything.

The failure mode is almost never the software. It is connecting it before deciding how the books should be structured, then inheriting whatever the defaults chose.

For a broader view of how these pieces fit together across a growing store, our guide to ecommerce accounting covers the wider process, and if TikTok Shop is part of your mix, the TikTok Shop Xero integration guide walks through the same problem on that channel.

Frequently Asked Questions

Is the Shopify integration by Xero free?

Yes. Xero’s app listing states the integration is free on all Xero plans, so the cost is your Xero subscription rather than a separate fee for the connector. You will still need an active Xero organisation and a Shopify store, and setup support through Xero’s partner is arranged separately.

Does the Xero Shopify integration sync inventory?

No. The connector syncs sales, payouts, fees and taxes. Stock levels and product data are outside its scope. Xero has its own inventory feature for up to 4,000 items, but that tracks what you own rather than synchronising availability between the places you sell. If you list the same SKU on more than one channel, you need a dedicated multichannel inventory layer for that job.

Can I connect Shopify to Xero without an app?

Technically yes, by exporting Shopify reports and importing or hand-entering them in Xero, and plenty of very small stores still do exactly that. It stops being viable somewhere around a few orders a day, because the payout-versus-revenue reconciliation is the slow part and manual entry does not make it faster. A middle path is running the connection through a platform that already sits across your channels: OneCart connects to Xero directly and turns each order into a draft invoice for you to approve, which is the same job the native connector does but covering every channel you sell on rather than Shopify alone. If you would rather build the link yourself, our guide to ecommerce APIs covers what that involves.

How far back can I sync my Shopify history into Xero?

Up to 90 days when you connect. Anything older has to be handled another way, usually as summary journals prepared by your accountant. Do not import the 90 days blindly if some of that period has already been reconciled manually.

Should I use daily summary or individual transactions?

Daily summary for most stores, especially above a few dozen orders a day, because it keeps Xero fast and the per-order detail already lives in Shopify. Individual transactions make sense for low-volume, high-value or B2B-style selling where the customer and line items genuinely need to sit on the ledger entry.


Shopify and Xero together will keep your books clean. They will not keep your stock straight once you sell in more than one place. OneCart gives you a single live inventory and order view across Shopify, Shopee, Lazada, TikTok Shop, Amazon, Qoo10 and more, so a sale anywhere updates availability everywhere, and your Xero ledger keeps receiving clean data from a business that is no longer overselling. Start your free trial at getonecart.com and see your whole catalogue in one place.

Sync orders to your accounting in one click

OneCart pushes orders, inventory and customer data into Xero and QuickBooks automatically — no manual export needed.

Try OneCart free

Used by hundreds of merchants in Singapore & Southeast Asia