← Back to Blog
QBO FixesMarch 10, 20268 min read

How to Find and Fix Duplicate Transactions in QuickBooks Online

If you've done any amount of QBO cleanup work, you already know the pain of duplicate transactions. You open a file, run a quick report, and suddenly expenses appear twice — sometimes three times. The bank reconciliations are off, and the client can't figure out why their profit doesn't match their bank balance. Finding and fixing duplicates is one of the most common tasks in cleanup projects, and one of the most frustrating if you don't understand what caused them in the first place.

I spent five years at Intuit QuickBooks Live managing 15 to 30 client files at a time. Duplicates showed up in almost every messy file I touched — usually because nobody explained how the bank feed actually works. Once you understand the mechanics, finding and fixing duplicates becomes systematic instead of overwhelming.

This guide is for bookkeepers and cleanup specialists who want a clear approach to dealing with duplicates. We're covering why they happen, how to find them, how to safely remove them, and how to prevent them going forward.

Why Duplicates Are So Common in QuickBooks Online

QBO's bank feed automatically pulls transactions from connected bank accounts into a holding area called the For Review tab. Those transactions wait to be either matched to existing records or added as new ones. The problem is that if someone doesn't understand the difference between matching and adding, they just click "Add" on everything. If they've also been manually entering transactions or uploading CSV statements, they end up with two or more records for the same real-world transaction.

Multiply that by twelve months and four bank accounts, and the file is completely unreliable. The sneaky thing about duplicates is that a file can have hundreds of them hiding in plain sight, making the P&L look roughly right but actually overstating expenses across the board. That's why duplicates are the first thing I look for in any cleanup — they're the low-hanging fruit that immediately makes the financials more accurate once removed.

The 4 Main Causes of Duplicate Transactions

Cause 1: Manual CSV upload + auto bank feed pulling the same transactions.

The bank feed connection drops — maybe the bank changed its security protocol, maybe the client changed their password. While the feed is disconnected, someone uploads a CSV or QFX file to fill the gap. Then the feed gets reconnected and pulls in all the same transactions again. QBO is supposed to detect overlaps and offer matches, but if dates are off by even a day (pending vs. posted) or amounts differ slightly, it treats them as separate transactions. In cleanup, identify the overlap period first — that narrows your search to a specific date range instead of the entire file.

Cause 2: Recording an expense manually, then the bank feed brings in the same transaction.

The client enters a bill or expense in QBO — good instinct. But then the payment clears and the bank feed brings it in, and someone clicks "Add" instead of "Match." The correct workflow: enter the bill, record the bill payment, and when the bank feed shows the payment clearing, match it to the existing record. In cleanup, you'll see this as an expense and a bank feed entry on the same day for the same amount. One needs to go.

Cause 3: Transfers between accounts where both sides get added.

Moving money from checking to savings is one transaction in real life, but it shows up in two bank feeds — a withdrawal and a deposit. If someone adds the withdrawal as an expense and the deposit as income, you've got fake expense, fake income, and no actual transfer. The P&L is inflated on both sides. In cleanup, look for same-amount transactions on the same day across different accounts. Transfers are usually round numbers, making them easier to spot. Fix by deleting both incorrect entries and recording a proper transfer.

Cause 4: Pending transactions that post again.

Some bank feeds send transactions while still pending. The user adds it. Days later the same transaction posts with a different date, and the feed sends it again. I see this most with credit cards, especially American Express. The fix: delete the duplicate and keep the posted version. Some bookkeepers prevent this by only working with posted transactions.

How to Find Duplicates: The Transaction Detail by Account Method

Step 1: Run the report. Go to Reports in QBO's left navigation. Search for "Transaction Detail by Account." Set the date range for the cleanup period. If you're not sure where problems are, start with the full fiscal year.

Step 2: Export to Excel. Click the export icon (spreadsheet icon, top right of the report). You need to work in a spreadsheet because QBO's built-in sorting is too limited for this.

Step 3: Sort by account, then by amount. When you sort by amount within each account, duplicates appear right next to each other — two entries for $127.43 on March 15th, for example.

Step 4: Flag and investigate. Don't delete everything that looks like a duplicate. Sometimes you legitimately have two transactions for the same amount on the same day — two separate Amazon orders for $49.99, for instance. Check the payee, memo, and transaction type. If one is a bank feed entry and the other is manually entered, that's almost certainly a duplicate.

