Skip to content
Guides/Industry-Specific
Guide 20

E-Commerce Chart of Accounts: The Accounts Behind Contribution Margin by Sales Channel

A $58 sale on Amazon and a $58 sale on the seller's own Shopify store are not worth the same $58. Here are the accounts that keep gross revenue, marketplace fees, sales tax, and inventory in transit separated by channel, so the difference shows up in the ledger instead of a spreadsheet built after the fact.

Read 13 min readUpdated Sections 7Format Open access
1 · StructureWhich accounts exist
2 · RecordingHow a transaction resolves
3 · ReportingHow accounts become statements
4 · InsightWhich questions you can answer

A brand sells the same $58 water bottle on its own Shopify site and on Amazon. On Shopify, the seller keeps roughly $55 after a card-processing fee. On Amazon, the seller keeps closer to $38 once the marketplace's referral commission and fulfillment fee are deducted before the money ever reaches the bank. The product and the price were identical. The channel was not. A brand that runs both through one "Sales" account and one "Merchant Fees" account cannot see that gap — only a blended deposit and a blended fee line.

The default QuickBooks chart of accounts was built for a business with one till and one bank feed. A multi-channel seller has several settlement systems, each with its own take rate, return rate, and delay between a sale and the cash that shows up. This guide covers the accounts that put channel economics on the trial balance instead of in a spreadsheet rebuilt every time a founder asks which channel to fund.

Accounts in template
61
Ready to import into QuickBooks Online
Sales channels tracked
3
Shopify, Amazon, and wholesale, each with its own revenue and returns accounts
Marketplace fee and contra-revenue accounts
4
Returns by channel, plus commission and processing fees kept out of cost of goods sold
Template
ecommerce-gaap
Import in about 60 seconds
Section 01

Why a generic chart breaks down for a multi-channel seller

Revenue is the first casualty. A generic chart has one income account, so a bookkeeper reconciling the bank feed by hand tends to book whatever hits the account — the net Amazon payout, the net Shopify Payments deposit — straight to "Sales." The gross sale and the fee that shrank it disappear into one number, and a seller can run for months without ever seeing what Amazon actually charges to sell through it.

Sales tax compounds the problem in a way that is easy to miss until a state notices first. Every dollar of tax a storefront collects belongs to a state government, not the business, from the moment the customer pays it. A generic chart with no dedicated tax liability account either mixes it into revenue, overstating what the business earned, or leaves it sitting in the operating cash balance with nothing on the books to show it is already spoken for. Since South Dakota v. Wayfair let states require a remote seller to collect and remit tax once sales there cross an economic threshold, a brand selling into a dozen states can owe several at once, and each expects the amount collected to match a liability account it can audit, not an estimate reconstructed at filing time.

Inventory has its own blind spot. Stock a business owns can be sitting on its own warehouse shelf, riding in a truck to a third-party logistics provider, or already checked in at a marketplace's fulfillment center, and it is an asset in all three places. A chart with one "Inventory" account and no way to flag stock that left the warehouse but has not yet arrived somewhere else cannot explain a physical count that comes up short: the units might be missing, or they might just be three days into a truck.

Section 02

Cash and cost flow through the channel accounts

Every sale moves through these accounts in this order, whichever channel it came from. The fee is deducted on the way through; the balance sheet holds whatever has not settled yet.

4000 / 4100 / 4200Gross sale recorded, by channelThe full sale price, before any fee is netted out
6020 / 6010Marketplace commission and processing feeDeducted before the payout ever reaches the bank
1310Merchant Account ReceivableNet proceeds sit here until the platform actually pays out
2200Sales tax collectedNever revenue — a liability from the moment it is collected
Section 03

The accounts that do the work

These are the accounts from the e-commerce template that a generic chart does not give a multi-channel seller. Account numbers, names, and types below are exactly as they import.

