Shopify & Amazon FBA bookkeeping: chart-of-accounts mistakes we see most.
A Shopify and Amazon FBA chart of accounts separates revenue by channel, records refunds and returns as contra-revenue rather than expenses, puts marketplace and payment fees in cost of sales, and holds inventory on the balance sheet until sold. That structure is what makes contribution margin by channel visible.
Why does the default e-commerce chart of accounts fail?
The typical Shopify or Amazon brand takeover looks the same. Revenue is recorded as one big number, usually Shopify Payments deposits, dropped straight into "Sales", net of fees and refunds. Amazon settlements similarly land as net deposits. The bookkeeping captures the cash but not the underlying economics. Gross margin reported in management accounts is materially wrong, often by 10–20 percentage points.
The cause isn't laziness; it's setup. The default Xero or QuickBooks chart of accounts isn't built for marketplace economics, and most bookkeepers don't restructure it for e-commerce clients. Without restructure, the data simply isn't there to surface unit economics, channel-level profitability or cohort behaviour.
What does a Shopify and Amazon FBA chart of accounts look like?
A working e-commerce chart of accounts splits everything that matters across at least these dimensions:
- Revenue by channel (Shopify, Amazon, wholesale, retail, marketplaces)
- Refunds and returns as a contra-revenue line (not lumped into expenses)
- Cost of sales separated from operating expenses
- Marketplace fees as cost of sales, not operating expenses
- Advertising spend separated from other marketing
- Inventory as a balance-sheet item, properly capitalised
Revenue side
Sales by channel
Every channel becomes a separate revenue account. For a typical multi-channel brand:
- 4000 Sales: Shopify DTC
- 4010 Sales: Amazon US
- 4020 Sales: Amazon UK / EU
- 4030 Sales: Etsy
- 4040 Sales: Wholesale
- 4050 Sales: Retail (if you have physical retail)
This means every settlement, every wholesale invoice, every retail Z-report posts to the right channel. Channel-level revenue is then visible without spreadsheet gymnastics.
Sales returns & refunds
- 4100 Refunds: Shopify DTC (contra-revenue)
- 4110 Refunds: Amazon
- 4200 Returns reserve (balance-sheet liability)
Refunds are not expenses. They're reductions of revenue. Booking them on the cost side hides the underlying margin and overstates marketing efficiency. For brands with material return rates (apparel, beauty), the returns reserve is essential, provisioned monthly based on rolling 90-day return rate, released when actual returns occur.
Shipping income
- 4300 Shipping income (where charged separately)
- 4310 Shipping discounts (contra-revenue)
Gift card liabilities
- 2400 Gift card liability (balance sheet)
- 4400 Gift card income (when redeemed; or when "breakage" recognised)
Cost of sales, properly structured
Cost of sales is where most e-commerce books fall apart. The right structure:
Product cost
- 5000 COGS: Product cost
- 5010 COGS: Freight-in (capitalised into landed cost)
- 5020 COGS: Duty & import
- 5030 COGS: Customs broker fees
Product cost is the wholesale price of the SKU. Freight-in (the cost of getting goods from supplier to your warehouse or 3PL) is capitalised into landed cost. It's part of cost of sales, not operating shipping.
Marketplace and platform fees
- 5100 Marketplace fees: Amazon (referral fee, variable closing, etc.)
- 5110 Marketplace fees: Etsy
- 5120 FBA fulfilment fees
- 5130 FBA storage fees
- 5140 Shopify transaction fees / processing
- 5150 PayPal / Stripe fees
Marketplace fees are cost of sales. They only exist because of a sale. Treating them as operating expenses overstates gross margin. The right classification gives an honest gross margin.
Shipping out
- 5200 Shipping & fulfilment: 3PL
- 5210 Shipping & fulfilment: Direct carrier (USPS, Royal Mail, etc.)
- 5220 Packaging materials
Operating expenses: what stays here
Operating expenses are costs that exist regardless of sale volume: overhead. The chart of accounts should separate cleanly:
- 6000 Salaries & payroll
- 6100 Marketing: Paid social (Meta, TikTok, Pinterest)
- 6110 Marketing: Paid search (Google Ads)
- 6120 Marketing: Influencer / affiliate
- 6130 Marketing: Other (PR, content, organic)
- 6200 Software subscriptions
- 6300 Rent, utilities
- 6400 Professional fees (legal, accounting)
- 6500 Travel
Note that paid advertising is in operating expenses, not cost of sales. There's no GAAP requirement either way; we treat it as operating because it isn't directly tied to a specific sale even though it drives sales in aggregate.
Inventory on the balance sheet
Inventory under IAS 2 (UK / international) or ASC 330 (US) sits on the balance sheet, valued at the lower of cost or net realisable value. Cost includes the purchase price plus directly attributable costs (freight-in, duty, broker fees): capitalised landed cost.
- 1300 Inventory: Finished goods (3PL)
- 1310 Inventory: FBA (Amazon-held)
- 1320 Inventory: In transit (paid but not received)
- 1330 Inventory: Raw materials (for brands with manufacturing)
- 1340 Inventory provision (for slow-moving / obsolete stock)
FBA inventory deserves separate tracking because reconciliation to Amazon's inventory reports needs to happen monthly, and the reports often disagree with your records (mis-shipments, FBA reimbursements, dispatch losses).
The A2X connector
The single tool that makes all this work for Shopify and Amazon brands is A2X. It sits between the marketplace settlement and your accounting platform, splitting each settlement into its components (sales, refunds, fees, advertising, FBA reimbursements, sales tax, gift card adjustments) and posting them to the right accounts.
Setting A2X up correctly takes 4–6 hours per channel. The wrong setup looks the same in the dashboard but maps everything to default accounts; the right setup maps to your custom chart and produces the unit economics that drove the restructure in the first place.
What can you see once the chart of accounts is right?
Once the chart is restructured and connector configured, the questions that were unanswerable before become routine:
- What's our gross margin by channel? Reported monthly.
- What's our contribution margin after marketing? Reported by channel and cohort.
- What's the CAC payback by channel? Calculated from contribution margin per customer and CAC per channel.
- Which SKUs are profitable after Amazon fees? Reportable from the marketplace-fee split.
- How much inventory is sitting in FBA that hasn't sold in 90 days? From the FBA inventory account vs sales velocity.
The bookkeeping decisions you make in week one of running a brand determine what questions you can answer in year three. Most brands get it wrong; restructuring after the fact takes 6–10 weeks of work.
The bottom line
The default Xero or QuickBooks chart of accounts isn't built for e-commerce. Restructure on day one: separate channels, treat refunds as contra-revenue, classify marketplace fees as cost of sales, capitalise inventory properly. Use A2X (or equivalent) to push transactions to the right accounts. The result is unit economics you can actually use to run the business: gross margin, contribution margin, CAC payback, channel profitability, all reported monthly without spreadsheet effort. The setup investment is small. The decision quality it buys you is substantial.
What the numbers look like once the structure is right
Worked example, illustrative rather than a real client. A homeware brand does £100,000 of gross sales in a month, split £60,000 direct through Shopify and £40,000 through Amazon. Under a single "Sales" account with fees buried in overheads, the picture is a 100k month with a healthy-looking gross margin. Structured properly, the two channels look nothing alike.
| Line | Shopify direct | Amazon FBA |
|---|---|---|
| Gross sales | £60,000 | £40,000 |
| Returns and refunds | (£2,400) | (£3,600) |
| Net sales | £57,600 | £36,400 |
| Product cost | (£19,000) | (£13,000) |
| Platform and referral fees | (£1,700) | (£6,000) |
| Fulfilment and shipping out | (£4,800) | (£5,200) |
| Contribution margin | £32,100 | £12,200 |
| Contribution margin percentage | 56% | 34% |
Same brand, same products, twenty-two points of difference. That is the whole argument for the chart of accounts. Nobody can make a channel decision, a pricing decision or a stock allocation decision from a single revenue line, and the version of this business that grows the Amazon channel because it is "easier" is destroying margin while its profit and loss says it is growing.
Where the tax lines sit in the structure
Marketplace facilitator rules mean Amazon usually collects and remits US sales tax on your behalf, so that money is never yours and should never touch revenue. It belongs in a liability or a pass-through account, and treating it as income inflates the top line and the tax computation together. The mechanics are covered in our guide to US sales tax nexus for online sellers, and the state thresholds are collected by the Streamlined Sales Tax Governing Board.
UK and EU sellers have the mirror problem. Direct sales into the EU above the distance selling threshold need registration under the EU One Stop Shop, and a UK VAT registration does not cover them. Domestic VAT sits under HMRC's Making Tax Digital for VAT rules, which we cover in the Making Tax Digital for VAT guide. Keep the VAT and sales tax accounts separate by jurisdiction from day one. Splitting them retrospectively across a year of marketplace settlements is a week of work nobody enjoys.
Setting this up, and who does it
Rebuilding a chart of accounts mid-year is a controlled exercise: freeze the current structure, map every existing account to its destination, restate the year to date so comparatives still work, then cut over at a period end. Doing it without the restatement gives you a year that changes shape halfway through, which is worse than the original mess.
We do this as part of our e-commerce accounting service, with channel-specific work on Shopify accountants and Amazon FBA accountants, and the broader position on online brand accountants. The ledger runs in Xero or QuickBooks with A2X in front of it, ongoing work through cloud bookkeeping services, and the reporting through monthly management accounts. Brands selling in more than one currency should read multi-currency accounting for SMEs, and anyone whose books are too far behind to restructure should start with catch-up bookkeeping.
E-commerce accounting, structured.
We restructure e-commerce books to surface unit economics and configure A2X for Shopify and Amazon clients. Then we run monthly close with proper marketplace reconciliation.
Book an e-commerce ledger review →