When the stock value in Cin7 or Unleashed doesn't match the inventory account in Xero or MYOB, the cause is almost always one of five things: sales and cost of goods sold landing in different periods, documents edited after they synced, voids or reversals that didn't flow through, manual journals posted straight to the inventory account, or sync errors nobody cleared. None of these is a fault in either product on its own. They happen in the gap between the two systems. A short inventory reconciliation each month, plus a few simple controls, keeps the two numbers together.
Why the two numbers drift apart
Your inventory system holds the detail: every item, every receipt, every shipment and its cost. Xero or MYOB holds one number on the balance sheet: the inventory asset account. The integration is meant to keep that one number equal to the total of all the detail. Here is where it slips.
Revenue and cost of goods land at different times
In Cin7 Core, revenue is recognised when the sales invoice is authorised, and the matching cost of goods sold is posted when the shipment is authorised. If you invoice on the 31st and ship on the 2nd, the sale is in one month and its cost is in the next. That sale looks like it made no cost at all, and next month carries a cost with no sale. The CFO-advisory firm GrowthPath points this out in its notes on the Cin7 Core and Xero integration (GrowthPath).
Unleashed and other inventory systems have their own timing rules. The point is the same: find out exactly which event posts the sale and which posts the cost, and check the gap at month-end.
Documents edited after they synced
A sales order is changed after its invoice went to Xero. A purchase is re-costed after the bill was paid. According to GrowthPath, once a payment is applied to a document in Xero, Xero won't accept changes to it, so the change causes a sync error on the Cin7 Core side. The inventory system now says one thing and the ledger another.
Voids and undos that don't flow through
GrowthPath also notes that voiding a document in Cin7 Core voids it in Xero only if no payment exists, and that undoing a document in Cin7 Core does nothing in Xero. Each one leaves a difference behind that someone has to find later.
Manual journals to the inventory account
This is the most common one. Someone posts a journal in Xero or MYOB straight to the inventory account: a stocktake adjustment, a write-off, an accountant's year-end correction. The inventory system never sees it. From that day the two numbers differ by exactly that journal. GrowthPath's advice is not to journal to the inventory account at all, and to post corrections to a separate variance account instead, because nothing in the Cin7 Core and Xero combination stops someone doing it.
Sync errors that sit there
Cin7 Core keeps a Xero synchronisation report that shows items that were skipped, are pending or failed. Unleashed has a similar export status view. If nobody checks it, failed transactions quietly pile up.
Mapping and set-up
If an inventory or cost of goods account is mapped wrongly, or GST codes don't line up between the two systems, the totals will never agree no matter how carefully people work.
A month-end inventory reconciliation, step by step
This takes an hour or two once it's routine. Do it in the same order each month.
- Clear the sync queue. Open the sync or export status report in Cin7 or Unleashed and fix every failed or pending item before you go further.
- Run the stock valuation report in the inventory system as at the last day of the month.
- Run the balance of the inventory account in Xero or MYOB at the same date. If you use a goods-received-not-invoiced account or a stock-in-transit account, run those too.
- Compare the totals. Write down the difference, even if it's small.
- List the manual journals posted to the inventory account during the month. Each one is a likely part of the difference.
- Check timing items. Invoices authorised but not shipped at month-end, and shipments without invoices. List them with their cost.
- Check edited, voided and undone documents for the month. Make sure each change reached the ledger.
- Explain the rest, then fix it at the source. Correct the inventory system where the detail is wrong, or post a correction to a variance account, not to the inventory account.
- Keep a one-page record of the difference and what explained it. Next month you'll see straight away if something new has appeared.
Controls that stop it happening again
- Lock the inventory account. Agree that only the integration posts to it. In Xero, you can't technically block journals to an account, so make it a written rule and check the journal list every month.
- Set a lock date in Xero or MYOB once a month is closed, so back-dated changes can't slip into a closed period.
- Don't edit after sync. If a synced document is wrong, reverse it and raise a new one, in the inventory system.
- Ship and invoice in the same period where you can, or report the timing items each month so everyone knows they're there.
- Name an owner for the sync report. One person checks it daily or weekly.
- Use an inventory accrual account for goods received before the supplier's bill. Cin7 Core supports this and recommends it. Our guide to the procure to pay process covers how buying, receiving and paying fit together.
When an app or a partner is enough
If you have one warehouse, a clean set-up and a bookkeeper who already reconciles stock monthly, you probably don't need anyone else. Cin7 and Unleashed both have partner networks that can fix account mapping and set-up.
The harder cases are the ones that sit across several systems: Cin7 or Unleashed plus Xero or MYOB plus an EDI feed, a freight system or a second entity. That's where we come in, with the reconciliation, the controls and reports that show margin from both systems together. See our inventory management consultant service and our page for wholesale and distribution businesses.
The technical side
For whoever looks after your systems: the integration typically posts invoices and bills as documents, and posts cost of goods and stock movements as manual journals. Check which journal types your integration creates, which accounts each one hits, and whether it can post into a prior period. GrowthPath notes that Cin7 Core can't always insert stock movements at an earlier date, which matters when a month has already been closed.
Frequently asked questions
Why is my Xero inventory account different from my Cin7 stock value?
Usually because of a manual journal to the inventory account, a document edited or voided after it synced, a sale invoiced in one month and shipped in the next, or a sync error that wasn't cleared. A month-end reconciliation finds which one.
Should I ever post a journal to the inventory account in Xero?
The safer rule is no. Fix the detail in the inventory system, or post corrections to a separate stock variance account. Talk to your accountant about how to treat the variance account at year-end.
How often should we reconcile stock between Cin7 and Xero?
At least monthly, before you close the month. Check the sync report more often, daily or weekly depending on volume.
Does the same problem happen with Unleashed and MYOB?
The same kinds of problem happen with any inventory system that posts to a separate ledger. The exact timing rules and reports differ, so check how your own integration posts sales, costs and receipts.
Can the reconciliation be automated?
Much of it can. A report can pull the stock valuation and the ledger balance each day, list manual journals to inventory and flag the timing items, so a person only looks at the exceptions.
If your stock value and your accounts haven't agreed for a while, book a free initial chat. We'll tell you plainly whether it's a set-up fix your partner can handle or something that needs work across your systems.