- 1What Makes Accounting for an Ecommerce Business Different
- 21. You get paid in payouts, not sales
- 32. Fees are subtracted before you ever see the money
- 43. Sales tax accrues invisibly — and it was never your money
- 54. Refunds cross periods
- 65. Inventory and COGS have their own clock
- 7All five are translation problems
- 8The Bookkeeping Rhythm: Daily, Weekly, Monthly
- 9Accounting for Online Sellers at Every Stage
- 10Under ~30 orders a month: discipline beats tooling
- 11Growing (a few hundred to a few thousand orders): automate the translation
- 12Multi-store and omnichannel: the consolidation problem
- 13Hiring help: what to hand off, and when
- 14A Word on Software
- 15The Version Where the Map Is on the Wall
Every ecommerce accounting article covers one fragment — payouts, fees, sales tax, refunds. This one is the whole map.
The deposit hit your bank account on Tuesday: $4,620. Shopify says the weekend's sales were $5,000. The bank feed shows one line — a single lump from your payment processor — and nowhere, on any screen you can find, is there a line item labeled "the missing $380."
If you learned bookkeeping the way most store owners did — a general small-business guide, a QuickBooks tutorial, maybe an accountant friend's advice — you were taught a clean system: record your income, categorize your expenses, match your deposits, reconcile monthly. And that system keeps failing you in ways the guide never mentioned. The deposit doesn't equal the sales. Fees you never got invoiced for are hiding somewhere. Sales tax is accruing in a place you can't see. A refund from last month just made this month's numbers wrong. Every few weeks, your store finds a new rule to break.
Here's the lie underneath all of it: "Ecommerce accounting is just regular small-business accounting with an online store attached."
It isn't. Ecommerce accounting differs from generic bookkeeping structurally — in five specific, nameable ways. Not "it's more complex." Different in mechanism. The reason you keep getting ambushed isn't that you're bad at this; it's that nobody handed you the map. This guide is that map: the five differences, the routine that keeps them managed, and what accounting for online sellers looks like at each stage of growth.
What Makes Accounting for an Ecommerce Business Different
Every confusing symptom you've hit traces back to one of five structural differences. Once you can name which one is biting you, the fix is already documented.
1. You get paid in payouts, not sales
A consultant invoices a client for $2,000 and receives $2,000. You sell $5,000 across forty orders and receive… something else, days later, in a batch.
That's the payout model. Your payment processor collects every order, holds the money, subtracts its fees, subtracts refunds, adds adjustments, and deposits the net on its own schedule. The deposit in your bank is not revenue — it's revenue minus four other things, time-shifted. Record deposits as income and your books understate sales, hide fees, and drift further from reality every month.
This single difference causes the most common ecommerce accounting symptom there is: the payout that never matches your books. We've written a full explainer on why your Shopify payout never matches what QuickBooks shows, and a complete method for reconciling Shopify payouts in QuickBooks — the exact report, the journal entry, all of it. If you sell in more than one currency, the payout math gains another layer; that gets its own treatment in our guide to multi-currency Shopify sales in QuickBooks.
2. Fees are subtracted before you ever see the money
Your landlord sends an invoice. Your payment processor doesn't. Processing fees, platform fees, and transaction adjustments come out of the payout before it reaches you — there's no bill to pay, no expense to enter, no prompt of any kind.
Which means that unless you actively extract them, those fees simply don't exist in your books. On $5,000 of weekend sales, roughly $150 of processing cost vanished inside that Tuesday deposit. Skip the extraction and two numbers go wrong at once: revenue is understated and expenses are understated, so your profit looks right while your margins are lying. Our guide to Shopify fees in QuickBooks breaks down every fee type and where each one belongs.
3. Sales tax accrues invisibly — and it was never your money
When a customer in a state where you have nexus pays $107 for a $100 order, that $7 is not revenue. It's a liability — money you're holding on behalf of a tax authority until remittance day.
The trap is that it arrives mixed into the same payout as everything else. If your books treat the whole deposit as income, you're recognizing revenue you owe to someone else, and the bill still arrives — just months later, as a surprise. Economic nexus rules mean you can owe tax in states you've never set foot in, purely on sales volume. The tax prep checklist for Shopify stores walks through getting this liability visible before filing season does it for you.
Getting that liability out of the income line is, in the end, a routing decision — and it's worth seeing it as an actual setting rather than a bookkeeping virtue. In LedgerPort, the routing lives in Sync Config, under the tax settings, and it has exactly two branches. Line Item Tax puts the tax on each QuickBooks transaction as its own line, posted to a liability account you designate — so the $7 lands in something like "Sales Tax Payable" on every order, automatically, instead of inflating revenue. Or you flip to QuickBooks Automated Sales Tax and let QuickBooks' own engine compute and track it. Two details show how seriously the money-that-isn't-yours principle is enforced. If an order arrives carrying a tax rate with no matching configuration, the sync errors and holds the order rather than guessing where someone else's money should go. And a tax-rounding option adds a cent-level adjustment line whenever your store and QuickBooks calculate tax a penny apart, so rounding noise never surfaces as a mystery at reconciliation. (The screenshot shows the Shopify app; the WooCommerce edition exposes the same tax controls.)

