Services
Monthly bookkeeping run entirely in Xero — closed, reviewed and proven every period by the team that does the work.
Bookkeeping packages
The core problem
A single deposit from a sales channel is a net settlement of several unrelated things. Coding it to one revenue account destroys all of them.
Net one number into revenue and your top line is understated by the fees, your expenses are understated by the same amount, your sales tax liability is invisible, and your revenue for the month is whatever the payout schedule happened to do.
Gross margin that moves several points month to month without anything changing in the business. If pricing and supplier costs are steady and margin is not, the numbers going into it are wrong rather than the business being volatile.
The pattern
The fix is standard and it works the same way on every channel. Give each channel its own clearing account and never post a payout straight to revenue.
Done this way, the clearing account becomes a control. If it clears to a balance you can point at, the channel is reconciled. If it drifts upward month after month, something is not being recorded and the number tells you before the margin does.
Most sellers do not build these journals by hand. A connected app that summarises each settlement into the correct lines does it automatically, which is the reason those apps exist and the reason they earn their subscription on any real volume.
The expensive one
Xero posts cost of goods sold automatically, and the trigger is specific. Understanding it explains almost every e-commerce file with no COGS in it.
A tracked inventory item in Xero carries three accounts: an inventory asset account, a cost of goods sold account, and a sales account. When you approve a bill containing that item, Xero increases the quantity on hand and increases the inventory asset. When you approve an invoice containing that item, Xero posts a debit to cost of goods sold and a credit to inventory asset, at the item’s current average cost.
The trigger is the invoice line. And on most e-commerce setups, no invoice line ever exists. Orders arrive as settlement or payout summaries, aggregated by day or by period, with no tracked item on them. Xero has nothing to post COGS against, so it posts nothing.
The result is a profit and loss showing revenue with no matching cost, inventory sitting on the balance sheet at a value that only ever goes up, and a gross margin that looks extraordinary until someone counts the warehouse.
Two ways to close the gap. Either the integration creates invoices carrying the tracked items, so Xero posts COGS on its own, or an inventory system computes cost separately and posts a periodic COGS journal into Xero. Both work. What does not work is assuming it is happening because revenue is arriving.
The mechanics
Xero uses weighted average cost, and the formula is published: opening value plus purchases value minus cost of goods sold value, divided by quantity on hand.
Every purchase at a new price blends into the running average. That smoothing is deliberate, and for most sellers it is an advantage: a single expensive or unusually cheap purchase does not distort a month’s gross margin the way it would under a cost-flow method that matches specific layers.
Two behaviours follow, and both protect the number.
Both are the reason a Xero inventory balance, once set up correctly, stays reconcilable. They are also why a badly sequenced import fails loudly rather than producing a plausible wrong answer.
The design decision
The question is not whether Xero can track inventory. It is which system should be the operational source of truth, with Xero carrying the financial result.
Works well for a seller with a manageable item count, one location, and purchases recorded as bills before the stock sells. Quantity on hand is perpetual, COGS posts automatically on invoice, and gross margin appears in management accounts without a month-end stock adjustment. Xero suggests keeping tracked items to around 4,000, which is also the ceiling for importing opening balances, and native tracking is designed around a single location.
The right shape once you have multiple warehouses, kits or bundles, manufacturing, purchase order receipting, or item counts beyond what a single list handles comfortably. The inventory platform owns quantities, costing and replenishment. Xero owns the general ledger, receives the financial result, and remains the reconcilable source of truth for finance and tax.
This second shape is the normal end state for a growing e-commerce business, and it is a better outcome than stretching either system to do the other’s job. The failure mode is not choosing: an inventory app installed while Xero also tracks the same items, both maintaining quantities, neither agreeing.
Switching which system owns inventory once both hold history is a project rather than a setting. It means recosting, restating the inventory asset, and explaining a change in accounting to whoever reads the accounts.
More than one channel
The same SKU sold on Shopify, Amazon, eBay and wholesale is one item with one cost and four different revenue stories. Keeping those apart is the whole job.
The test of whether this is set up properly is simple: can you produce gross margin by channel, and does the sum of the channels equal the total? If either answer is no, the channels are not separated in a way you can act on.
Sales tax
Tax collected from a customer is never revenue. Where it goes next depends on who collected it.
Under marketplace facilitator rules, most states place the collection and remittance obligation on the marketplace rather than the seller for sales made through it. So tax on an Amazon or eBay order is typically collected and remitted by the platform, while tax on a sale through your own store is yours to collect, hold and remit.
That produces two different accounting treatments for the same product sold on the same day, and it is a common source of both overstated revenue and a sales tax liability that never clears.
Rules vary by state and by marketplace, and your economic nexus position is a separate question from who collects. Confirm your specific obligations with your CPA rather than inferring them from how the data arrives.
The routine
Six checks. Any one of them failing means the numbers above it cannot be relied on.
Questions
Next
If it moves and the business has not, the first conversation is usually about where the payouts are landing and whether COGS is posting at all.