Why Your Ecommerce Sales Never Match Your Bank Deposits
Jul 13, 2026
Convert your bank statement to Excel now
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Uploading...
Short answer: Your sales and your bank deposits will never match, and they are not supposed to. Every payment platform deducts its processing fee, then nets out refunds, chargebacks, and platform charges, before it releases a payout. The deposit is what is left. Gross sales belong in income, each deduction belongs in its own expense or contra account, and the net is what shows up in the bank. Books that post the deposit as revenue understate income, hide the fees entirely, and cannot be reconciled.
This is the question underneath most ecommerce bookkeeping problems. The store says 47,000 dollars in sales. The bank says 44,180 deposited. The owner assumes something is missing, the bookkeeper assumes the owner is wrong, and both are looking at correct numbers that were never going to agree.
What actually gets deducted before you get paid
Every platform runs the same basic subtraction, but each one takes out a slightly different set of things. This is the reference:
| Platform | Deducted before payout | Payout timing | What the bank sees |
|---|---|---|---|
| Shopify Payments | Processing fee per order, refunds, chargebacks and dispute fees | Batched on a payout schedule | One deposit per payout batch |
| Stripe | Per-charge processing fee, refunds, disputes and dispute fees, reserves | Rolling payout window | One deposit covering many charges |
| Square | Processing fee per transaction, refunds, chargebacks, hardware or software charges | Daily batch, or instant for a fee | One deposit per batch |
| PayPal | Fee taken per transaction as it lands, refunds, chargebacks | You withdraw manually or on a schedule | One withdrawal, unrelated to any single sale |
| Amazon Seller Central | Referral fees, FBA and fulfillment fees, storage, advertising, refunds, reimbursements | Settlement period, typically every two weeks | One disbursement per settlement |
| eBay Managed Payments | Final value fees, ad fees, refunds, payment disputes, regulatory fees | Scheduled payouts | One payout net of everything |
Two things fall out of that table. First, no platform deposits your gross sales, ever. Second, the deductions are not all the same kind of thing. A processing fee is an expense. A refund is a reduction of revenue. A chargeback is both a reversal and a fee. An Amazon reimbursement is income. Collapsing all of them into one net deposit destroys information you are required to report separately.
The arithmetic of a single payout
Here is a worked example of one week on a Shopify store. The numbers are illustrative, but the structure is exactly what a payout report contains:
| Line | Amount | Where it belongs in QuickBooks |
|---|---|---|
| Gross sales (42 orders) | 10,000.00 | Sales income |
| Sales tax collected | 720.00 | Sales tax payable, a liability |
| Shipping charged to customers | 310.00 | Shipping income |
| Refunds issued | (420.00) | Refunds, a contra revenue account |
| Processing fees | (319.00) | Merchant fees expense |
| Chargeback and dispute fee | (95.00) | Merchant fees expense |
| Payout deposited to bank | 10,196.00 | Transfer from the clearing account |
Six lines of real activity, one number in the bank. If you post that 10,196 as sales, then income is wrong by more than 800 dollars in a single week, your sales tax liability does not exist, and 414 dollars of processing cost has vanished from the profit and loss. Repeat that for a year and the tax return is built on a number that was never true.
Why the deposit is not the sale
The deposit is a transfer, not revenue. The revenue happened when the customer paid. The platform held that money, took what it was owed, and later moved the remainder to your bank. Those are two separate events, and the accounting only works when you treat them that way.
The mechanism for that is a clearing account. Set the platform up in QuickBooks as a bank-type account. Sales and fees post into it, payouts leave it, and the payout is then matched against the deposit on your real bank feed as a transfer between two accounts. The clearing account balance at any moment is the money the platform is holding but has not yet paid you, which is a real asset and one your books should be able to state.
What goes wrong when you skip it
Three failures show up over and over in ecommerce books, and all three come from posting the deposit instead of the detail.
Revenue is understated. Income is recorded net of fees, so the business looks smaller than it is. On a store doing 500,000 dollars a year, a 3 percent effective processing rate hides roughly 15,000 dollars of both revenue and expense. Margin percentages computed on those numbers are meaningless.
Revenue is double counted. The other direction. The platform activity is imported, and then the bank deposit is also booked as income, so the same sale appears twice. This is the most expensive mistake, because it inflates the tax bill on a number the business never earned.
Nothing reconciles. Without the payout detail, no one can say which orders a given deposit represents. Reconciliation stops being a check and becomes a negotiation with a spreadsheet.
How to book it so it actually reconciles
The routine that works is the same on every platform:
- Create a clearing account of the bank type for the platform: Shopify Payments, Stripe, Square, PayPal, Amazon.
- Import the platform's transaction detail into that clearing account, not into your checking account.
- Categorize each line by what it is: gross sale to income, fee to merchant fees, refund to contra revenue, sales tax to the liability.
- When the payout hits the bank feed, match it against the payout line in the clearing account as a transfer.
- Reconcile the clearing account against the platform's own payout report each month, and the balance should be exactly the money still in transit.
Step 2 is the one that stalls people, because the platform connectors only reach so far back. The Shopify app reaches about a year, the Stripe app about two, and the Square app around eighteen months. For anything older, or for QuickBooks Desktop, which none of these apps support, the payout statement has to be converted into a file QuickBooks accepts. That is what the Shopify statement to QBO converter, the Stripe statement to QBO converter, the Square statement to QBO converter, and the PayPal statement to QBO converter are for. The full comparison of what each platform's sync reaches is in payment platforms that sync with QuickBooks, and how far back each goes.
Do I have to report gross sales or net?
Gross. This is not a stylistic choice. The 1099-K a payment platform files reports gross payment volume, before fees and before refunds, so the number the IRS sees is the gross. If your return reports the net that landed in your bank, it will not agree with the 1099-K, and that mismatch is exactly the kind of thing that generates a notice. Report gross revenue and deduct the fees as a business expense, which is where they belong anyway.
What about sales tax?
Sales tax collected is never revenue. The platform collects it from the customer and passes it to you inside the payout, and you owe it to a state. Book it to a sales tax liability account on the way in, and clear the liability when you remit. If it is left inside gross sales, income is overstated, the liability does not appear on the balance sheet, and the eventual payment to the state has nowhere sensible to go.
Multiple platforms, one set of books
Most stores end up with more than one. Shopify for the website, PayPal because some customers insist, Amazon because that is where the volume is, and a Square terminal at a market stall. Each one needs its own clearing account, because each one pays out on its own schedule and nets out its own set of deductions. Merging them into a single account is tempting and it makes reconciliation impossible, because a deposit can no longer be traced to a payout.
Once the sales side is in order, the expense side usually turns out to be just as far behind, and pulling the numbers off a year of supplier bills and card receipts by hand is where the rest of the cleanup time goes. It is worth turning the receipts into structured data automatically rather than typing them, for the same reason you are not typing 42 orders a week off a payout report.
The short version
Sales and deposits do not match because the platform pays you what is left after it takes its fee, honors your refunds, and settles your chargebacks. That is normal. The books only break when the deposit is treated as the sale. Import the detail into a clearing account, put every deduction in its own account, match the payout to the deposit as a transfer, and the gap stops being a mystery and becomes an amount you can explain to the dollar.
Ready to convert your bank statement?
Upload a PDF and get clean Excel or CSV in seconds. Works with statements from any bank.
Convert to Excel nowFree to try, no credit card required