Growthy
AI Bookkeeping

AI & Automation

AI BookkeepingHow AI is changing transaction categorization, bank reconciliation, and bookkeeping workflows.
AI for Accountants
Bookkeeping Automation
QuickBooks Automation

Payments & Reconciliation

Stripe Bookkeeping Guide: Payouts, Fees, Refunds, and QBO/Xero
Payment Reconciliation: How to Match Merchant Deposits to Gross Revenue in 2026
Accounts Payable Workflow for Bookkeepers: 2026 (3-Way Match, AP Aging, Vendor Recs, 1099 Roll-Up)
QuickBooks Integrations

Industry Guides

Ecommerce Accounting: A Practitioner's Guide to Payouts, Fees, Inventory, and Multi-Channel Books
SaaS Accounting: A Practitioner's Guide to Revenue Recognition, Deferred Revenue, and the Books Behind the Subscription
1099 Filing

Foundations

Chart of Accounts: The Complete Guide for Bookkeepers
Asset Account CategoriesEquity Accounts ExplainedExpense Account CategoriesView all →
Glossary
Balance Sheet TermsBookkeeping Foundation TermsIncome Statement TermsView all →
Bookkeeper Scaling

More Topics

Accounts Receivable Management: A Bookkeeper's Guide to Aging, Collections, and Getting Paid
For BookkeepersFor AccountantsPricing
Join the Alpha
Growthy

© 2026 Growthy. All rights reserved.

  1. Blog
  2. Ecommerce Accounting: A Practitioner's Guide to Payouts, Fees, Inventory, and Multi-Channel Books
  3. Ecommerce Bookkeeping: The Complete Guide

Ecommerce Bookkeeping: The Complete Guide

Bobby Huang

Partner, SDO CPA LLC / CEO, Growthy

June 24, 2026
41 min read
Ecommerce Accounting: A Practitioner's Guide to Payouts, Fees, Inventory, and Multi-Channel Books
Ecommerce Bookkeeping: The Complete Guide

In this article

A $18,432 deposit lands in your bank from Shopify. It looks like a great month. It isn't income, and the difference is what ecommerce bookkeeping is really about.

That number is what's left after Shopify took its processing fees, after refunds went back to customers, after a chargeback, and after the sales tax your buyers paid. That tax is money you now owe a state, not money you earned. The deposit hides all of it. One line on your bank feed, six different things bundled inside.

That gap is the whole job. Ecommerce bookkeeping isn't "sales in, expenses out." It's taking apart every payout, tracking inventory as it turns into cost of goods sold, and handling sales tax across the states you sell into. Then doing it again next payout, on every channel.

This guide is for two people. The first is the seller keeping their own books for the first time. The second is the bookkeeper running 10 to 30 ecommerce clients who needs a method that repeats. Each of you can skip to the sections that fit. The seller wants the method per platform. The bookkeeper wants the repeatable close. Both start with the same idea: the deposit is not the sale.

What is ecommerce bookkeeping?

Ecommerce bookkeeping is the practice of recording an online store's money correctly. You break each platform payout into its parts (gross sales, processing fees, refunds, shipping, and sales tax collected), track inventory as it becomes cost of goods sold, and manage sales tax across every state where you have nexus. It differs from regular bookkeeping in one way that drives everything else: platforms like Shopify and Amazon deposit net settlements, not revenue. A single bank deposit can bundle hundreds of orders and six kinds of deductions. Good ecommerce bookkeeping takes those deposits apart, posts each piece to the right account, and keeps the books matched to what actually happened. Done right, your profit and loss shows real margin and your balance sheet ties out.

Key Takeaways

  • One deposit is not one sale - a single Shopify payout can bundle 100 or more orders, fees, refunds, and sales tax into one bank line that hides all of it.
  • Payouts are net, revenue is gross - booking the $18,432 you received as revenue understates your real sales and buries fees in the wrong place.
  • Inventory forces accrual thinking - cost of goods sold belongs to the month you sell a unit, not the month you bought it, so cash basis hides your true margin.
  • Sales tax collected is a liability, not income - the tax your buyers pay is money you owe a state, and economic nexus can reach you in many states from one store.
  • Clearing accounts are the method - route every payout through a per-processor clearing account and decompose from there. If it doesn't return to zero, something's missing.
  • Growthy categorizes, you confirm - 85% accurate on first import, and you review the rest. It's a third option next to spreadsheets and the standard A2X-to-QuickBooks stack.

What Makes Ecommerce Bookkeeping Different

Bookkeeping for ecommerce breaks from regular small-business bookkeeping in two structural ways. Get these two right and most of the rest follows.

The first is payout reconciliation. A brick-and-mortar shop runs one register. One day of sales becomes one deposit, and the deposit roughly equals the sales. An online store works nothing like that. The platform holds your money for a payout period, nets out its fees, subtracts refunds, and sends you what's left. The deposit and the sales are two different numbers. Your job is to rebuild the sales number from the deposit.

The second is fee decomposition. Every platform deducts before it pays. Shopify takes a processing fee. Amazon takes a referral fee, a fulfillment fee, storage, and more. Stripe and PayPal take a percentage plus a fixed amount per charge. None of it shows on your bank statement as a separate line. It's already gone by the time the money moves. If you don't pull it back out, your revenue is wrong and your expenses are invisible.

Two more traits make ecommerce harder. Inventory means your cost of goods sold and your cash leave at different times, which we cover below. And multi-channel selling means one business can have four payout streams with four fee structures, all landing in the same bank account.

Here is the contrast in one table.


Brick-and-mortar

Ecommerce

One deposit equals

One day of sales

A payout period of many orders, net of fees

Fees

Card fee, visible

2 to 6 fee types, deducted before payout

Revenue source

Register total

Platform settlement report, not the bank

Sales tax

One state, usually

Many states, by economic nexus

Inventory

Often simple

Drives COGS timing and margin