RowAccountNumberTypePurpose
01Merchant Account Receivable1310Other Current AssetsPending payouts from Shopify, Stripe, and Amazon before they settle
02Inventory in Transit1340Other Current AssetsInventory moving between a warehouse, a supplier, and a fulfillment partner
03Sales Tax Payable2200Other Current LiabilitiesSales tax collected from customers, pending remittance
04Gift Card Liability2220Other Current LiabilitiesUnredeemed gift cards outstanding
05Shopify Sales4000IncomeRevenue from the owned Shopify storefront
06Shopify Returns & Refunds4010IncomeReturns and refunds on Shopify orders (contra-revenue)
07Amazon Sales4100IncomeRevenue from the Amazon marketplace
08Amazon Returns & Refunds4110IncomeReturns and refunds on Amazon orders (contra-revenue)
09Product Cost - Shopify5000Cost of Goods SoldProduct cost for Shopify orders
10Product Cost - Amazon5010Cost of Goods SoldProduct cost for Amazon orders
11FBA Fulfillment Fees5210Cost of Goods SoldAmazon FBA pick, pack, and ship fees
12Amazon Referral Fees6020ExpensesAmazon marketplace referral commission, typically 8-15%
13Shopify Payment Processing6010ExpensesShopify Payments / Stripe transaction fees

The two returns accounts, 4010 and 4110, sit in the Income range as contra-revenue, split by channel so a spike in Amazon returns does not hide inside a healthy Shopify number. Amazon Referral Fees and Shopify Payment Processing sit in the Expenses range rather than a blended "Merchant Fees" line, so a seller can read the P&L and see Amazon's take rate climbing without opening a settlement report.

Section 04

How a multi-channel week actually gets booked

Follow one product through three moments a generic chart cannot show: the sale itself, the return that follows it, and the day a batch of it ships into a fulfillment partner's warehouse instead of the seller's own. Figures are illustrative throughout.

A customer buys an $80 item through the Amazon marketplace. Amazon's referral commission on the sale is $12, and the FBA pick-pack-and-ship fee for that order is $8. Both are deducted before Amazon remits anything, so the cash that reaches the bank is $60, not $80.

Entry 1 · Amazon marketplace sale, referral commission and fulfillment fee deducted before the payout
AccountDebitCredit
4100Amazon Sales80
6020Amazon Referral Fees12
5210FBA Fulfillment Fees8
1000Operating Cash60
Totals8080

The gross sale is booked at the full $80, and both fees post to their own accounts rather than vanishing inside the deposit. A bank-feed rule that categorizes the $60 payout as revenue would understate the sale by $20 and never show that Amazon kept $12 of it.

A customer who bought a different item on the Shopify storefront for $80 returns it a week later for a full refund. The unit cost $30 to produce. It comes back undamaged, so it goes straight back into sellable stock instead of being written off.

Entry 2 · Shopify return processed, revenue and cost of goods sold both reversed
AccountDebitCredit
4010Shopify Returns & Refunds80
1000Operating Cash80
1320Finished Goods Inventory30
5000Product Cost - Shopify30
Totals110110

A return is really two reversals, not one. The $80 sale unwinds through the contra-revenue account so gross Shopify Sales stays comparable month to month, and the $30 cost unwinds separately because it depends on whether the unit is sellable. A damaged unit would debit Inventory Shrinkage & Damage instead of Finished Goods Inventory — the restock-or-write-off decision changes one line, not the whole entry.

The brand also ships a batch of finished goods to Amazon's fulfillment network so future orders can qualify for Prime shipping. The shipment carries a $4,000 cost basis and takes four days to arrive.

Entry 3 · Finished goods shipped into a marketplace fulfillment program
AccountDebitCredit
1340Inventory in Transit4,000
1320Finished Goods Inventory4,000
Totals4,0004,000

The inventory left the warehouse but has not yet been checked in at Amazon, so it is still an asset — it just changed which account holds it. Skip this account and the $4,000 either vanishes from the books for four days or stays parked next to stock that is not actually on the shelf, and either way the next physical count will not tie to the ledger.

Section 05

What this looks like on the statements

The same accounts, seen from the reports. The highlighted lines exist only because the accounts above exist.

Income statement, excerpt · one month, all channels, illustrative
Shopify Sales42,000
Amazon Sales58,000
Wholesale Revenue15,000
Shipping Revenue2,400
Gross revenue, all channels117,400
Amazon Returns & Refunds(11,600)
Shopify Returns & Refunds(2,940)
Wholesale Returns(300)
Net revenue102,560
Marketplace & processing fees10,217
Cost of goods sold, all channels51,570
Contribution margin40,773