4. Refunds cross periods
A brick-and-mortar refund happens at the register, same drawer, same day. An ecommerce refund routinely happens three weeks after the sale — which is often a different month, and sometimes a different quarter.
So March's "final" numbers weren't final: April's refunds reached back and changed them. Worse, the processing fee from the original sale usually isn't returned to you, so a refund isn't a clean reversal — it's a reversal plus a stranded cost. Handled naively, refunds double-count revenue or orphan fees. Handled correctly, they're a known pattern with a known entry, covered in our guide to refunds and returns in ecommerce accounting.
5. Inventory and COGS have their own clock
The generic playbook says: you bought something for the business, record the expense. Do that with inventory and your books whipsaw — a $12,000 stock order makes March look catastrophic and April—June look artificially brilliant.
Inventory isn't an expense when you buy it; it's an asset that becomes an expense (cost of goods sold) at the moment each unit sells. That timing difference is the entire basis of knowing your real margins. It also demands an account structure built for it — a generic chart of accounts has nowhere sensible to put a clearing account, a sales tax liability, or COGS by channel. We've published a chart of accounts template for ecommerce that gives every one of these a home, and a guide to how to record Shopify sales in QuickBooks that covers the recording methods — per-order versus daily summary — and when each fits.
All five are translation problems
Notice the shape of the list. None of these five differences is an arithmetic problem — every one is a translation problem. Your store speaks in orders, payouts, and fees; your ledger speaks in accounts, entries, and periods. The books go wrong exactly where the translation is missing.
That's why the working fix — whether you do it by hand or with software — is always a translation layer: an explicit statement of "this store thing maps to that QuickBooks account." In LedgerPort, that layer is literally a page. The Mappings screen lists every entity your store produces — products, customers, tax codes, payment methods — and pairs each one with a QuickBooks account or item. An Auto-Map pass matches most of them by name; you review the suggestions and set the stragglers manually. Once the map exists, every future order follows it without asking you.

The Bookkeeping Rhythm: Daily, Weekly, Monthly
Knowing the five differences is the map. A routine is what keeps you on it. Bookkeeping for e-commerce isn't a heroic quarterly excavation — done right, it's a small, boring, repeating loop.
| Cadence | Time | What you actually do |
|---|---|---|
| Daily | ~5 min | Glance at the bank feed. Confirm yesterday's orders recorded. Check for sync or entry errors while they're one day old, not ninety. |
| Weekly | 15–30 min | Tie the week's payouts to bank deposits. Clear anything unmatched — a new product, a new payment method — before it piles up. |
| חודשי | 1–2 hrs | The close: reconcile the clearing account to zero, review the sales tax liability, book COGS, then read the P&L like you mean it. |
Two things make this rhythm work. First, the structure: numbered accounts, a clearing account, consistent categorization — the discipline side is covered in our ecommerce accounting best practices guide, which pairs with this one. Second, the error surfacing: the routine only stays small if problems announce themselves instead of hiding.
This is the part worth seeing concretely. In LedgerPort, every record that moves to QuickBooks gets a status in the audit log — Synced, Error, Pending, or On Hold — so the daily five minutes is literally a scan for red. And each error type has a documented fix, not a mystery: an unmatched customer, for instance, is resolved either by mapping that customer manually or by flipping one setting so all walk-in-style customers route to a single generic QuickBooks customer, then re-syncing the affected orders.