This is why a good ecommerce bookkeeper doesn't start from the bank feed. They start from the platform's settlement report and work toward the deposit. The rest of this guide is the method for doing that, platform by platform. For the wider picture of statements, software, and firm-level setup, see our guide to ecommerce accounting. This piece stays on the bookkeeping: the actual entries.

Cash vs Accrual: Which Method for an Ecommerce Business

Most new sellers start on cash basis because it's simple. Money in, money out. For a service business with no inventory, that's often fine. For an ecommerce business that holds stock, cash basis lies to you.

Here's why. Say you buy $40,000 of inventory in March and sell it over April, May, and June. On cash basis, March shows a $40,000 expense and almost no sales. March looks like a disaster. Then April through June look amazing because the cost already cleared. Neither picture is real. You didn't lose money in March, and you weren't pure profit in June.

Here's the swing, assuming you sell that inventory for $70,000 spread evenly across the three months.

Month

Cash basis profit

Accrual profit

March

($40,000)

$0

April

$23,333

$10,000

May

$23,333

$10,000

June

$23,333

$10,000

Cash basis swings from a $40,000 loss to three huge months. Accrual shows the truth: about $10,000 of profit each month you actually sell, because COGS rides along with the sale.

Accrual fixes the timing. Under accrual, the $40,000 sits on your balance sheet as inventory, an asset. As you sell each unit, its cost moves from inventory into cost of goods sold, matched to the sale that earned the revenue. Now each month shows real margin. Inventory is the thing that forces accrual thinking, because cash and cost separate the moment you stock up.

When the IRS lets you choose

For tax, the rules give small businesses room. Under the gross receipts test in Section 448(c) of the tax code, a business is a "small business taxpayer" for tax year 2026 if its average annual gross receipts for the prior three years are $32,000,000 or less. That figure is inflation-adjusted each year. It is $32 million for 2026, set by Revenue Procedure 2025-32. Do not rely on older articles that say $25 million or $30 million.

Under that threshold, two related rules help ecommerce sellers. Section 471(c) lets a small business skip formal inventory accounting and treat inventory as non-incidental materials and supplies. Section 263A lets the same business skip the uniform capitalization rules that would otherwise pull more overhead into inventory cost. In plain terms: a small online store may be allowed to use the cash method for tax and still get a reasonable inventory result.

That's the tax method. It is a separate question from how you run your own books. Here's the practical split:

Your situation

Internal books

Tax method

New, low volume, little or no inventory

Cash is fine

Cash, if under the threshold

Holding real inventory, want true margin

Accrual

Cash may still be allowed, but accrual gives a cleaner match

Scaling, raising, or near $32M receipts

Accrual

Accrual likely required

The honest answer most sellers need: run accrual on your internal books once you hold inventory, because that's the only way to see real margin, and let your CPA decide the tax election. Changing your tax accounting method is a formal filing, usually Form 3115, not something you flip in a spreadsheet. Confirm the election with your accountant before you rely on it.

Chart of Accounts for an Ecommerce Business

The chart of accounts is what makes payout reconciliation possible. Build it wrong and every deposit becomes a guessing game. Build it right and decomposition is mechanical.

Five things matter for an ecommerce chart of accounts.

Separate income accounts. Keep gross product sales apart from shipping income. Use a contra-income account for discounts and refunds so they reduce revenue instead of hiding as expenses.

A clearing account per processor. This is the linchpin. Create one holding account for each payment source: Shopify Payments Clearing, Amazon Settlement Clearing, Stripe Clearing. Payouts land in clearing, you decompose from there, and clearing returns to zero. More on this in the next section.

Cost of goods sold, separate from inventory. Inventory is an asset on the balance sheet. COGS is the expense that records when you sell. They are different accounts, and the movement between them is the heart of inventory accounting.

Merchant fees and shipping, split correctly. Processing fees are an expense. Shipping you charge customers is income. Shipping you pay carriers is an expense. Keep all three apart or your margin blurs.

Sales tax payable, as a liability. The tax you collect is never income. It's a liability you hold until you remit it to the state. A single wrong setup here, booking collected tax as sales, is one of the most common and most expensive mistakes in ecommerce books.

If you sell on more than one channel, set up class or location tracking now, before the volume grows. It costs nothing today and saves a rebuild later.

Here's a starter chart of accounts for an ecommerce store. Adjust names to your platform, but keep the structure.

Type

Account

Income

Product Sales

Income

Shipping Income

Contra-income

Sales Refunds and Discounts

Income

Amazon Reimbursements

Asset

Inventory

Asset

Shopify Payments Clearing

Asset

Amazon Settlement Clearing

Asset

Stripe Clearing

Asset

Amazon Reserve

Expense

Cost of Goods Sold

Expense

Merchant Processing Fees

Expense

Amazon Referral Fees

Expense

FBA Fulfillment and Storage Fees

Expense

Advertising

Expense

Shipping Expense

Liability

Sales Tax Payable

Liability

Tips Payable

Liability

Gift Card Liability

For a deeper account-by-account walkthrough, see our chart of accounts reference and the platform setup notes in categorize Shopify transactions.

Payout Reconciliation, Platform by Platform

This is the method every competitor names and almost none shows. It is also where ecommerce books are won or lost. We're going to walk three platforms with real numbers and the actual entries. The fee rates below are illustrative, because platforms change them and they vary by plan and category. Check your current rates in your own dashboard. The method does not change.

The pattern is always the same. The payout lands in a clearing account. You post the gross sales and every deduction against that clearing account. The clearing account returns to zero. If it doesn't, you missed something, and that missing piece is usually the whole point.

Shopify Payments

Start with the $18,432 deposit from the top of this guide. That is one Shopify payout. Its period closed on Shopify's own schedule, which is not your calendar month. (Reconciling Shopify by calendar month is a common source of gaps, because the payout cycle and the month rarely line up.)

