How to Clean Up Stripe Transactions in QuickBooks Online

A three-pass playbook to clean up Stripe transactions in QuickBooks: audit the damage against Stripe's payout report, fix duplicates, fees, and refunds,...

Acodei Content Team · 7/24/2026 · 12 min read

Your Stripe account says you processed $412,890 last year. QuickBooks says $448,301. Somewhere in your books there are duplicated deposits, fees booked as revenue, refunds that never landed, and a clearing account holding a balance nobody can explain. This playbook shows you how to clean up Stripe transactions in QuickBooks in three passes: audit the damage, fix each damage pattern, then rebuild a sync that will not rot again.

It is written for the situation we see most often: a business that ran a connector with the wrong settings, or ran a connector and the bank feed at the same time, or hand-keyed Stripe activity for a year and drifted. If that is you, do not start deleting transactions yet. Cleanup done in the wrong order creates more work than the mess itself.

If you want the sync side handled while you focus on the books, Acodei records every Stripe charge, fee, refund, and payout in QuickBooks Online automatically, and its backfill checks for existing records before posting anything. Keep it in mind for the rebuild step. The cleanup itself, though, is bookkeeping work, and here is how to do it.

Why Stripe data in QuickBooks goes bad

Almost every messy Stripe ledger traces back to one of four root causes, and knowing which ones hit you determines the whole cleanup.

Double posting. A sync tool creates a sales receipt for each charge, and then someone also accepts the Stripe payout from the bank feed as income. The same revenue lands twice: once as $970.70 of itemized sales, once as a $970.70 deposit categorized to a revenue account. Books overstate income, sometimes by the full Stripe volume.

Net recorded as gross, or the reverse. Stripe deposits arrive with processing fees already taken out. If the deposit is recorded as revenue, you understate income and lose the fee expense deduction entirely. A $1,000 charge with a $29.30 fee should appear as $1,000 revenue and $29.30 of fees, not as $970.70 of revenue. Multiply the error by a year of payouts and both your top line and your fee expense line are wrong.

Missing negatives. Refunds, disputes, and dispute fees frequently never make it into QuickBooks, because the bank feed only shows net payout amounts and the person doing entry only recorded sales. Revenue stays overstated by every refund you issued.

A clearing account nobody reconciles. Many setups route Stripe activity through a clearing account that should return to zero after each payout. When entries are missing or duplicated, the balance drifts. A clearing account showing $8,412.77 is not a rounding problem, it is an unread error log.

Identify which of these four apply before touching a single transaction. The audit pass does exactly that.

How do you clean up Stripe transactions in QuickBooks?

You clean up Stripe transactions in QuickBooks by reconciling one authoritative source against your books: audit a sample month against Stripe's payout reconciliation report, classify the damage into duplicates, fee errors, and missing entries, fix each pattern in bulk from the most recent closed period backward, then restart a single automated sync from a clean cutover date.

That is the whole playbook in one sentence. Here is the audit in concrete steps.

1. Freeze the inputs. Turn off any connector that is still posting, and stop accepting Stripe deposits from the bank feed. You cannot audit a moving target.

2. Pull the authoritative numbers from Stripe. In the Stripe Dashboard, go to Reports, then select the payout reconciliation report. Export one recent, representative month with columns for gross amount, fees, refunds, and net payout total. Stripe's balance transaction ledger is the ground truth for what actually happened; your job is to find where QuickBooks diverges from it.

3. Pull the same month from QuickBooks. Run a Profit and Loss for the month (Reports, then Profit and Loss, set the accounting basis to match how you review). Note total income, and total in whatever account holds processing fees, if one exists at all. Then open the register for the bank account that receives Stripe payouts (Accounting, then Chart of accounts, then View register) and list every Stripe deposit.

4. Compare three numbers. Gross sales per Stripe vs revenue recorded in QuickBooks for the month. Total fees per Stripe vs fee expense in QuickBooks. Net payouts per Stripe vs Stripe deposits in the bank register. The pattern of mismatch tells you the damage type: revenue roughly double the Stripe gross means duplicates; revenue that equals net payouts means fees were netted; fees near zero in QuickBooks means they were never broken out; deposits matching but revenue short by your refund volume means missing negatives.

5. Check the clearing account. If one exists, its balance should be near zero right after a payout clears. Write down the current balance and the date it last hit zero. Everything after that date is your cleanup window.