The monthly close, in this world, stops being detective work. The clearing account either hits zero or it doesn't — and if it doesn't, the log tells you which record is the culprit.
There's a fair objection to all of this: the rhythm presumes a working pipeline between your store and your ledger, and pipelines sound like implementation projects. So it's worth walking through the first fifteen minutes, because they are the project. Taking LedgerPort's dashboard path as the example: create an account — name, email, business name, or Continue with Google — then click Connections in the sidebar. QuickBooks first: click Connect QuickBooks, sign in on the QuickBooks side, click Authorize, and you're returned with the status reading Connected. One genuine caution here: the accounting connection can't be switched later, so confirm you're authorizing the right QuickBooks company. Then the store: click Connect Shopify Store, enter your your-store.myshopify.com URL, approve the install, and it reads Connected too. Back on the dashboard, the setup checklist has exactly three items — connect your store, connect QuickBooks, enable auto-sync — and two of them are already checked off. Toggle auto-sync on and the loop above has something to run on: the daily five minutes becomes a real scan, because there's now a pipeline producing statuses to read.

Accounting for Online Sellers at Every Stage
The right amount of accounting machinery depends on volume. Here's the honest version of what accounting for ecommerce sellers looks like at each stage — including where the cheap option is genuinely the correct one.
Under ~30 orders a month: discipline beats tooling
At this volume, a spreadsheet plus the five-differences map plus the weekly rhythm is a legitimate system. Your error surface is small enough to manage by hand, and your time is better spent getting to 100 orders.
The one upgrade worth taking is free automation, since it exists: LedgerPort's free plan covers exactly this stage — one store, up to 30 orders a month, manual sync whenever you want it. Setup runs about 15 minutes: install from the Shopify App Store, create your account right inside the embedded app, authorize QuickBooks via OAuth (your password never touches LedgerPort), and push your first sync to confirm everything lands where the mappings say it should.

Running on WooCommerce instead? The five differences are identical; the mechanics differ. Start with the WooCommerce bookkeeping guide.
Growing (a few hundred to a few thousand orders): automate the translation
Somewhere past a couple hundred orders a month, the manual rhythm stops fitting in its time boxes. The weekly tie-out becomes an evening; the monthly close becomes a weekend. This is the stage where automating the translation layer pays for itself fastest — stores at meaningful volume report saving hours every week. Our guide to ecommerce accounting automation covers what to automate first and what to keep human.
Multi-store and omnichannel: the consolidation problem
A second store — or a retail channel next to your online one — doesn't double the accounting work; it introduces a new problem entirely: keeping channels separate enough to compare and consolidated enough to file. That's a structural setup question, covered in multi-store ecommerce accounting and, for sellers with physical retail in the mix, retail accounting software.
Hiring help: what to hand off, and when
A bookkeeper or CPA is worth every dollar after your data pipeline is clean — a professional working from mangled payout data is expensive data entry. If you're evaluating outside help, the bookkeeping-services section of our Shopify accounting software roundup covers the handoff honestly, and if your accountant wants to standardize their side, point them at LedgerPort for CPAs.
A Word on Software
This guide has deliberately stayed on the how it works side, because picking software before understanding the five differences is how people buy the wrong thing. When you are ready to compare tools: QuickBooks Online remains the ledger of record for most stores, the real decision is which translation layer sits between your store and it, and the options differ mainly in error recovery, fee separation, and edge-case handling. We've done the full comparison in our ecommerce accounting software roundup — including where each competitor is genuinely strong.
The Version Where the Map Is on the Wall
Come back to that Tuesday deposit: $4,620 against $5,000 in sales. With the map, the missing $380 isn't missing at all. Roughly $150 was processing fees — difference #2, booked to its own expense account. About $200 was sales tax — difference #3, sitting in a liability account because it was never yours. A $30 refund reached back from last week — difference #4, reversed cleanly with its stranded fee accounted for. The deposit ties to the payout, the payout ties to the orders, and the clearing account reads zero.
That's the whole transformation, and it's pleasingly anticlimactic. No forensic weekends. No dreading the question "can you send me your books?" — your CPA's month-end email shrinks to one line, and it's a nice one. The store owner who kept getting ambushed wasn't missing talent; they were missing a map with five landmarks on it. Now it's on the wall, and every weird number that shows up has a known home and a known fix.
You've seen what the translation layer looks like as an actual product — the mappings page, the audit log, the 15-minute Shopify on-ramp. If your store is under 30 orders a month, the free plan covers everything this guide described, and the paid tiers carry a 14-day, no-questions money-back guarantee. Set up the map once, and let every future order follow it →