Pull the Shopify payout report for that period. It shows the real components. Here is what made up the $18,432.

Component

Amount

Gross product sales

$17,950

Shipping charged to customers

$980

Sales tax collected

$1,420

Total charged to customers

$20,350

Less: refunds

($900)

Less: Shopify processing fees

($858)

Less: a chargeback

($160)

Net deposit to bank

$18,432

The customer paid $20,350. You received $18,432. The $1,918 difference is refunds, fees, and a chargeback, and none of it is on your bank feed. Book the deposit as revenue and three things break. You record $18,432 of sales when your real product and shipping revenue was $18,930. You hide $858 of fees that never reach your books as an expense. And you bury $1,420 of sales tax that you owe a state, not income you earned.

Now the entries, using the Shopify Payments Clearing account. Three steps.

Step 1, record the sales activity from the payout report into clearing.

Account

Debit

Credit

Shopify Payments Clearing

$20,350


Product Sales


$17,950

Shipping Income


$980

Sales Tax Payable (liability)


$1,420

Step 2, record the deductions against clearing.

Account

Debit

Credit

Sales Refunds (contra-income)

$900


Merchant Processing Fees

$858


Chargebacks

$160


Shopify Payments Clearing


$1,918

Step 3, record the bank deposit.

Account

Debit

Credit

Cash (bank)

$18,432


Shopify Payments Clearing


$18,432

Now check the clearing account. It was debited $20,350 and credited $1,918 plus $18,432, which is $20,350. It nets to zero. That zero is your proof the payout is fully decomposed. Every dollar is in the right account: real revenue in sales, fees in fees, the tax you owe in a liability, and the cash in the bank.

One more Shopify trap. Shopify Capital advances are a loan. They land in your bank looking like a deposit, but they are a liability, not revenue. Book them to a loan account, not to sales.

Why Shopify bookkeeping breaks on calendar months

Shopify bookkeeping has one timing quirk worth naming on its own. Payout periods don't line up with your calendar month. A payout might cover sales from the 28th through the 3rd, straddling month-end. Force every payout into the month it deposited and you split a sale from its fees, or land revenue in the wrong month.

The fix is to reconcile by payout period, then make one month-end adjustment for sales that happened in the month but haven't paid out yet. Those sit in your Shopify Payments Clearing account at month-end as a positive balance, which is correct: the sale is earned, the cash just hasn't arrived. That clearing balance is your in-transit revenue, and it clears when the next payout lands.

Amazon FBA

Amazon FBA bookkeeping is the hardest of the three, and the rule that saves you is simple: build the books from the settlement report, not the bank statement. Amazon settles roughly every 14 days and the settlement report is the source of truth. The bank deposit is just the leftover.

A single FBA settlement can carry six or more fee types: referral fees, fulfillment fees, storage fees, advertising, refunds, and reserves. Here's one settlement decomposed.

Component

Amount

Product sales

$24,600

Shipping credits

$310

Promotional rebates

($140)

Referral fees

($3,690)

FBA fulfillment fees

($2,210)

Storage fees

($180)

Advertising (sponsored products)

($1,050)

Refunds

($620)

Reserve held by Amazon

($1,500)

Net deposit to bank

$15,520

The entries run through Amazon Settlement Clearing, same pattern as Shopify.

Account

Debit

Credit

Amazon Settlement Clearing

$24,910


Product Sales


$24,600

Shipping Income


$310

Then the deductions:

Account

Debit

Credit

Promotional Rebates (contra-income)

$140


Referral Fees

$3,690


FBA Fulfillment Fees

$2,210


Storage Fees

$180


Advertising Expense

$1,050


Sales Refunds

$620


Amazon Settlement Clearing


$7,890

The reserve is not an expense and not lost. It's cash Amazon is holding that you'll get later. Move it to a reserve account, an asset.

Account

Debit

Credit

Amazon Reserve (asset)

$1,500


Amazon Settlement Clearing


$1,500

Finally the deposit:

Account

Debit

Credit

Cash (bank)

$15,520


Amazon Settlement Clearing


$15,520

Check clearing: debited $24,910, credited $7,890 plus $1,500 plus $15,520, which is $24,910. Zero again.

Two more lines show up on Amazon settlements that sellers fumble. Reimbursements come when Amazon loses or damages your inventory in its warehouses. A reimbursement is income, but it isn't a product sale, so book it to its own account (Amazon Reimbursements) instead of burying it in sales. The reserve releases on a later settlement. The $1,500 Amazon held this period usually comes back over the next settlement or two. When it does, you reverse it: debit cash, credit the Amazon Reserve asset. That account should trend toward zero. If it climbs and never releases, dig in.

Now the cost Amazon never shows you. Say you shipped 300 units this settlement at a landed cost of $14 each. That's a separate $4,200 entry, tied to the units that left the warehouse, not to the payout.

Account

Debit

Credit

Cost of Goods Sold

$4,200


Inventory


$4,200

Two things sellers get wrong here. The reserve balance is not cash you can spend, so don't treat it as available funds. And notice what's missing from the whole settlement: cost of goods sold. COGS isn't on the Amazon report at all. It follows the units you shipped, recorded from your inventory records, not from the payout. We handle that next.

Stripe, PayPal, and Square

These processors share one trait that makes the net-vs-gross trap sharpest: they deposit net of a percentage fee plus a fixed amount per transaction, and the deposit looks clean. It's tempting to just book it as revenue. Don't.

Take a month of Stripe charges.

Component

Amount

Gross charges (about 200 transactions)

$12,000

Less: Stripe fees

($408)

Less: refunds

($300)

Net deposited

$11,292

If you book $11,292 as sales, you've understated revenue by $708 and you have no record of the $408 you spent on processing. Over a year that's thousands of dollars of fees that never hit your profit and loss. The entries fix it through a Stripe Clearing account.

Account

Debit

Credit

Stripe Clearing

$12,000


Product Sales


$12,000