Pro tip: Use a COUNTIFS formula in Excel: =COUNTIFS(DateColumn, [@Date], AmountColumn, [@Amount]). If the result is greater than 1, it's a potential duplicate. Add conditional formatting to highlight these rows — it automates the visual scan and saves enormous eyeball time.

How to Safely Delete a Duplicate

Before deleting anything, check one critical thing: is the transaction reconciled?

If NOT reconciled: Open the transaction, click "More" at the bottom, then "Delete." Make sure you're deleting the right one — keep whichever has better data (proper categorization, vendor name, memo). If one is a manually entered expense with correct details and the other is an uncategorized bank feed entry, keep the manual one.

If reconciled: Deleting a reconciled transaction throws off your reconciliation by that amount. My preferred approach: undo the reconciliation for the affected period (Settings > Reconcile > History by Account > find the period > Undo), delete the duplicate, then re-reconcile. It's more work but gives you a clean, defensible file. For very old periods where re-reconciliation is impractical, you can create a journal entry to offset the duplicate instead — less clean but preserves the reconciliation.

The Matching Principle: Handling Bank Feed Transactions Correctly

When you go to the Banking tab, transactions in For Review have three options:

Match: Use when a corresponding transaction already exists in QBO. A payment clearing in the bank feed? Match it to the existing bill payment or expense.

Add: Use ONLY when there is no existing record for this transaction in QBO.

Transfer: Use when the transaction is a transfer between two QBO-connected accounts.

The number-one mistake is clicking "Add" on everything. QBO tries to auto-suggest matches, but it's not perfect — if amounts or dates differ slightly, you may need to click the Match field and manually search by amount or vendor name.

Using the Excluded Tab

Here's a feature many bookkeepers overlook: the Excluded tab in the Banking section. When reviewing bank feed transactions, if you find one that's a duplicate of a record you want to keep, you can exclude it instead of adding it. Click the transaction, then "Exclude." It moves to the Excluded tab — not deleted from the feed, just removed from the For Review queue. You can undo an exclusion anytime.

Navigate to it: Banking > click the relevant account > look for the tabs at the top: For Review, Categorized, Excluded. I use this during cleanups instead of adding and then deleting — it's faster. One caution: keep a log of what you excluded and why, especially during a cleanup project.

Prevention: Best Practices Going Forward

Pick one method. Either use the bank feed as your primary transaction source or enter manually. Don't do both for the same accounts.

Process the bank feed weekly. When transactions pile up for months, it's much harder to know what's a match vs. what's new.

Never upload CSVs if the feed is connected. Fix the connection first. If you must upload, be extremely careful about overlapping dates.

Use bank rules. Auto-categorizing recurring transactions reduces the temptation to enter them manually.

Train anyone with file access. A five-minute conversation about Match vs. Add saves hours of cleanup. I sometimes record a Loom video for clients.

Reconcile monthly. Monthly reconciliations catch duplicates early — you'll notice when the beginning balance doesn't match.

When Duplicates Have Cascaded Into a Bigger Mess

If a file has been running with duplicates for months or years, the problem cascades. Income and expenses are both doubled, the P&L is inflated, the Balance Sheet has phantom balances, and the client may have filed tax returns based on wrong numbers. Reconciliations may have been forced to work around the duplicates, and the Chart of Accounts often bloats with duplicate categories created when someone couldn't find the right match.

This level of mess requires a full cleanup project — undo reconciliations, delete duplicates systematically, re-categorize surviving transactions, rebuild the COA, and re-reconcile forward. If you open a file and realize the duplicates go deep, don't try a partial fix. Scope it properly and price it as a full cleanup.

The Bottom Line

Duplicates in QBO are annoying but fixable. Understand the root cause, find them systematically, delete them safely, and put prevention in place. But here's what I've learned from years of this work: duplicates are usually a symptom, not the whole problem. A file with widespread duplicates almost always has other issues too — messy COA, uncategorized transactions, reconciliation discrepancies, misclassified equity.

I built LedgerClean to find all of it at once. Upload your client's QBO exports and it scans for duplicates alongside 7 other detection categories — then gives you a prioritized issue list with fix procedures and time estimates so you can scope the project before you start. Free to try.

LC

Written by the Founder

IRS Enrolled Agent and former Intuit QBO Live Lead Bookkeeper with 7+ years managing cleanup engagements. Built LedgerClean from real cleanup methodology, not theoretical best practices.

Try LedgerClean free — 14-day Solo trial, no credit card required to start.

Start Free Trial

Get cleanup tips in your inbox

Practical guides for bookkeepers. No spam, unsubscribe anytime.

Subscribe on Substack

Related posts