4 June 2026
How to Handle Shopify Shipping Fees in Xero
A practical guide to recording and reconciling Shopify shipping income and shipping costs in Xero — with the right accounts, GST treatment, and payout matching.
Shipping is one of the most commonly mishandled lines when Shopify sales flow into Xero. It is easy to see why: shipping shows up on both sides of your books — as income when you charge a customer for delivery, and as a cost when you pay a carrier or buy a label. In a Shopify Payments payout, both are netted together with sales, refunds, and platform fees into a single bank deposit. If you record that deposit as one lump sum, your shipping numbers disappear into your revenue and your real gross margin is anyone's guess. Getting shipping right matters for accurate profit reporting and for getting GST correct.
Shipping Income Is Not the Same as Shipping Cost
The first thing to separate is the money your customers pay you for shipping versus the money you pay to fulfil delivery. These are two distinct things and they belong in two distinct accounts in Xero.
Shipping income is revenue. When a customer pays $9.95 for delivery at checkout, that is sales income to your business, the same as the product they bought. Shipping cost is what you pay Australia Post, a courier, or Shopify Shipping for the label. If you net the two together — or worse, code the income against the expense — you lose all visibility into whether your shipping is actually profitable. Many stores discover, once the two are split, that they are subsidising delivery far more than they realised.
The fix is simple: create a dedicated revenue account for shipping income and a separate cost-of-sales or expense account for shipping costs. Every shipping dollar then lands somewhere you can report on.
Getting the GST Treatment Right
In Australia, the GST you charge on shipping generally follows the GST status of the goods being delivered. If you are sending taxable products, the freight you charge the customer is normally taxable too; if the goods are GST-free, the shipping usually is as well. The cost side has its own quirks — for example, a freight or customs agent may charge GST separately on imported goods, which needs its own tax treatment rather than being lumped in with a standard purchase.
Because these rules have edge cases, it is worth checking the authoritative guidance rather than guessing. Xero documents how to handle freight and the non-standard tax rates that apply to it — including the GST on Imports rate — in their help centre article on non-standard tax rates. When in doubt, confirm the treatment with your accountant, since getting GST wrong on shipping quietly compounds across every order.
How to Record Shipping in Xero
Once your accounts are set up, the mechanics depend on how your Shopify data reaches Xero. If you are using Xero's native Shopify connection, each order's shipping charge should map to your shipping income account, and you record the carrier and Shopify Shipping costs separately as bills or spend transactions against your shipping cost account.
If you are using a dedicated connector like A2X, the payout journal already splits shipping income onto its own line, so you simply point that line at the right account once and it flows correctly every time afterwards. Which approach suits you depends on your order volume and reporting needs — we cover the trade-offs between the native app and A2X in detail in our guide to Shopify Xero integration. The key point is that shipping should always arrive in Xero as its own clearly coded line, never buried inside a sales total.
Reconciling Shipping Against the Payout
The final step is making sure the shipping lines actually tie back to the bank deposit. A Shopify Payments payout nets everything together, so your recorded shipping income and shipping costs need to reconcile against that single figure alongside sales and fees.
A few things trip people up here. Refunded shipping — where you refund a customer's delivery charge — needs to reverse the income, not just the product line. Free-shipping promotions mean you carry the full cost with no matching income, which is fine as long as it is recorded rather than hidden. And Shopify Shipping label costs are often deducted directly from your payout, so they appear as a reduction in the deposit rather than as a separate bill. Account for each of these and your payout will reconcile cleanly instead of leaving an unexplained few dollars every week.
Getting Help
Setting shipping up correctly is a one-time job that pays back on every payout. If you would rather not work through the account mappings, GST rates, and payout reconciliation yourself — or you have inherited a Xero file where shipping is already tangled up with sales — our Shopify Integrations service handles the setup, tests it against your live payouts, and documents the configuration so your bookkeeper can follow it. Get shipping coded properly once, and your margins finally tell you the truth.