Account

Debit

Credit

Stripe Fees

$408


Sales Refunds

$300


Stripe Clearing


$708

Account

Debit

Credit

Cash (bank)

$11,292


Stripe Clearing


$11,292

Clearing nets to zero: $12,000 in, $708 plus $11,292 out. PayPal works the same way, with its own fee structure and the added wrinkle that PayPal balances can sit in PayPal before you sweep them to your bank, so the PayPal account itself is a cash account you reconcile.

Square adds two things. It batches daily, so you reconcile by batch, not by month. And it handles tips and cash-versus-card splits, where tips are usually a passthrough liability, not your revenue.

Here's the Square tip handling. A customer pays $50 plus a $10 tip. The $10 isn't your income. It's money you owe an employee, so book it as a liability.

Account

Debit

Credit

Square Clearing

$60


Product Sales


$50

Tips Payable (liability)


$10

PayPal carries its own trap. Money can sit in your PayPal balance for days before you move it to your bank. Treat the PayPal account itself as a cash account, reconcile it like a bank account, and record the sweep to your bank as a transfer between two cash accounts, not as new revenue.

This net-versus-gross handling is exactly the "Difficult 20%" that trips up automated tools. For a deeper look, see gross vs net accounting for payment processors and the Stripe reconciliation guide for bookkeepers.

Inventory and COGS for Ecommerce

Inventory is the bucket most sellers get wrong, and it costs them real money in tax and in decisions. The core rule is one sentence: cost of goods sold records when you sell a unit, not when you buy it.

When you buy stock, the money leaves your bank, but the cost does not become an expense yet. It sits in inventory, an asset. Only when a unit sells does its cost move from inventory into COGS, matched against the sale. This is the same accrual idea from earlier, applied to stock. Buy 1,000 units in one month and sell them over six, and your COGS spreads over those six months, not the one you bought in.

FIFO vs weighted-average

When you buy the same product at different prices over time, you need a rule for which cost goes to COGS first. The two common methods are FIFO and weighted-average. They give different numbers, and the difference is your reported profit.

Say you bought 1,000 units in three lots as prices rose:

Lot

Units

Cost per unit

Total

1

400

$10

$4,000

2

300

$12

$3,600

3

300

$15

$4,500

Total

1,000


$12,100

You sell 600 units at $25 each, which is $15,000 in revenue. Watch what each method does to your margin.

FIFO (first in, first out) sends the oldest costs to COGS first: 400 units at $10 plus 200 units at $12, which is $6,400. Your gross profit is $15,000 minus $6,400, or $8,600. Ending inventory is $5,700.

Weighted-average uses the blended cost of $12.10 per unit ($12,100 divided by 1,000). COGS is 600 times $12.10, or $7,260. Your gross profit is $15,000 minus $7,260, or $7,740. Ending inventory is $4,840.

Method

COGS

Gross profit

Margin

FIFO

$6,400

$8,600

57.3%

Weighted-average

$7,260

$7,740

51.6%

Same units, same sales, $860 difference in reported profit. In a rising-cost period, FIFO shows higher profit because it expenses the older, cheaper units first. Weighted-average smooths the cost. Neither is wrong. You pick one, you stay consistent, and you understand which one you're reading.

Recording the COGS entry

The method numbers above aren't just for reading. They become a journal entry. When you sell the 600 units under FIFO, you move $6,400 from inventory to cost of goods sold.

Account

Debit

Credit

Cost of Goods Sold

$6,400


Inventory


$6,400

This entry is separate from every payout entry earlier in this guide. None of the Shopify, Amazon, or Stripe payouts touched COGS. The payout records the sale and the fees. This entry records the cost of the goods that sale consumed. Two different events, often on two different days. Tie them to the same sale and your margin is real. Skip this entry and your profit and loss shows revenue with no cost behind it, which is the fastest way to think you're more profitable than you are.

Three more things that change your COGS

Periodic vs perpetual. Periodic means you count inventory at the end of a period and back into COGS. Perpetual means you update inventory with every sale. Most ecommerce tools support perpetual, which gives you live margin. Periodic is simpler but you fly blind between counts.

Landed cost. Your unit cost is not just the product price. It includes freight in, duties, and inbound handling. Buy a unit at $10 but pay $2 in freight and duty, and your real cost is $12. Sellers who book only the $10 overstate their margin by 20% and never know it. Always cost inventory at landed cost.

Returns and shrinkage. Returned units that go back into sellable stock reverse the COGS and restore the inventory. Damaged, lost, or stolen units are shrinkage, a real expense. Both have to hit the books or your inventory balance drifts away from what's on the shelf.

Returns, restocks, and in-transit inventory

A return has two halves. The refund reverses the revenue, and if the item comes back sellable, you also reverse its cost: move it from cost of goods sold back into inventory. Skip the second half and your inventory count is short while your COGS is overstated. If the returned item is damaged and can't be resold, the refund still reverses revenue, but the cost stays in COGS as a real loss.

In-transit inventory is stock you've paid for but haven't received. You wire a supplier $20,000 for goods on a boat. That's not an expense and it's not on your shelf yet. Book it to an in-transit inventory account, an asset, and move it to regular inventory when it lands. Sellers who expense the wire the day it leaves understate inventory and overstate costs for a month or more.

Bundles and kits need their own handling. If you sell three products as one kit, the kit's cost of goods sold is the sum of its components' costs, and your inventory has to relieve each component, not a single bundle SKU. Stores that track only the bundle lose sight of which components are running low and miscount what's on the shelf.

For tax method and inventory rules, the IRS covers this in Publication 334 and Publication 538, and the small-business inventory treatment comes from Section 471(c) discussed earlier. The valuation methods themselves (FIFO and weighted-average) come from generally accepted accounting principles. Inventory is also the area where a quick call with your CPA pays for itself, because the method choice has a tax effect and is not always free to change later.

