Fix guide
How to reconcile Shopify with QuickBooks Online manually
Manual reconciliation of Shopify against QuickBooks is entirely doable with two CSV exports and a spreadsheet. It's the same line-by-line diff any tool runs - you'll just be the engine. For a few hundred orders a month, expect a focused session of a few hours the first time, faster after that. This guide is the complete method, honestly including the tedious parts.
The core idea: match every paid Shopify order to exactly one QuickBooks transaction by order reference, then compare amounts and tax on the matches. Everything falls into one of five buckets - matched clean, missing from QBO, duplicated in QBO, amount mismatch, or unmatched refund - and each bucket has a defined action.
One rule keeps the whole exercise honest: respect settlement timing. Orders from the last ~5 business days may legitimately not have posted yet. Build that buffer in from the start and you won't chase phantom discrepancies.
The symptoms
- You want certainty about your books and would rather verify than trust the sync's dashboard
- Something specific is off - a payout, a tax total, a P&L number - and you need to find which orders explain it
- You're closing a period or preparing a filing and want an independent check first
- A bookkeeper quoted hours of cleanup and you want to see the damage yourself before committing
Why it happens
Why line-by-line beats totals
Comparing period totals tells you that something is wrong, never what. Two errors can offset (a duplicate hiding a missing order), and a total can look close while tax is systematically off. Matching order by order is the only method that produces an actionable list - this specific order, missing; that one, doubled.
Why the order reference is the backbone
Most syncs stamp the Shopify order number onto each QBO transaction (in the Num or Memo field). Matching on that reference is exact. Where it's absent, you fall back to amount + date matching, which works but requires human judgment on ties - one reason the manual method gets slow at volume.
How to check and fix it by hand
- 01
Produce both exports with matching windows
Follow our Shopify orders export guide and QuickBooks transactions export guide. Same period, same ~5-business-day buffer on both sides. In the Shopify file, de-duplicate line-item rows down to one row per order (keep Name, date, financial status, total, taxes, refunded amount). In the QBO file, confirm the order-reference column populated.
- 02
Match on order reference
In your spreadsheet, use a lookup (VLOOKUP/XLOOKUP or INDEX/MATCH) from the Shopify order Name into the QBO reference column, and a second lookup in the reverse direction. Normalize first - trim spaces, match the '#' prefix handling, and beware spreadsheet auto-formatting turning references into numbers. Now every Shopify order is matched or unmatched, and every QBO transaction likewise.
- 03
Work the four exception buckets
(1) Shopify orders with no QBO match, older than the settlement buffer: missing - they need recording. (2) QBO references appearing twice or more: duplicate candidates - confirm one real order in Shopify, then reverse (never delete) the extra. (3) Matched pairs where totals or tax differ: amount mismatches - decompose the order (items, discounts, shipping, tax) to find the failing component; a consistent percentage points at tax treatment. (4) QBO transactions with no Shopify match: investigate - manual entries, another channel, or test data.
- 04
Reconcile refunds, then record corrections properly
Repeat the match for refunds: Shopify refunds against QBO refund receipts/credit memos, remembering refunds often land in a later period than their order. Then act on the findings list: missing orders and refunds get recorded with tax split out correctly; duplicates get reversing entries; anything dated in a filed tax period goes to your accountant rather than a back-dated post. Keep the spreadsheet - it's your audit trail. And if this is a recurring need rather than a one-off: this exact diff, buckets and settlement buffer included, is what LedgerClear's free scan runs on the same two CSVs in about 60 seconds, read-only.
Common questions
- How long does manual Shopify-QuickBooks reconciliation take?
- Plan a few focused hours for a few hundred orders the first time - most of it in export cleanup and the exception buckets. Subsequent months are faster once your spreadsheet is set up. Past roughly a thousand orders a month, manual matching gets impractical and tooling earns its keep.
- What if my sync doesn't stamp order numbers on QBO transactions?
- Fall back to matching on amount + date, resolving ties by hand. It works, but same-priced orders on the same day become judgment calls. Checking whether your sync has a reference/memo setting to enable is worth doing before a big manual session.
- Is there a faster way that isn't a subscription?
- Yes - LedgerClear's free scan accepts the same two CSV exports this guide produces and returns the full line-by-line diff, tiered by confidence, in about a minute. No connection, no payment; the manual method above is also simply good practice for understanding what any tool tells you.
LedgerClear doesn’t replace your sync. It audits per-order syncs today - the official connector and Synder. Summary-posting tools like A2X and Link My Books: auditing support is coming later, and LedgerClear runs alongside them without touching their entries. If the right answer for you is switching tools, the scan report is the damage report to migrate with.