6. Size the job. Count affected months and affected transactions. Fixing 3 months of duplicates is an afternoon. Fixing 14 months of netted fees across 3,214 transactions is a project you schedule, and it may be worth doing summary corrections for closed years instead of touching every record. Decide with your accountant where the line is, especially for periods you have already filed taxes on.

One warning before the fixes: work backward from the most recent complete month, and leave any period your accountant has closed alone until they say otherwise. QuickBooks tracks every change in the audit log (Settings gear, then Audit log), but a closed period reopened casually can invalidate filed returns.

Fixing duplicates first

Duplicates come out first because every other check is unreadable while revenue exists twice.

The classic signature: a sales receipt (or invoice payment) from the connector for each charge, plus a bank feed deposit categorized as income instead of matched. In the bank register, look at each Stripe deposit and check whether it was added as new income or matched to existing transactions. Added deposits alongside itemized sales receipts equals double counting.

The fix is to change what the deposit represents, not to delete sales. Open each wrongly added deposit and recategorize it against the clearing account (or undeposited funds, wherever your itemized receipts settle), so the deposit clears the receipts instead of stacking on top of them. Deleting the itemized side instead is tempting but wrong: the receipts carry the customer, fee, and refund detail you want to keep.

Here is what the repair looks like on one real-shaped month. Stripe shows $41,208.60 gross, $1,214.09 in fees, and eleven payouts netting $39,994.51. QuickBooks shows $81,203.11 of income for the same month: $41,208.60 in sales receipts from the connector plus $39,994.51 of bank feed deposits added as "Stripe income." The eleven deposits get recategorized from the income account to the clearing account, one by one, about two minutes each. Income drops to $41,208.60, the clearing account absorbs and clears the deposits, and the month suddenly ties out against Stripe to the penny.

If the duplicates came from two tools posting the same charges, pick the survivor by data quality: keep the version with fees split out and customer names attached, remove the other in bulk. In QuickBooks Online you can batch-select from the Sales tab (Sales, then All sales, filter by date and source) and void in groups. Void rather than delete where you want the paper trail preserved.

We wrote a dedicated guide on preventing Stripe duplicates in QuickBooks that covers the prevention side, including the bank feed rules that stop this from recurring.

Fixing fees: the net-versus-gross repair

If your audit showed revenue equal to net payouts, every affected month needs the same surgical correction: gross up revenue and recognize fees.

For open periods with manageable volume, correct the deposits themselves. Open each Stripe deposit, change the single income line into two lines: gross sales to your revenue account, and a negative line for the Stripe fee to a Stripe fees expense account. A $12,847.32 deposit might become $13,231.09 of gross sales minus $383.77 in fees. The deposit total stays identical, so your bank reconciliation does not move. Stripe's payout reconciliation export gives you the gross and fee figure for every payout, so this is transcription, not detective work.

For closed periods, or when there are hundreds of payouts, post one summary journal entry per month instead: debit Stripe fees expense, credit revenue, for the month's total fees. It restores the correct P&L shape without touching filed-period transactions one by one. Confirm treatment with your accountant, particularly across a fiscal year boundary; where sales tax or GST rides on gross revenue, the correction can change filed amounts, and that call belongs to your tax preparer.

Two smaller fee patterns to catch while you are in there. First, fees booked to a generic Bank charges account: recategorize into a dedicated Stripe fees account so the line is auditable next year. Second, no fee account at all with fees buried in cost of goods sold: move them. Fee visibility matters because processing costs are typically your largest non-payroll operating expense as a Stripe business, often 3 percent of revenue or more once disputes and currency conversion pile on.

Our step-by-step guide to reconciling Stripe fees in QuickBooks Online walks the gross-up entry in detail, including the multi-currency case.

Fixing refunds, disputes, and the clearing account

Missing negatives are the quiet half of most cleanups. Pull refunds and disputes from the Stripe export for each affected month and check each one reached QuickBooks.

A refund needs a refund receipt (or credit memo applied against the invoice), not a deleted sale. Remember that since Stripe stopped returning the original processing fee on refunds, a $250.00 refund costs you the full $250.00 back to the customer while the original $7.55 fee stays spent. Books that ignore refunds overstate both revenue and margin. The mechanics are in our guide to recording full and partial Stripe refunds in QuickBooks Online.

Disputes hit twice: the disputed amount leaves your balance, and Stripe charges a $15.00 dispute fee. Record the withdrawal against revenue (or a contra-revenue disputes account) and the fee as an expense; reverse both if you win.