Sales Tax and Economic Nexus for Ecommerce

Sales tax is the part of ecommerce bookkeeping most likely to create a real liability you didn't see coming. It is also the area where the rules change the most, so treat every number here as a starting point and verify your own states.

The rule that created the problem is the 2018 Supreme Court case, South Dakota v. Wayfair. Before Wayfair, you owed sales tax only in states where you had a physical presence. After Wayfair, states can require you to collect based on economic activity alone. That's "economic nexus." Cross a state's sales or transaction threshold and you have to register, collect, and remit there, even if you've never set foot in the state.

Here is the part that surprises sellers. Thresholds vary by state, and they're moving. Most states use a $100,000 sales threshold. Many states used to add an "or 200 transactions" rule, but a growing number have dropped that transaction count because 200 small orders is not the same burden as $100,000 in sales. As of early 2026, more than a dozen states have removed the transaction-count prong, including Illinois (effective January 1, 2026) and Alaska (2025), with Kentucky following in August 2026. Because this keeps changing, do not rely on a universal "$100k or 200 transactions" number. Check each state's current rule. A maintained reference like the Sales Tax Institute economic nexus state guide (accessed June 2026) is a good starting point, but your state's department of revenue is the final word.

One Shopify store selling nationwide can cross economic-nexus thresholds in a dozen or more states in a single year. Each one is a separate registration and filing obligation.

Marketplace facilitator laws change the math for some channels. In most states, Amazon and Walmart are "marketplace facilitators," which means they collect and remit sales tax on your behalf for sales made through their marketplace. Your direct sales, like your own Shopify store, are still yours to handle. So you can owe nothing on your Amazon sales in a state while still owing on your Shopify sales there. Track the two separately.

The workflow is register, then collect, then file on the state's cadence (monthly, quarterly, or annually based on volume). Tools that help include Stripe Tax, TaxJar, Anrok, and Avalara, named here without endorsement. None of them removes your responsibility to know where you have nexus.

Recording collected tax and remitting it

Sales tax moves through your books as a liability, start to finish. Remember the $1,420 of tax in the Shopify payout above. When you booked the payout, that $1,420 went to Sales Tax Payable. It never touched income. When you remit it to the state, you clear the liability.

Account

Debit

Credit

Sales Tax Payable

$1,420


Cash (bank)


$1,420

The balance in Sales Tax Payable at any moment is what you owe states but haven't paid yet. If that account is growing and you haven't filed, that's a red flag, not extra cash. Sellers who book collected tax as sales make their revenue look bigger and then have nothing set aside when the filing comes due.

This is genuinely a "talk to a sales-tax professional" area, especially once you're selling in many states. Getting it wrong builds a liability quietly, with interest and penalties, until a state notices. For a related deep dive, see our explainer on how economic nexus works.

Multi-Channel Attribution

Most growing stores end up on more than one channel. One business might sell on Shopify, Amazon, Etsy, and wholesale at the same time. That's four payout streams, four fee structures, and four reconciliation cadences, all landing in one bank account.

If all of it dumps into a single "sales" account, you lose the one number that matters most: channel-level margin. A channel can look fine in the blended total and still lose money once its fees come out. Amazon's referral and FBA fees can run 25% to 40% of the sale price. Your Shopify margin on the same product can be much higher. Blend them and the strong channel hides the weak one.

Here's the same $40 product sold three ways. Watch the margin move.


Shopify

Amazon FBA

Wholesale

Sale price

$40.00

$40.00

$22.00

Product cost (COGS)

$14.00

$14.00

$14.00

Processing fee

$1.46



Referral fee


$6.00


FBA fulfillment


$5.50


Net profit per unit

$24.54

$14.50

$8.00

Margin

61%

36%

36%

Same product, same cost, three different outcomes. Blended into one sales account, you'd see an average and miss that Amazon keeps barely more than half of what Shopify does after fees. With class tracking, this table is just a filtered profit and loss, and it tells you where to send inventory and ad spend.

The fix is class or location tracking, one class per channel. Tag every sale, every fee, and every refund to its channel. Now your profit and loss can show Amazon, Shopify, and wholesale side by side, each with its own real margin. That's how you decide where to push inventory and ad spend, and which channel to fix or drop.

This is also the point where doing it by hand stops scaling. Four channels times monthly payouts times every fee type is a lot of decomposition. You need a system that keeps each channel separate without you rebuilding the work every month.

A note on selling internationally

If you sell in more than one currency, each sale records in your home currency at the exchange rate on the day it happened. When the payout converts and lands, the rate has usually moved, and that difference is a foreign-exchange gain or loss, a separate line, not a change to your sales. Platforms also charge a currency-conversion fee, which is another processing cost. The rule holds: the sale, the fee, and the exchange difference are three different things, and each belongs in its own account.

DIY vs Software vs Bookkeeper vs Growthy

There's no single right way to keep ecommerce books. There's a right way for your stage. Here are the real options, honestly.

Spreadsheets

Free, flexible, and fine at very low volume. They break the moment payouts get complex or channels multiply. If you're reconciling settlement reports by hand in a spreadsheet, you've outgrown it.

Ecommerce bookkeeping software: the standard stack

The common answer the industry recommends is a connector like A2X, Link My Books, or Synder feeding into QuickBooks Online or Xero. The connector pulls the platform settlement, splits it into sales, fees, and refunds, and posts a clean summary to your general ledger. This works, and for many sellers it's the right setup. We link to a fuller ecommerce accounting software comparison for the details.

Ecommerce bookkeeping services: done-for-you

A bookkeeper or agency does it all for a monthly fee. The right call when you'd rather run the business than the books. The cost is real, often several hundred dollars a month and up, and the quality varies a lot, so know what you're buying.

Where Growthy fits

