Get your first month of Zinance free.Get your first month free.Claim my free monthClaim

Bookkeeping for ecommerce: inventory, COGS and the payout problem

Ecommerce books break on three things a service business never meets: inventory as an asset, the gap between a sale and a payout, and sales tax nexus. Here is how to set each one up.

Parag Jain, CPA
Parag Jain, CPAFounder, Zinance·Last updated August 2026·10 min read
PLATFORM PAYOUT$8,400ACTUAL SALES$10KTHE DIFFERENCE IS NOT A DISCOUNTBookkeeping

Summarize this article

Ecommerce bookkeeping goes wrong in a specific and recognisable way. The bank feed shows a deposit from a marketplace, someone categorises it as revenue, and the books are now wrong in three directions at once. Revenue is understated, fees are invisible, and refunds have quietly disappeared.

Three things drive most ecommerce accounting problems and none of them exist in a service business: inventory is an asset rather than an expense, the money that lands in your bank is not your sales figure, and sales tax obligations follow where your customers are rather than where you are.

The payout is not the revenue

A marketplace or payment processor deposits net proceeds. If you sold $10,000, refunded $600, and the platform took $1,000 in fees, roughly $8,400 arrives. Booking $8,400 as revenue records none of the fees, none of the refunds, and a sales figure that is 16% too low.

The correct treatment splits the payout into its components: gross sales, refunds and returns, platform and processing fees, shipping charged to the customer, and sales tax collected, which is not revenue at all but money you are holding on behalf of a state.

This matters beyond tidiness. Fees are one of your largest cost lines and a lever you can negotiate, and you cannot manage a cost you cannot see. Netting them into revenue also inflates gross margin, because the fee never appears in cost of revenue.

Inventory is an asset until it sells

Buying stock is not an expense. It converts cash into a different asset. The expense happens when the item sells, at which point its cost moves to cost of goods sold.

Getting this wrong produces books that swing wildly and mean nothing: a big loss in the month you restock, then an artificially profitable month while you sell it. Neither reflects the business, and the pattern makes forecasting impossible.

EventWhat actually happens
You buy $20,000 of stockCash falls, inventory rises. No expense.
You sell half of itRevenue recorded; $10,000 moves from inventory to COGS
Stock is damaged or obsoleteWritten down as a loss when you know, not when you dispose of it
Stock is in transit or at a fulfilment centreStill your asset if you own it

The last row catches people out. Inventory sitting in a fulfilment warehouse or on a ship is still on your balance sheet, and companies that only count what they can see understate assets and overstate cost.

Sales tax follows your customers

Economic nexus rules mean you can owe sales tax registration and filing in a state you have never been to, triggered by sales volume or transaction count into that state. Thresholds vary by state and change.

Marketplace facilitator laws complicate it in a helpful direction: for sales through large marketplaces, the marketplace often collects and remits on your behalf. That does not automatically remove your registration or filing obligation, and it does not cover your direct channel. The practical consequence is that a business selling on both a marketplace and its own site can have quite different obligations for each.

Zinance tip

Track sales tax collected as a liability from day one, in its own account, separate from revenue. It is not your money. Companies that discover this late find they have been spending it, and the reconstruction is worse than the tax.

Multi-channel is where it compounds

Selling through your own store, a marketplace and a wholesale channel means three different fee structures, three payout schedules and three sets of data, and each channel reports differently.

  • Reconcile per channel, not in aggregate. One combined revenue number hides which channel is actually profitable after fees.
  • Expect payout timing to differ by channel, so cash and revenue diverge in ways that are normal but need explaining.
  • Watch for double counting when an integration and a bank feed both import the same transactions, which is the most common source of inflated revenue.
  • Track fees, shipping and refunds by channel, since channel profitability after those is often very different from what gross sales suggest.

Reconciling a payout, line by line

The payout is not the revenue is the right principle and it is abstract until you have unpicked one. Here is a single Shopify-style payout of $18,430 for a week, decomposed into what the ledger actually needs.

ComponentAmountWhere it belongs
Gross product sales$24,900Revenue
Shipping charged to customers$1,340Revenue, or a separate shipping income account
Sales tax collected$1,910A liability. Never revenue
Discounts and promotions($2,180)Contra revenue, not an expense
Refunds($1,450)Contra revenue, reversing the original sale
Platform and payment fees($1,090)Expense, usually cost of revenue
Chargebacks and reserves($240)Expense, or a receivable if recoverable
Net payout to bank$18,430The single line your bank feed shows

The bank feed offers you one number: $18,430. Booking that as revenue understates your actual sales by $6,470, hides $1,910 of tax you owe someone else, and makes discounting invisible, which means nobody can tell you what your promotions cost. Do this every week for a year and the annual picture is wrong in four directions at once.

