Shopify Bookkeeping: Chart of Accounts, Payment Reconciliation, and Sales Tax Tracking
Shopify’s built-in reports tell you what happened on the store, not what belongs on your books, and the gap between those two things is where most e-commerce bookkeeping goes wrong. A Shopify payout deposit lands in the bank as one lump sum that already nets out refunds, chargebacks, processing fees, and sometimes sales tax, and if that deposit gets booked straight to revenue, the books show a distorted picture of sales, fees, and margin all mixed together. A proper e-commerce chart of accounts separates gross revenue from the deductions that get you to net deposit, and a proper reconciliation process ties every dollar that hits the bank back to an order-level source, so that revenue recognition, sales tax liability, and true payment processing cost are each visible on their own line, not buried inside a bank deposit.
Revenue should be recognized when the order is fulfilled and control of the goods passes to the customer, not when the order is placed and payment is captured, which matters most for pre-orders and backordered items where there can be a real gap between the two dates. The chart of accounts needs separate line items for gross product revenue, shipping revenue collected from customers, discounts, refunds and chargebacks (as contra-revenue, not expenses), and a sales tax liability account that is never touched as income. Payment processor fees (Shopify Payments typically around 2.9% plus $0.30 per transaction for standard online plans, third-party gateways often similar or higher) should post as an expense, not get netted invisibly against revenue inside the bank deposit. A monthly reconciliation that ties Shopify’s payout reports to the bank deposits and to the general ledger is the control that catches errors before they compound across a full year.
When should revenue actually be recognized?
Revenue is recognized when the performance obligation is satisfied, which for a typical e-commerce sale means when the product ships (or, more precisely, when control transfers to the customer, which is usually at shipment under standard FOB shipping point terms). This is the standard under ASC 606 for financial reporting purposes, and it is also the more defensible position for tax purposes under the accrual method. The order date and the payment-capture date are not the recognition trigger.
- Most orders ship within a day or two of being placed, so the practical gap is small, but it is not zero, and it matters at month-end and year-end cutoff. An order placed and paid for on December 30 but not shipped until January 3 is January revenue, not December revenue, under accrual accounting, even though the cash was captured in December.
- Pre-orders and backordered items create a real timing gap that has to be tracked deliberately. Payment is often captured at the time the pre-order is placed, sometimes weeks or months before the item ships. That payment should sit in a deferred revenue (unearned revenue) liability account until the item actually ships, not hit revenue on the date of capture. A store running frequent pre-order campaigns without a deferred revenue account is systematically overstating revenue in the month cash comes in and understating it in the month the product actually ships.
- Cash-method taxpayers have more flexibility but still need internal consistency. A small e-commerce business under the cash method (available to most businesses below the gross receipts threshold for the small business exemption from accrual, currently $32 million in average annual gross receipts for 2026 under IRC 448(c)) can recognize income when received rather than when earned for tax purposes, but even then, internal management reporting is more useful on a shipment-recognized basis so that revenue trends reflect actual fulfillment activity rather than payment-processing timing.
What does a proper e-commerce chart of accounts look like?
The core principle is separating gross activity from the deductions that get you to net cash, so that each piece is visible on its own line rather than disappearing into a single netted deposit entry.
- Gross product revenue. The full sale price of goods sold, before any discount, at the invoice or order level.
- Shipping revenue. Amounts charged to customers for shipping, tracked separately from product revenue. This matters because shipping revenue and the associated shipping expense (postage, carrier fees) should be visible against each other; a store that loses money on shipping (charging $5, paying the carrier $9) needs to see that gap, and it disappears if shipping charged to customers gets buried inside product revenue.
- Sales discounts. Coupon codes, percentage-off promotions, and any other price reduction applied at checkout, recorded as a contra-revenue account (a deduction from gross revenue), not as a marketing expense.
- Sales returns and allowances. Refunds issued for returned merchandise, also contra-revenue, tracked separately from chargebacks.
- Chargebacks. Disputed transactions reversed by the customer’s card issuer, tracked separately from voluntary refunds because chargebacks often carry an additional processor fee and sometimes result in the merchandise never being returned, which is a different economic event than a standard refund.
- Sales tax payable (liability, not income). Sales tax collected from customers is never revenue. It should post directly to a liability account from the point of collection and get relieved when remitted to the state. A common and costly error is letting sales tax collected flow through revenue and then trying to back it out at tax time; this creates reconciliation headaches and risks the tax being reported as if it were taxable income.
- Cost of goods sold. The landed cost of inventory actually sold in the period, separate from operating expenses. Covered in depth in E-commerce inventory accounting.
- Payment processing fees. The percentage-plus-fixed-fee cost charged by Shopify Payments or a third-party gateway, recorded as an operating expense, not netted against revenue.
How should refunds, chargebacks, and discounts be handled?
Each of these three reduces what the customer ultimately pays, but they are different events with different accounting and different tax implications, and treating them identically loses information a store owner needs to run the business.
- Refunds reduce revenue and typically also reduce the associated sales tax liability (most states require the seller to remit tax only on the net amount actually retained, and allow an adjustment or credit for tax on refunded sales). The refund should also trigger a reversal of the cost of goods sold entry if the merchandise is returned to sellable inventory; if the item is not returned or is returned as unsellable, the COGS reversal should not happen, and the loss stays with the original sale.
- Chargebacks carry an extra layer: the processor typically charges the merchant a chargeback fee (often $15 to $25 per incident) regardless of the outcome, and if the merchant loses the dispute, the original sale amount is also reversed. Chargebacks should be tracked in their own account so a business can see its chargeback rate, which matters both for cash flow and because processors can terminate merchant accounts that exceed a chargeback rate threshold (commonly around 1%).
- Discounts applied at checkout reduce the sale price before the transaction is even captured, so unlike refunds and chargebacks, there is no reversal of an already-recorded sale. They should still be tracked separately from gross revenue (rather than simply recording the net, post-discount amount as revenue) so the business can measure how much margin is being given up through promotions over time.
How do I handle Shopify Payments vs third-party gateways?
Shopify Payments (Shopify’s own integrated processor, built on Stripe’s infrastructure) and third-party gateways (PayPal, Affirm, Klarna, Amazon Pay accepted through Shopify) generally charge similar percentage-plus-fixed-fee structures, but they settle differently, and that affects reconciliation.
- Shopify Payments settles directly into the connected bank account on a payout schedule (often every one to three business days), and Shopify’s payout reports show the gross sales, fees, refunds, and net deposit for each payout batch, which makes reconciliation relatively straightforward when the payout report is used as the reconciling document rather than trying to back into the numbers from the bank feed alone.
- Third-party gateways settle on their own schedule, sometimes with a longer holding period, and Shopify charges an additional fee (commonly 0.5% to 2%) on transactions processed through a gateway other than Shopify Payments, on top of whatever the third-party processor itself charges. That additional Shopify fee needs its own line in the chart of accounts; it is easy to miss because it does not appear on the third-party processor’s own statement.
- A store running multiple payment methods needs multiple reconciliations, not one. Each processor’s payout report should be reconciled to the bank separately, since combining them into one blended reconciliation makes it much harder to spot a missing or delayed payout from one specific method.
What does a monthly reconciliation process look like?
The reconciliation exists to catch the gap between what Shopify’s reports say happened and what actually hit the bank, before that gap compounds across a full year and becomes difficult to unwind at tax time.
- Pull Shopify’s Finance Summary and Payout reports for the month. These show gross sales, discounts, returns, shipping, taxes, and net payouts by processor.
- Match each payout to the bank deposit it corresponds to. Payouts do not always land on the same day they were initiated, and a payout initiated on the last day of the month may not hit the bank until the following month, which is a normal timing difference, not an error, as long as it is tracked and not double-counted.
- Confirm the sales tax liability account balance matches what Shopify’s tax reports say was collected, less what has already been remitted. A running mismatch here is usually the first sign that a manual entry bypassed the normal posting flow.
- Reconcile inventory received and sold against the cost of goods sold entry for the period, particularly for a store running promotions or dealing with returns, where the COGS reversal for returned goods needs to match the actual return volume.
- Review any manual journal entries made outside the standard Shopify-to-books integration (through an app like A2X, Synder, or a direct accounting software connector) for the month, since these are the most common source of double-counted or missed transactions.
What should I do next?
If your books currently record Shopify deposits as revenue directly, rebuild the chart of accounts to separate gross revenue, discounts, refunds, chargebacks, sales tax payable, and processing fees before the next month closes. Set a recurring monthly reconciliation using Shopify’s payout and finance reports as the source document, not the bank feed alone. If you run pre-orders or backordered items, confirm a deferred revenue account exists and is actually being used.
- E-commerce sales tax nexus: economic nexus, Wayfair, and multistate compliance, what the sales tax payable account needs to track by state
- Amazon FBA tax issues, the parallel bookkeeping questions for sellers running Amazon alongside Shopify
- E-commerce inventory accounting: COGS, FIFO vs. average cost, and UNICAP, how the cost of goods sold entry in your chart of accounts should actually be calculated
- Dropshipping tax treatment, how the chart of accounts changes when you never hold inventory
Related guides:
- Ecommerce Amazon Fba Tax Inventory Nexus
- Ecommerce Dropshipping Tax Sales Tax Income
- Ecommerce Entity Structure Llc Scorp Tax Planning
- Ecommerce International Selling Customs Duties Tax
- Ecommerce Inventory Accounting Cogs Methods
Start with a Diagnostic: a CPA licensed in the US and Canada reads your file and tells you in writing what's wrong and how to fix it, three to four business days after you finish the questions. The report is $250. If you hire us for any work after that, you get the $250 back as a discount on that work. Or send us your return or your letter and get a fixed price, free.
One or two plain-English guides a week on US-Canada tax. No spam, unsubscribe anytime.
Done. The next guide will land in your inbox.
Yarik Yarosh, CPA. "Shopify Bookkeeping: Chart of Accounts, Payment Reconciliation, and Sales Tax Tracking." Blue Cloud CPA, September 4, 2026, updated September 23, 2026. https://bluecloudcpa.com/guides/ecommerce-shopify-bookkeeping-chart-of-accounts
This guide is general information, not tax advice for your specific situation. Which points apply, and how, depends on your facts.