Bookkeeping for online sellers.
Shopify, marketplaces or both - payout soup becomes clean Xero numbers, GST behaves across every channel, and you finally see the margin per product your sales dashboard can't show.
Rated 4.9 from 120+ Google reviews · Registered BAS Agents · Xero Platinum Partner

eCommerce books, done properly.
Payouts reconciled
Shopify, marketplace and gateway payouts split into sales, fees, refunds and GST automatically - weekly, not reverse-engineered at BAS time.
Multi-channel clarity
Each sales channel gets its own clean pipeline into Xero, so you can see which one actually makes money.
GST across borders
Exports, marketplace-collected GST and imported stock each treated correctly - mapped once, right forever.
Inventory truth
Stock accounting that shows real margin per SKU and where the cash is tied up - growth stops starving the business quietly.
The right connectors
A2X-style tools and inventory apps chosen for your volume and connected properly by our integration team.
BAS on agent deadlines
Registered BAS agents lodge every cycle, with multi-channel GST handled as routine.
What a clean online store file gets right.
Store files come good in a small number of predictable ways, and they all share one thing: the platform reports on sales, the bank reports on money, and somebody has deliberately joined the two.
Reconcile the sale, not just the deposit
Shopify, Amazon and eBay do not pay you what you sold. They pay what is left after processing fees, commission, refunds, chargebacks and, on some accounts, advertising billed straight against the settlement. Code that deposit to sales and you understate revenue, hide the fee completely and lose the refund. Three errors in one transaction, repeated every payout.
Every payment method mapped to its settlement
Stripe pays on a rolling delay, net of its fee. PayPal holds a balance you draw down when you feel like it. Afterpay and Klarna take their cut before remitting and settle on their own timetable. Each needs its own clearing account reconciling to its own statement. Pooled into the bank feed, none of them ever balance and the difference gets written off to a suspense account nobody looks at.
Profit worked out with cost of goods sold in it
A store file with no COGS in it is not reporting profit. It is reporting sales less whatever supplier bills happened to be paid that month. Stock bought in March and sold in June belongs to June. Until purchases are matched to what actually sold, gross margin is a number with nothing behind it.
Stock counted on a schedule
Closing stock at 30 June is not a formality. It decides how much of your buying is an expense this year and how much is an asset sitting on a shelf. Guess it, and the return is wrong in a way that quietly reverses itself next year, usually in the year you can least afford it.
One SKU across three channels, one answer
The same product sells on your own site, on a marketplace and through a wholesale account. Each charges a different fee, carries a different shipping cost and discounts differently. Blended into one sales line, the channel that loses money on every unit is being funded by the channel that does not, and nothing in your reporting says so.
GST handled correctly at the border
Imported consignments above $1,000 have GST assessed at the border, and the deferred GST scheme lets approved importers carry it into the BAS instead of paying at the dock. Consignments of $1,000 or less have GST collected at the point of sale instead. Goods shipped to overseas customers are usually GST-free exports. Three treatments, and most files we take over use one code for all of them.
What the first month looks like.
Settlements first, then stock. Get those two right and the rest of an online store's books more or less fall into place.
- 01
Look at the file
A free health check across your Xero file, every payout and gateway account, and however stock is being handled now. You get a straight list of what is broken and what fixing it involves, before you commit to anything.
- 02
Build the settlement layer
A2X or Link My Books sits between the platform and Xero and turns each payout into a summary entry that splits sales, fees, refunds, shipping and GST, then reconciles to the cent against the deposit. Stripe, PayPal and buy-now-pay-later each get a clearing account that settles against their own statement.
- 03
Make inventory honest
A stock method that suits your volume, purchases matched to what sold so cost of goods sold is real, landed cost including freight and duty where the margins are thin enough to care, and a stock on hand figure you can defend at year end. Returns and restocking tracked rather than absorbed.
- 04
Keep it running
Reconciliation on a weekly rhythm instead of a scramble before BAS, lodgement on agent deadlines, and a monthly report showing margin by channel and by product plus how much of your cash is currently sitting as stock. Same bookkeeper every month.
What this looks like in practice.
A homewares brand selling through its own Shopify store plus two marketplaces, ~$3.1m in sales.
Case study · eCommerceRevenue up 40%, bank balance flat, and nobody could say why.Marketplace payouts unpicked into their parts, and a margin that finally included the freight. See what changed
The background
Three years old, growing fast, run by two founders who were good at product and had outsourced bookkeeping to whoever was cheapest. Sales were genuinely up; the bank account did not agree.
The challenge
Marketplace payouts arrived as a single net figure - gross sales less commission, less advertising, less refunds, less shipping subsidies, less an FX conversion - and the whole net amount was coded to sales revenue. Revenue was understated, every deduction was invisible, and the margin the founders managed to had never included them. Inventory was worse: stock was expensed on purchase rather than carried, so cost of goods moved with restocking rather than with selling, and a big purchase month looked like a bad trading month. Add a landed cost that ignored freight and duty, and the per-product margin used for pricing was fiction.
The approach
None of this could be fixed by working harder on the reports. The transactions had to be recorded as what they actually were first.
How the work ran
Month 1
Clearing accounts, one per channel
Each marketplace and the payment gateway got its own clearing account. Gross sales, commission, advertising, refunds, shipping and FX now land as separate lines and the payout reconciles against them. The first correctly-split month showed marketplace fees well above what the founders had assumed.
Months 2–3
Inventory onto the balance sheet
Stock carried as an asset and released to cost of goods as it sold, with landed cost including freight, duty and inbound handling rather than just the supplier invoice. Gross margin stopped lurching with restock timing.
Months 4–6
Margin per channel and per product
With clean revenue and real landed cost, contribution could be read per channel and per SKU. One marketplace was trading close to breakeven after fees and subsidised shipping; a group of low-value, high-freight products was doing the same on the direct store.
What changed
- Revenue recognition
- net payout coded to salesgross, with fees split out
- Inventory
- expensed on purchasecarried, released on sale
- Landed cost
- supplier invoice onlyfreight and duty included
- Margin visibility
- blendedper channel and per SKU
- GST on imports and FX
- unreviewedhandled at transaction level
Almost every eCommerce business that feels poorer than its revenue suggests has the same three problems in the same order: netted payouts, expensed inventory, and a landed cost that stops at the supplier invoice. They compound, and they all look like a marketing problem until the books are fixed.
A worked example, built from the pattern these engagements follow in ecommerce. The business is composite and unnamed; the mechanics, the sequence and the order of work are the ones we use. Talk to us about your own numbers.
Frequently asked questions.
How do you reconcile Shopify payouts?
With connector tools and clearing accounts set up properly, every payout splits automatically into sales, fees, refunds and GST. The lump-sum-deposit guessing game ends at onboarding.
We sell on multiple channels. Does that complicate things?
Only if the setup is lazy. Shopify, marketplaces and in-person POS each get their own clean pipeline into Xero, so channel performance is visible instead of blended into mush.
How is GST handled for online sales?
Mapped to how you actually sell: GST-free exports, marketplace-collected GST on some platforms, imported stock on others. The codes are set once, correctly, and your BAS follows.
Can you track our inventory and true margins?
Yes - stock accounting that shows real margin per product and where your cash is parked. Profitable-looking stores run out of cash when inventory hides the truth; yours won't.
Shopify says we sold $84,000 last month but only $71,000 hit the bank. Which number is our revenue?
The $84,000, and the gap is the part worth looking at. It is processing fees, marketplace commission, refunds, chargebacks and sometimes advertising deducted straight off the settlement. Every one of those belongs in your books as its own line. Netting them off against the deposit destroys both halves of the entry: revenue reads low, the cost disappears entirely, and you have no way of telling whether your fee percentage is creeping up.
Do we actually need A2X or Link My Books?
If you sell through Shopify, Amazon or a marketplace at any real volume, yes. Both tools read the platform's own settlement data and post a summary entry to Xero that reconciles exactly to the payout, with sales, fees, refunds, shipping and GST split out. Doing that by hand is fine at a few orders a week and hopeless above it. We set up whichever suits your platforms, and the subscription usually costs less than the hours it replaces.
We import stock from overseas. How does the GST work?
It depends on the value of the consignment and how you are set up. Goods valued above $1,000 have GST assessed at the border. Importers approved for the deferred GST scheme can push that liability into their BAS rather than paying it at the dock, which is a genuine cashflow difference, though it requires monthly lodgement. Consignments of $1,000 or less generally have GST charged at the point of sale by the overseas supplier or the platform instead. We check which applies to you before any codes get set.
Our profit looks fine but there is never any cash. Why?
Stock. Money spent on inventory is not an expense until the product sells, so a growing store can report a healthy profit and still be short every month, because three months of buying is sitting in a warehouse. Once cost of goods sold and stock on hand are in the file, that gap stops being a mystery and becomes something you can plan around - including the seasonal buy where you pay in August for stock that does not sell until November.
Do we need to be in Brisbane?
Not at all - eCommerce clients are the definition of Australia wide. Everything runs on Xero and video calls.
Know your real margins.
One free call and we'll tell you what your payout reports are hiding. 07 3899 8311.