Shopify and QuickBooks: Why Your Numbers Never Match (And How to Fix It)
If your Shopify revenue and QuickBooks deposits never line up, you are not alone. This guide explains the five root causes and how to reconcile them without losing your mind.
You open QuickBooks and see one number. You open Shopify and see another. Your bank statement shows a third. Every month you try to reconcile them, and every month something is still off.
This is one of the most common problems for direct-to-consumer store owners. And it is not a QuickBooks problem or a Shopify problem. It is a structural gap between how these two systems record money, and when they record it.
This guide explains the five root causes of the mismatch and exactly what to do about each one.
Why Reconciliation Feels Impossible
Reconciliation means verifying that two sets of records agree on the same transactions. In theory, Shopify records a sale, money lands in your bank, and QuickBooks logs that deposit. Three records, same number.
In practice, the same $1,000 sale might appear as $1,000 in Shopify, $966 in your bank account, and $1,000 or $0 in QuickBooks depending on when the sync runs. None of those numbers are wrong. They are just measuring different things at different points in time.
The fix is not to trust one system and ignore the others. The fix is to understand what each system is actually measuring so you can get them to agree.
Root Cause 1: Shopify Payouts Bundle Multiple Transaction Types Into One Deposit
This is the biggest source of confusion, and it trips up almost every store owner who tries to reconcile for the first time.
What Happens
When Shopify processes orders, it does not send you a deposit for each individual sale. Instead, Shopify batches together everything that happened over a period of days. A typical Shopify payout includes sales from multiple orders, minus refunds you issued, minus Shopify's own processing fees, and sometimes minus chargebacks or adjustments.
So if you had $5,000 in sales, issued $200 in refunds, and paid $150 in Shopify fees, the deposit that hits your bank account is $4,650. Your bank shows one transaction for $4,650. But your Shopify dashboard shows $5,000 in revenue. Your QuickBooks, if it recorded the bank deposit, shows $4,650. And if QuickBooks also recorded the $5,000 Shopify revenue separately, now you appear to have $9,650 in income that does not exist.
How to Fix It
You need to record the Shopify payout as a single transaction in QuickBooks broken into three parts: gross sales as income, refunds as a deduction, and Shopify fees as an expense. Do not record gross sales separately and also record the bank deposit. Pick one method and be consistent.
The cleanest approach is to reconcile using the payout breakdown report from Shopify, which shows exactly what was included in each deposit. Match that breakdown to what QuickBooks recorded. Any gap is either a timing issue (covered next) or a categorization error.
Root Cause 2: Timing Differences Between Shopify and Your Bank
What Happens
Timing differences occur because Shopify records a sale the moment a customer pays, but your bank does not see that money until Shopify processes and sends the payout, which typically takes 1 to 3 business days depending on your Shopify plan and country.
This means a $500 sale on the last day of the month appears in your Shopify December revenue but does not land in your bank account until January. If QuickBooks is pulling from your bank feed, it records that $500 in January. Now December is under-counted in QuickBooks and over-counted in Shopify.
During a high-volume month like November or December, this gap can reach thousands of dollars and cause your year-end numbers to be materially wrong.
How to Fix It
When reconciling, always compare the same payout period, not the same calendar period. Download Shopify's payout report for a specific payout, find the deposit in your bank statement for that same payout, and match them. Do not try to reconcile "December Shopify sales" against "December bank deposits." They will never match because they measure different windows of time.
In QuickBooks, record income based on the payout date, not the order date, unless your accountant has specifically asked you to use accrual accounting. For most small direct-to-consumer businesses using cash-basis accounting, the payout date is the right anchor point.
Root Cause 3: Marketplace Facilitator Tax Creates Phantom Discrepancies
What Happens
Shopify collects and remits US sales tax for you only in specific cases. Since January 1st, 2025, it does this as the marketplace facilitator for orders placed through the Shop channel that ship to or within the United States. It also does this for your online store orders if your US sales tax is managed by Shopify. On those orders, Shopify deducts the tax from your Shopify Payments payout and remits it itself, so that tax never reaches your bank. On every other order, the tax your customer pays is included in your payout, and you file and pay it unless your store uses automated filing with Shopify Tax.
On a withheld order, your Shopify order shows the full customer payment including tax, but your payout is lower by the tax. A $100 Shop channel order that includes $8.40 in tax might generate a payout of $91.60 after Shopify deducts the tax.
If you are not aware of this, you see $100 in Shopify, $91.60 hits your bank, and you cannot explain the $8.40 gap. Multiply this across hundreds or thousands of orders and the discrepancy becomes significant.
How to Fix It
In your Shopify Payments payout details, the Type column marks each withheld amount as Marketplace sales tax. Only those amounts were withheld. A Shop Pay checkout on your own online store is not a Shop channel order, and the Sales channel field in the order details tells the two apart. In QuickBooks, the withheld amounts should not be recorded as your income at all because you never received them and they are not your revenue. Tax on your other orders did reach your payout, so record it as sales tax you owe until it is paid, and keep it out of income too.
When you set up your Shopify to QuickBooks sync (whether through a native integration or a third-party connector), verify that sales tax is excluded from your income calculation, including any tax Shopify withheld. If your sync app is pulling gross order totals without stripping out tax, your revenue will be overstated in QuickBooks.
Root Cause 4: Duplicate Transaction Risk from Data-Syncing Apps
What Happens
The most common scenario: you export a sales report from Shopify and import it into QuickBooks manually. Then a sync app also runs in the background and pulls the same data. Now every transaction for that period exists twice in QuickBooks. Your income is doubled. Your expenses might be doubled. Your accounts payable is a mess.
A subtler version happens when a sync app uses both order date and payout date logic in the same configuration. It records a sale on the order date and then records the deposit again when the payout arrives. One sale, two QuickBooks entries.
How to Fix It
Decide on exactly one method of getting Shopify data into QuickBooks and turn off everything else. If you are using A2X, disable any native Shopify sync. If you are using manual imports, turn off all automated connections. There should be a single, clear pipeline between the two systems with no redundant paths.
After any change to your sync configuration, audit the past 30 days in QuickBooks by searching for duplicate amounts on the same date. If you find duplicates, delete the ones created by the method you are retiring and leave the ones from your chosen permanent method.
Root Cause 5: Multi-Currency and Multi-Store Reconciliation Issues
What Happens
If you sell internationally or run more than one Shopify store, your reconciliation challenge multiplies. Multi-currency orders create two variables: the original transaction in the customer's currency and the settled amount in your home currency after conversion. Shopify records the sale in the customer's currency. Your bank shows the converted amount. QuickBooks might show either, depending on how your sync is configured.
A sale for 100 GBP might settle as $126.42 USD depending on the exchange rate at payout time. If Shopify records $130 USD (using the rate at order time) and your bank shows $126.42 (the actual payout rate), you have a $3.58 discrepancy on that single transaction. Across hundreds of international orders, currency conversion differences can add up to hundreds or thousands of dollars per month.
For multi-store setups, the risk is that revenue from different stores gets mixed together in QuickBooks without clear labels, making it impossible to know which store is profitable and which is not.
How to Fix It
For multi-currency: configure your QuickBooks sync to use the settled amount from the payout report rather than the estimated converted amount at order time. The payout report shows the exact USD (or home currency) amount you actually received, which eliminates the rate-at-order-time versus rate-at-settlement discrepancy.
For multi-store: give each Shopify store its own QuickBooks class or location tag. This keeps revenue and expenses separated by store without requiring separate QuickBooks accounts. You can still see consolidated totals when you need them, but you can also isolate any single store's performance.
A Reconciliation Workflow That Actually Works
Once you understand the five root causes, a working reconciliation process follows a consistent pattern.
Start with the Shopify payout report, not the Shopify revenue dashboard. The payout report shows exactly what was sent to your bank and breaks it into components: gross sales, refunds, fees, and marketplace tax. This is your source of truth for each deposit.
Match each payout to the corresponding bank deposit by amount and date. If they do not match exactly, the gap is almost always a fee that was not included in your calculation or a tax amount that was withheld.
Verify that QuickBooks recorded the same components. If QuickBooks shows a lump deposit equal to the bank deposit but does not break out the gross sales, refunds, and fees, your income, refund, and expense accounts are all understated or overstated.
Check for duplicates by searching QuickBooks for any transaction that appears more than once for the same amount and date. Remove duplicates before moving on.
Repeat this monthly rather than quarterly. Catching a sync error one month in is a 30-minute fix. Catching it after six months is a days-long cleanup.
Reconcile Shopify payouts in Nummbas Books
Nummbas Books separates Shopify Payments payouts into sales, shipping, refunds, fees and tax and matches the total to your bank deposit. You can maintain invoices, supplier bills and bank reconciliation in the same app, rather than adding a payout connector to a separate accounting product.
Nummbas-FO can record routine transactions within the limits you set and prepare month end for review. Do the review yourself or invite your accountant to reconcile bank accounts and close the month. The accounting workflow sits alongside product costs, inventory purchasing and ad performance, so you can investigate the results after reconciling them.
If you want to keep QuickBooks, Nummbas can send payout summaries there. If you want to move, import account balances, unpaid invoices and bills, customers and suppliers into Nummbas Books, along with up to ten years of monthly totals.
The Bottom Line
The mismatch between Shopify and QuickBooks is not random. It comes from five predictable causes: bundled payouts, timing differences, marketplace facilitator tax, duplicate syncs, and multi-currency or multi-store complexity.
Fix each one systematically. Use payout reports as your anchor. Pick one sync method and disable the rest. Keep sales tax out of your income. Match by payout date, not order date. And keep stores and currencies separated in QuickBooks.