The fix is a journal per payout that splits it into these components, ideally automated from the platform's own settlement report rather than typed. The reconciliation check is that the components sum exactly to the deposit that hit the bank. When they do not, the difference is usually a reserve, a currency conversion, or a fee charged outside the settlement, and each of those is worth knowing about.

The timing gap, and why it is a cash problem

Beyond classification there is a timing question. A sale on the 29th settles into a payout that arrives in the first week of the following month, so at any month-end there is money earned and not yet received.

That belongs on the balance sheet as a receivable from the platform, and if it is not recorded, two things go wrong. Your revenue for the month is understated by whatever was in flight, and your balance sheet is missing an asset you genuinely own. For a business with a meaningful payout lag, this can be a substantial number that swings with your sales pattern, which means it distorts exactly the months you most want to understand.

The cash consequence is the more urgent one. Inventory is bought and paid for well before the payout for selling it arrives, so growth consumes cash even at healthy margins. A profitable ecommerce business can run out of money while growing, which is the single most common way they fail, and it is invisible on a P&L. Watching it requires a cash forecast rather than a margin figure. See how to build a 13-week cash flow forecast.

How to set it up

  1. Run accrual accounting. With inventory in the picture, cash-basis actively misleads.
  2. Build a chart of accounts that separates gross sales, refunds, platform fees, processing fees, shipping income and shipping cost.
  3. Reconcile every payout to its underlying settlement report rather than accepting the deposit as a single figure.
  4. Track inventory continuously, including goods in transit and at fulfilment centres.
  5. Hold sales tax collected in its own liability account and reconcile it to what you file.

Where Zinance fits

Zinance handles the reconciliation work that makes ecommerce books usable: payouts split to their components, inventory tracked as an asset, and channel-level margin you can actually act on. Books close daily, so stock and cash decisions are made on current numbers rather than after month end. See our work with e-commerce businesses, and how to structure a chart of accounts for the foundation this depends on.

Disclaimer

This article is educational and general, not tax or accounting advice, and it creates no client relationship. Sales tax nexus thresholds and marketplace facilitator rules vary by state and change. Confirm your own registration and filing obligations with a qualified tax professional.

Two adjacent pieces cover the parts this depends on: how to structure a chart of accounts for the account structure that makes channel margin visible, and the month-end close checklist for the routine that keeps inventory and payouts reconciled.

Frequently asked questions

How do I record a Shopify or Amazon payout correctly?+
Split it rather than booking the deposit. A single payout contains gross sales, shipping income, sales tax collected which is a liability, discounts and refunds as contra revenue, platform and payment fees as expense, and any reserves. Booking the net deposit as revenue understates sales, hides tax you owe, and makes discounting invisible. Automate a journal from the platform's settlement report and check the components sum exactly to the bank deposit.
Why can a profitable ecommerce business run out of cash?+
Because inventory is paid for well before the payout from selling it arrives. Growth therefore consumes cash even at healthy margins, and the gap widens as you grow. It is invisible on a P&L, which reports profit rather than timing. There is also a month-end effect: sales made near period end settle in the following month, so unremitted platform balances belong on the balance sheet as a receivable. Tracking this needs a cash forecast, not a margin figure.
Why does my bank deposit not match my ecommerce sales?+
Because the deposit is net proceeds. The platform has already deducted its fees and processing costs and netted off refunds, and the deposit may include sales tax collected, which is not revenue. Booking the deposit as revenue understates sales, hides your fees entirely and inflates gross margin. Split each payout into gross sales, refunds, fees, shipping and sales tax.
How should ecommerce businesses account for inventory?+
As an asset until it sells. Buying stock converts cash into inventory rather than creating an expense, and the cost moves to cost of goods sold when the item is sold. Include goods in transit and stock held at fulfilment centres, since you still own them. Expensing purchases directly produces wild monthly swings that make forecasting impossible.
Do I need to worry about sales tax nexus?+
Probably, if you sell into multiple states. Economic nexus rules can create registration and filing obligations based on sales volume or transaction count into a state, with thresholds that vary and change. Marketplace facilitator laws mean large marketplaces often collect and remit for you, but that does not automatically remove your own registration obligation or cover your direct channel.
Should ecommerce use cash or accrual accounting?+
Accrual. With inventory in the business, cash-basis actively misleads: a large restock looks like a catastrophic month and the following month looks unusually profitable, when neither reflects what happened. Accrual matches the cost of goods to the sale that generated the revenue.
How do I handle multiple sales channels?+
Reconcile each channel separately rather than in aggregate, because fee structures and payout timing differ and an aggregate revenue figure hides which channel is actually profitable after fees. Watch for double counting where a platform integration and a bank feed both import the same transactions, which is the most common cause of overstated revenue.

Numbers you can actually trust

Zinance is outsourced bookkeeping, tax, and fractional-CFO support built for fast-growing companies, flat pricing, a dedicated human, and books that stay current every day.

Live in 7 business days No long-term contracts Your books belong to you