Growthy is a third mechanism, not another connector. It categorizes your transactions automatically and you review the rest. It's 85% accurate on first import, and the accuracy climbs as it learns your patterns. You can run it as a layer over QuickBooks or Xero, or as a standalone general ledger if you'd rather not keep QuickBooks at all. The point isn't "set it and forget it." It tells you what it isn't sure about and asks. Think of it through one lever: cut errors at the same cost, or cut cost at the same quality. You choose which. Growthy runs $149 a month billed annually, or $199 month to month.

When to hire an ecommerce bookkeeper

You've outgrown DIY when reconciling payouts eats hours you should spend on the business, when you've fallen behind on sales-tax filings, or when you can't answer "what's my margin by channel" without a half-day of work.

When you hire an ecommerce bookkeeper, make sure they already know the things in this guide. A good one talks fluently about settlement reports, clearing accounts, and economic nexus before you bring them up. The red flags: they reconcile from the bank statement instead of the platform report, they book deposits as revenue, or they can't explain how they track your inventory. Those are the exact mistakes that quietly wreck ecommerce books. If you run a firm and want a tool built for many clients, see our notes on bookkeeping software for multi-client firms.

For Bookkeepers: Running Ecommerce Clients at Scale

Most bookkeepers hit a ceiling around 15 to 25 clients. It's not a skill limit. It's a time limit. And ecommerce clients are the most time-expensive ones you have, because every client means payout decomposition, times every channel, times every month. Three ecommerce clients can eat the hours of ten simple service businesses.

That's the labor wall. The way through it is a repeatable method, not more hours. Here's a per-client monthly close that works the same way every time.

  1. Confirm the feeds. Bank, Shopify, Amazon, Stripe, and any other channel are connected and current.
  2. Pull the settlement and payout reports for the period. Not the bank statements. The platform reports are the source of truth.
  3. Reconcile each payout through its clearing account. Decompose to sales, fees, refunds, and tax collected, the same way we did above. Confirm each clearing account returns to zero.
  4. True up inventory and COGS. Record units shipped at landed cost.
  5. Review sales tax. Collected tax is a liability, and check whether the client crossed nexus anywhere new.
  6. Categorize the rest and flag what's unclear instead of guessing.
  7. Scan the balance sheet. A clearing account that never returns to zero is the tell that a payout is half-recorded.

Standardize the chart of accounts across all your ecommerce clients. Same account names, same clearing-account structure, same class setup. When every client's books look the same, the close becomes muscle memory, and you can hand parts of it to a junior without rebuilding from scratch.

This is also where the right tool breaks the ceiling instead of raising your hours. The slow part of an ecommerce close is categorizing hundreds of transactions per client, every month. Growthy handles the routine categorization automatically, you review what it flags, and it remembers each client's patterns. By month three, it knows a client's recurring vendors and fee lines better than any bank rule. As one bookkeeper put it, "the tell is always the same: clearing accounts that never return to zero." A tool that gets the routine right lets you spend your time on the clearing accounts that don't. The goal is plain: take on twice the clients without adding hours.

Onboarding a new ecommerce client

The first month is where the time goes, so make it a checklist, not a discovery. Connect every channel and bank feed. Pull three months of history to learn the patterns. Set up the standard chart of accounts, with a clearing account for each processor the client uses. Map each platform's payout report to the right accounts once, so the mapping repeats every month after. Run a first reconciliation and find the clearing accounts that don't zero, because the prior bookkeeper almost certainly left some open. Fixing those is often where you prove your worth in week one.

The time math

Here's why this matters to your practice. Say an ecommerce client takes four hours a month to close by hand: pulling reports, decomposing payouts, chasing the pieces that don't tie. Fifteen clients at four hours is sixty hours a month, and that's your ceiling. Cut the routine categorization and the repeated decomposition to one hour a client, and the same sixty hours covers far more clients. The ceiling was never your skill. It was the clicking. Move the clicking and the ceiling moves.

Common Ecommerce Bookkeeping Mistakes (the Difficult 20%)

Six mistakes account for most broken ecommerce books. Each one has a one-line fix.

  1. Net vs gross. Booking the deposit as revenue. It understates sales and hides fees. Fix: decompose every payout through a clearing account.
  2. Transfers booked as income. Owner draws, loans, inter-account transfers, and Shopify Capital advances all land as deposits and all look like sales. Fix: flag and classify each by what it actually is.
  3. COGS by payout timing. Expensing inventory when you buy it, or when cash moves, instead of when the unit sells. Fix: move cost from inventory to COGS at the sale.
  4. Sales tax collected booked as income. The most expensive setup error. Fix: collected tax is a liability you owe a state, never revenue.
  5. Ignoring reserves and holdbacks. Treating an Amazon reserve as spendable cash. Fix: book reserves to an asset account, not income, and not available cash.
  6. Reconciling by calendar month. Payouts close on platform cycles, not your month, so month-end forcing creates gaps. Fix: reconcile by payout period.

The reason these hide so well is the same in every case. The profit and loss can look fine while the balance sheet quietly rots underneath. A clearing account that never zeroes, a reserve treated as cash, a sales-tax liability booked as sales: none of it screams on the P&L. It shows up on the balance sheet, which is exactly why you check the balance sheet last in every close.

Your Monthly Ecommerce Bookkeeping Close (for the DIY Seller)

If you keep your own books, run the same steps in the same order every month. It turns a dreaded catch-up into a 90-minute routine.

  1. Pull every payout and settlement report for the month. Shopify payouts, your Amazon settlements, Stripe and PayPal balance reports.
  2. Decompose each payout through its clearing account. Sales, shipping, fees, refunds, and collected tax, each to the right account. Confirm every clearing account returns to zero.
  3. Record cost of goods sold for the units you sold, at landed cost.
  4. Update inventory for what you bought, what's in transit, and what came back.
  5. Check sales tax. Collected tax sits in the liability, and note any new state where you may have crossed nexus.
  6. Categorize the rest. Anything you're unsure about, flag it rather than guess.
  7. Reconcile your bank and each processor balance to the statements.
  8. Open the balance sheet. Clearing accounts near zero, reserve trending down, inventory matching your count. If something's off, it's hiding here, not on the profit and loss.