Once duplicates, fees, refunds, and disputes are corrected, re-run the clearing account balance. In a healthy state it returns to zero, or near it, after every payout clears. If a residual balance remains, it is almost always a handful of specific transactions: cross-month payouts in transit at period end, or a currency conversion difference. Chase the remainder transaction by transaction against the payout report rather than posting a write-off first. Our Stripe clearing account guide covers the setup and the zero-balance discipline.

Rebuild: fix the Stripe QuickBooks sync so this never recurs

Cleanup without a rebuilt process is a subscription to doing this again next year. The rebuild has three decisions.

Pick one writer. Exactly one system posts Stripe activity into QuickBooks: a purpose-built connector, or a documented manual routine. The bank feed's job changes to match-only: every Stripe deposit gets matched against the itemized records or clearing account, never added as fresh income. Most double-posting disasters are two writers with nobody holding the pen.

Pick a cutover date. Choose a clean boundary, usually the first day of the current month, or the day after your last reconciled payout. Everything before it is the cleanup you just finished. Everything after it comes from the new sync only. A cutover date turns an open-ended mess into two bounded projects.

Backfill the gap properly. If there is a hole between where clean history ends and the new sync starts, backfill it with duplicate detection, meaning every candidate record is checked against what already exists in QuickBooks before posting. Acodei's historical import does this on every plan, checking each Stripe transaction against QuickBooks before it posts so the backfill cannot recreate the duplicates you spent the weekend removing. The full procedure, including sequencing around your cutover date, is in our historical Stripe import playbook.

From the cutover forward, an automated transaction-level sync posts each charge, fee, refund, and payout as it happens, routes them through the clearing account, and leaves the bank feed nothing to do but match deposits. That is the steady state where month-end takes minutes: payouts match, the clearing account zeroes, and the P&L shows gross revenue with fees as a real expense line.

Keeping it clean: a five-minute monthly check

Put three checks on the first business day of each month, right after the last payout of the prior month lands.

  1. Clearing account balance is zero, or explained by payouts in transit.
  2. One sampled payout ties out: gross minus fees minus refunds equals the bank deposit, per Stripe's report.
  3. Revenue in QuickBooks is within rounding of gross sales in Stripe for the month.

Five minutes. Any check that fails gets investigated the same week, while the transaction count is small and memory is fresh. The difference between a five-minute investigation and this article is about eleven months of not looking.

FAQ: cleaning up Stripe in QuickBooks

Should I delete the messy transactions and re-import everything from Stripe?

Almost never for periods you have reconciled or filed taxes on. Deleting breaks bank reconciliations and audit trails, and filed periods should not change without your accountant's sign-off. Fix forward with corrections in open periods, use summary journal entries for closed ones, and reserve full re-import for short, recent, never-reconciled windows.

How far back should the cleanup go?

To the last point where QuickBooks provably matched Stripe: a month where gross sales, fees, and payouts all tie out. For filed years, prefer summary corrections made with your accountant over line-by-line edits. Most cleanups only need transaction-level repair for the current fiscal year plus the gap since the last clean reconciliation.

Can I just start fresh from today and ignore the history?

You can set a cutover and sync cleanly going forward, but the old misstatements stay in your reports until corrected: overstated revenue, missing fee expense, phantom balances. At minimum, correct the current fiscal year so this year's return and any lender-facing reports are right, then decide with your accountant whether prior years justify the effort.

What if the messy months are in a year my accountant already closed?

Do not edit closed-period transactions directly. Bring your accountant the audit findings, the Stripe payout reconciliation exports, and a proposed summary journal entry per affected month. They will decide between adjusting the current period, reopening, or amending. Materiality drives the call: a $300 fee misclassification gets absorbed; $40,000 of double-counted revenue on a filed return does not.

Will an automated sync fix the existing mess for me?

No tool safely rewrites bad history in place, and you should be suspicious of one that offers to. What a good sync does is stop the bleeding from the cutover date and backfill gaps with duplicate detection so nothing posts twice. The corrective work on existing wrong entries is bookkeeping judgment, yours or your accountant's.


Ready for the rebuild step? Start a 14-day Acodei trial and let the sync half of this playbook run itself: every Stripe transaction posted to QuickBooks Online with fees split out, payouts matched through the clearing account, and a backfill that will not double-post. Your part shrinks to the five-minute monthly check.

Share

Automate your Stripe to QuickBooks sync

Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.

How Acodei handles this in your stack

Get more operational finance guides like this one

We will only send high-value product and finance content.