Example figures.

Amazon's return rate alone is nearly four times Shopify's in dollar terms here, and the marketplace fee line sits on its own row instead of inside a general "Merchant Fees" expense. Neither fact is visible from one blended revenue and fee line; both fall out of the trial balance the moment the accounts above exist.

Balance sheet, excerpt · month-end, all channels
Current assets
Merchant Account Receivable9,400
Finished Goods Inventory38,200
Inventory in Transit4,000
Current liabilities
Sales Tax Payable6,850
Gift Card Liability3,200

Example figures.

The $9,400 in Merchant Account Receivable is real but not yet spendable, and the $6,850 in Sales Tax Payable is never spendable, however healthy the bank balance looks. A generic chart shows neither line — just one bank balance an owner can mistake for all being theirs.

Without these accounts you cannot answer
  1. 01Which channel is actually funding growth, and which one is barely breaking even? With one blended revenue and fee line, a channel losing money on paper looks identical to one quietly carrying the business.
  2. 02How much of the cash we are holding is actually ours to spend? Sales tax sitting in the operating account looks like working capital until the state asks for it, and a rolling settlement receivable is not the same as money already in the bank.
  3. 03Does our stock count match what the ledger says we own? Inventory sitting in a truck or a fulfillment center for a few days looks exactly like missing inventory when there is no account for goods in transit.
Section 06

What the template changes

The diff, in the grammar the product uses everywhere else.

Generic chart → e-commerce chart
  • Sales Revenueevery channel blended into one line
  • 4000Shopify Salesincome
  • 4100Amazon Salesincome
  • 4010Shopify Returns & Refundscontra-revenue
  • 4110Amazon Returns & Refundscontra-revenue
  • Merchant Feesevery platform lumped into one expense line
  • 6020Amazon Referral Feesexpense, by channel
  • 6010Shopify Payment Processingexpense, by channel
  • Cost of Goods Soldone blended line, no channel split
  • 5000Product Cost - Shopifycogs
  • 5010Product Cost - Amazoncogs
  • 1340Inventory in Transitasset
  • 2200Sales Tax Payableliability
  • 1000Operating Cashstays the primary bank account
−3 removed+10 added
Sources
Section 07

Get started

The e-commerce chart of accounts template includes every account on this page, pre-numbered and ready to import into QuickBooks. It takes about 60 seconds to optimize and gives a multi-channel seller a P&L that separates Amazon from Shopify from wholesale instead of one number that already blended all three.

If you already have a chart, the optimizer reads it and shows the diff above against your own accounts, so you can see which channel, fee, and tax accounts are missing before you change anything. Book gross sales by channel and keep sales tax as a liability until remitted, and the next "which channel should we fund" conversation starts from the trial balance instead of a spreadsheet built the night before the board meeting.

Start the free trial →

Questions

Frequently asked questions.

Should Amazon and Shopify revenue be combined into one sales account?

No. Each channel carries a different fee structure, a different return rate, and a different fulfillment cost, so combining them into one revenue account hides which channel is actually profitable. Separate revenue and returns accounts per channel are what make a per-channel profit and loss statement possible.

Is sales tax collected from a customer part of a seller's revenue?

No. Sales tax is collected on a customer's behalf and owed to a state, so the cash sits as a liability from the moment it is collected. A seller who has crossed economic nexus thresholds in several states needs that liability account accurate well before a filing deadline forces the question.

Why does inventory need an 'in transit' account?

Stock a seller owns does not stop being an asset just because it is on a truck to a third-party warehouse or sitting inside a marketplace's own fulfillment center instead of the seller's own shelves. Without an in-transit account, a physical count at the warehouse disagrees with what the ledger says the business owns, and nobody can tell whether the gap is a shipment in motion or stock that is actually missing.

Apply this to a real chart

The principles are easy. Applying them is the work.

This guide is the theory. The free trial helps you review a real QuickBooks Online chart with a score, structural diff, and prioritized cleanup plan.

  • +Score the chart across the health dimensions
  • +Compare structure against a reference pattern
  • +Prioritize cleanup work before changing books
  • +Review recommendations before anything is applied