Do this monthly and you never face a year-end cleanup. Skip it for six months and you'll pay a bookkeeper to untangle it, which costs far more than the routine would have.

Deposits, Gift Cards, and Other Liabilities

A few ecommerce balances are money you hold but don't own yet. Book them as liabilities, not income, or your revenue inflates and your balance sheet misleads you.

Gift cards and store credit. When a customer buys a $100 gift card, you got $100 in cash but earned nothing yet. The sale happens when they redeem it.

Account

Debit

Credit

Cash (bank)

$100


Gift Card Liability


$100

When they redeem the card for products, you move that $100 from the liability into revenue, the same way deferred revenue releases. Unredeemed balances sit on your balance sheet as a liability, sometimes for years.

Customer deposits and pre-orders. Money taken before you ship is a liability until the product goes out. Pre-order revenue booked the day the cash arrives is the same mistake as booking an annual contract upfront. It counts money you haven't earned.

Tips and shipping you owe. Tips collected at checkout are passthrough, a liability until paid out. Shipping you collect is income, but the labels you owe a carrier are an expense, and the two are easy to net by accident.

The thread through all of these is the payout method again. The cash hitting your account is not the measure of what you earned. Sort each dollar into the right account and the books tell the truth.

Reading Your Ecommerce Financials Once They're Right

Clean books exist to answer questions. Here's what good ecommerce books let you see that messy ones hide.

Real gross margin. With revenue gross, fees in their own accounts, and COGS tied to units sold, your gross margin is the true number: revenue minus COGS, before operating costs. Sellers running net deposits as revenue can be off by ten points or more and never know which products actually make money.

Margin by channel. With class tracking, your profit and loss splits by Shopify, Amazon, and wholesale. This is where most sellers find a surprise. A channel that drives volume can lose money once its fees come out, while a quieter channel carries the business.

A balance sheet that ties out. This is the test that catches everything. Every clearing account should sit near zero between payouts. The reserve account should trend down as Amazon releases funds. Sales Tax Payable should match what you owe and haven't filed. Inventory should match a physical count. When the balance sheet ties, the profit and loss can be trusted. When clearing accounts drift and the reserve climbs forever, the profit and loss is fiction no matter how good it looks.

Cash you can actually spend. Reserves, gift card balances, and sales tax you owe are all sitting in or around your cash. Clean books separate the money you've earned from the money you're only holding. That's the difference between a confident decision and an overdraft.

This is the real payoff of the method in this guide. Not tidy books for their own sake, but numbers you can run the business on. Get the payouts right and everything downstream rests on numbers that are true: your real margin, your tax position, the timing of your next inventory order. Get them wrong and every decision after inherits the error.

Conclusion

Ecommerce bookkeeping comes down to one habit: never trust the deposit. Take every payout apart through a clearing account, match cost of goods sold to the units you actually sold, and keep sales tax in the liability where it belongs. Do that on each channel, every month, and your books tell the truth. The next payout that hits your bank is the place to start. Decompose it, tie the clearing account back to zero, and build the rest of the month from there.

Frequently Asked Questions

Do I need accrual accounting for my ecommerce business?

If you hold inventory, accrual gives you real margin, because it matches cost of goods sold to the sale instead of to when you bought stock. For tax, a small business under the $32 million gross-receipts threshold may use cash accounting with a simplified inventory method. Run accrual on your internal books once you carry inventory, and let your CPA set the tax election.

How do I record a Shopify payout in QuickBooks?

Don't book the deposit as sales. Route the payout through a Shopify Payments Clearing account. Post gross sales, shipping, and collected sales tax as credits, post fees, refunds, and chargebacks as debits, then record the bank deposit against clearing. When clearing returns to zero, the payout is fully recorded and your revenue and fees are both correct.

Is sales tax collected income?

No. Sales tax you collect is a liability. It's money you hold for the state until you remit it. Book it to a Sales Tax Payable account, never to revenue. Booking collected tax as income overstates your sales and leaves you with nothing set aside when the filing comes due, which is one of the most expensive ecommerce bookkeeping errors.

How do I account for Amazon FBA fees?

Build the entry from the 14-day settlement report, not your bank statement. The settlement lists each fee type: referral, fulfillment, storage, advertising, and more. Post gross sales to an Amazon Settlement Clearing account, then post each fee as an expense against clearing. The reserve Amazon holds is an asset, not an expense. Cost of goods sold is recorded separately, from your inventory records.

Cash or accrual for a new online store?

If you're small, low-volume, and carry little inventory, cash is simple and usually fine, and it may be allowed for tax under the $32 million threshold. The moment you hold real inventory, switch your internal books to accrual so you can see true margin. The two questions, internal books and tax method, are separate. Confirm the tax election with your accountant.

Do I owe sales tax in every state I ship to?

Not automatically. You owe where you have nexus, which now includes economic nexus after the 2018 Wayfair decision. Most states set the bar around $100,000 in sales, and many have dropped the old "200 transactions" rule. Thresholds vary and keep changing, so check each state. Marketplaces like Amazon often collect and remit for you, but your direct store sales are still yours.

What's the difference between ecommerce bookkeeping and accounting?

Bookkeeping is the recording: decomposing payouts, posting entries, tracking inventory, reconciling accounts. Accounting is the layer on top: interpreting the books, choosing methods, tax strategy, and financial statements for decisions. This guide is the bookkeeping. For the wider view, see our ecommerce accounting guide. You need clean books before accounting can tell you anything true.

What is a clearing account and why do I need one?

A clearing account is a temporary holding account for a payment processor, like Shopify Payments Clearing. The payout lands there, you decompose it into sales, fees, refunds, and tax, then record the bank deposit against it. When it returns to zero, the payout is fully recorded. It's the one mechanism that makes payout reconciliation reliable, and a clearing account that never zeroes is the clearest sign something's wrong.

How do I handle refunds and chargebacks?

A refund reduces revenue, so book it to a contra-income account, not as an expense. A chargeback is a disputed charge reversed by the bank, often with a fee, and it usually comes out of a processor payout. Record both against the same clearing account as the original sale. If the refunded item returns to sellable stock, reverse its cost of goods sold too.

What reports do I need to do ecommerce bookkeeping?

Start with the platform settlement and payout reports (Shopify payouts, the Amazon 14-day settlement, Stripe balance reports), because those are your source of truth, not the bank statement. Add your inventory records for cost of goods sold and a sales-tax report by state. The bank statement is the last check, confirming the net deposit matches what your decomposed entries say it should.

When should I hire an ecommerce bookkeeper?

Hire when reconciling payouts eats hours you need for the business, when you've fallen behind on sales-tax filings, or when you can't see margin by channel without a half-day of work. Make sure they already understand settlement reports, clearing accounts, and economic nexus. If they reconcile from the bank statement or book deposits as revenue, keep looking.

FIFO or weighted-average for my inventory?

Either is acceptable under GAAP. Weighted-average is simpler and smooths cost swings, which suits most small stores. FIFO tracks actual cost layers and, in a rising-cost period, reports higher profit and higher ending inventory. Pick one, apply it consistently, and know that switching methods later can have a tax effect, so confirm with your CPA before you change.

How do I track profit by sales channel?

Set up class or location tracking, with one class per channel, and tag every sale, fee, and refund to its channel. Your profit and loss can then split by Shopify, Amazon, and wholesale, each with its own margin after fees. Without it, a high-fee channel can quietly lose money while the blended total looks healthy.

If Amazon collects sales tax for me, do I still need to track it?

Yes. Record the tax Amazon collects and remits so your books match the settlement, even though you don't owe it separately. And marketplace collection only covers marketplace sales. Your own Shopify or direct sales in that state are still yours to track, register for, and remit. Keep the two streams separate.

How do I value inventory at year-end?

Count what's physically on hand and value it at cost using your chosen method, FIFO or weighted-average, at landed cost. That number is your ending inventory on the balance sheet, and it sets your cost of goods sold through one formula: beginning inventory plus purchases minus ending inventory equals COGS. An accurate year-end count is the single biggest driver of an accurate tax return for an inventory business.

Your books are only as good as the method behind every payout. If you'd rather not categorize hundreds of transactions by hand every month, start with Growthy and let it categorize your ecommerce transactions while you review the rest. It learns your store's patterns and tells you what it isn't sure about, at $149 a month billed annually.

Sources

  • IRS, Revenue Procedure 2025-32, 2026 inflation-adjusted amounts. Section 448(c) gross-receipts threshold is $32,000,000 for tax year 2026. Accessed June 23, 2026.
  • Internal Revenue Code Sections 471(c) and 263A, small-business inventory and uniform-capitalization exceptions.
  • IRS Publication 334 (Tax Guide for Small Business) and Publication 538 (Accounting Periods and Methods).
  • South Dakota v. Wayfair, Inc., 585 U.S. 162 (2018), the economic-nexus standard for sales tax.
  • Sales Tax Institute, Economic Nexus State Guide. Accessed June 23, 2026. State thresholds vary and change; confirm with each state's department of revenue.
  • Shopify Help Center, Shopify Payments payout and fee documentation. Accessed June 23, 2026.
  • Amazon Seller Central, settlement report and FBA fee documentation. Accessed June 23, 2026.
  • Generally accepted accounting principles (GAAP), inventory valuation methods (FIFO and weighted-average).

Fee rates and platform mechanics in this guide are illustrative and change over time. Verify current rates in your own platform dashboards. Tax thresholds verified against tax-thresholds-2026 on June 23, 2026. This guide is general information, not tax or legal advice for your specific situation.

See It Work on Your Data

Free during alpha. Read-only access. You review every sync.

✓ No credit card✓ Works with QuickBooks✓ 85% accuracy
Request Early Access

Bobby Huang • Partner, SDO CPA LLC / CEO, Growthy

CPA firm partner who got tired of watching bookkeepers click categorize 500 times a day. Built Growthy to fix it.

View author profile

Growthy is dedicated to helping businesses of all sizes make informed decisions. We adhere to strict editorial guidelines to ensure that our content meets and maintains our high standards.

Keep reading

a purple background with a basket of items and a target
Ecommerce Accounting: A Practitioner's Guide to Payouts, Fees, Inventory, and Multi-Channel Books

Ecommerce Chart of Accounts: The Template QBO Doesn't Ship

You set up QBO for an ecommerce client. The default chart looks fine. Then the Shopify payout lands. You have one "Product Revenue" account. No line for Amazon fees. Sales tax in income where it has no place.

B
Bobby Huang
7 min
Featured image for Ecommerce Inventory and COGS: Tying Cost to Fulfillment, Not Payout Timing
Ecommerce Accounting: A Practitioner's Guide to Payouts, Fees, Inventory, and Multi-Channel Books

Ecommerce Inventory and COGS: Tying Cost to Fulfillment, Not Payout Timing

Most ecommerce sellers get paid two to three weeks after a sale. That delay is fine for cash flow planning. But many sellers let that same delay drive how they record costs. That's a much more expensive mistake.

B
Bobby Huang
8 min
Featured image for Sales Tax Nexus for SaaS Startups: How to Stay Compliant Without Hiring a Tax Team
Ecommerce Accounting: A Practitioner's Guide to Payouts, Fees, Inventory, and Multi-Channel Books

Ecommerce Sales Tax Nexus: When a Single Store Triggers a Liability

You open one Shopify store. You sell to buyers across the country. It feels like one business, in one place, with one ecommerce sales tax nexus problem.

B
Bobby Huang
12 min