Fix Duplicate Transactions in QuickBooks After Import
By SheetStatement Team · · Updated · 11 min read
TL;DR: Duplicates after a bank import almost always come from overlap: a bank feed and a file covering the same dates, the same file imported twice, or a transaction entered by hand and then added (instead of matched) from the import. Find them by sorting the register by date and amount, confirm each against the statement, and remove only the extra copies. Then fix the process with a cutoff date and an import log.
Few things are as deflating as finishing a big import and discovering that half of March appears twice. Your bank balance in QuickBooks is suddenly thousands off, the P&L shows double expenses, and the reconciliation won't come close.
The good news is that duplicates follow predictable patterns, and they're fixable without starting over. This guide covers both QuickBooks Online and Desktop.
Why duplicates happen
1. Bank feed and file overlap
The account is connected to a live bank feed, which has downloaded transactions from a certain date. Then someone imports a statement file covering some of the same dates. QuickBooks can't always tell that a CSV row and a feed transaction are the same.
2. The same file imported twice
Easy to do when files have similar names, or when two people work in the same company. QBO files carry transaction IDs that help QuickBooks skip repeats; CSV files don't.
3. Overlapping files
"March" imported, then "March 15 to April 15" imported. Two weeks appear twice.
4. Added instead of matched
A transaction already exists in the books (an expense entered by hand, an invoice payment, a bill payment). When the bank line arrives, someone clicks Add instead of Match. Now there are two records for one bank transaction.
5. Transfers recorded twice
A transfer from checking to savings is imported on both accounts and added as two separate transfers, instead of one transfer matched on both sides.
Before you delete anything
Duplicates feel urgent, but deleting the wrong copy creates new problems. Take a breath and:
- Back up (Desktop) or note what you're about to change (Online).
- Get the statement for the affected period. It's the authority on what actually happened.
- Remember that legitimate duplicates exist. Two identical subscriptions, two equal ATM withdrawals on one day, two invoices for the same amount. Only remove copies that appear more often in QuickBooks than on the statement.
- Prefer the copy that's linked to something. If one copy is matched to an invoice or bill payment and the other isn't, keep the linked one.
- Don't delete reconciled transactions casually. If a duplicate was included in a completed reconciliation, removing it changes that reconciliation's balance. You may need to adjust or redo the reconciliation for that period.
Duplicates that aren't really duplicates
Before cleaning up, it's worth knowing the look-alikes that are perfectly legitimate, because deleting them is just as damaging as leaving real duplicates in place.
Recurring identical charges. Two team members on the same software plan, billed separately on the same day, produce two identical lines. So do two parking sessions, two tolls or two identical supplier deliveries.
Split payments. A customer paying an invoice in two equal installments, or a large purchase split across two card authorizations, looks like a duplicate at a glance.
Reversal pairs. A charge, its reversal, and then the charge again (common with card payments that failed and were retried) produce three lines: two identical charges and one credit. All three are real and net to one charge.
Pre-authorization and final charge. Hotels and fuel pumps sometimes show a hold and a final charge. The statement usually only shows the final charge, but a bank feed that captured a pending item might have both. Here the pending copy is the one to remove; the statement tells you which is real.
Transfers seen from both sides. A transfer from checking to savings appears in both registers. That's one transaction displayed twice, not a duplicate. If there are two transfer records, though, one is extra.
The rule that sorts all of these out is the same: compare with the statement. If the statement shows two, keep two.
Duplicates in payees and accounts
Imports can also duplicate list entries rather than transactions. A CSV with slightly different payee names creates new vendors ("Acme Supply" and "ACME SUPPLY CO"). An IIF file with an account name that doesn't match exactly creates a new account. These don't affect the bank balance, but they split your reports.
QuickBooks lets you merge vendors and accounts by renaming one to exactly match the other; it then asks whether to merge. Check with your accountant before merging accounts in a live file, since merges can't easily be undone, and set up renaming rules or bank rules so the clean name is used next time.
Finding duplicates quickly
In the register
Open the account register, filter to the affected date range, and sort by date, then amount. Duplicates sit next to each other. Look for pairs with the same date (or dates a day or two apart) and the same amount.
With a report
In QuickBooks Online, a transaction detail report for the account, filtered by date range and sorted by amount, makes pairs easy to spot. Export it to Excel if the list is long.
In Excel
Export the register for the period, then add:
Key: =TEXT([@Date],"yyyy-mm-dd")&"|"&TEXT([@Amount],"0.00")
Count: =COUNTIF([Key],[@Key])
Filter for Count > 1. Do the same on the converted statement data. Compare: if a key appears twice in QuickBooks and once on the statement, one copy is a duplicate. If it appears twice in both, they're legitimate.
For dates that differ by a day or two (feed dates vs. statement dates), add a looser key with just the amount and the week:
=TEXT([@Amount],"0.00")&"|"&TEXT([@Date]-WEEKDAY([@Date],2),"yyyy-mm-dd")
Using reconciliation
If the reconciliation is off by an amount that equals a transaction, search for that amount first. A difference equal to the sum of several transactions in a date range often points to a range imported twice. Our guide to finding reconciliation discrepancies has more tests.
Removing duplicates in QuickBooks Online
Still in For Review
If the duplicates haven't been accepted yet, exclude them in For Review. That's the cleanest outcome: nothing was added to the books.
Already added from the bank feed
In the banking screen's reviewed or categorized tab, find the duplicate and undo it. It goes back to For Review, where you can exclude it. This keeps the bank line's history tidy.
Entered by hand and added from the feed
Keep the record that's correct and linked (for example, the bill payment), and undo the bank line that was added separately. Then match the bank line to the existing record instead.
Many duplicates
For a large overlap, undoing items one by one is slow. Batch actions in the banking screen can help for items still in review. For posted transactions, QuickBooks Online Accountant includes tools for batch deleting some transaction types; otherwise you'll delete them individually from the register. If a whole range is duplicated and the books are new, restarting the account's imports for that period may genuinely be faster than cleanup. Talk to your accountant before choosing that route in a live file.
Removing duplicates in QuickBooks Desktop
Still in Bank Feeds
Delete or ignore the downloaded items you don't want to add, before adding them.
Already in the register
Open the duplicate transaction and delete it (Edit > Delete or the equivalent). Check that you're deleting the unlinked copy.
Many duplicates
Accountant editions of Desktop include a batch delete or void tool for selected transaction types. Back up first, and filter carefully by date range and account. If the duplicates came from an IIF import, restoring the pre-import backup may be the cleanest fix, if nothing else has changed since.
When duplicates affect closed periods
If the duplicates fall in a period you've already closed, filed taxes for, or sent reports from, cleanup needs more care. Removing them changes figures that other people may have relied on. Before making changes:
- Check whether the period is locked with a closing date in QuickBooks. If it is, editing requires the closing date password or adjusting the closing date, which is usually an accountant's decision.
- Work out the effect: which accounts and totals change, and by how much.
- Talk to your accountant about whether to correct the original period or record an adjustment in the current one. The right answer depends on the size of the error and what has already been reported.
For small, recent, unreported periods, simply removing the duplicates is usually fine. For anything that's been filed or shared, get advice first.
Spotting duplicates early
A few early-warning signs that duplicates have crept in, before the reconciliation tells you:
- The bank balance in QuickBooks is noticeably higher or lower than the balance in online banking.
- A monthly expense that's normally steady (rent, payroll, a subscription) suddenly doubles in the P&L.
- The number of transactions for a month is far higher than usual.
- Vendor reports show the same bill paid twice.
A quick monthly glance at these, particularly the bank balance comparison, catches most problems within days.
After cleanup: verify
- The account balance in QuickBooks for the period end should equal the statement balance (plus or minus legitimate outstanding items).
- Reconcile the affected months. Zero difference means the cleanup worked.
- Glance at the P&L for the period. Doubled expenses or income should be gone.
Preventing duplicates
Pick a cutoff date
The most important habit. For each account, decide: before this date, statements are imported from files; on or after it, the bank feed handles everything. Write it down in the account's notes or your import log.
Verify files before importing
Before any import, confirm the file covers exactly one statement period and that its opening balance plus transactions equals the statement's closing balance. Our free balance checker does this in seconds. A file that balances and covers the right dates can't introduce overlap by accident.
Use QBO instead of CSV
QBO (Web Connect) files include a unique ID per transaction. QuickBooks uses those IDs to skip transactions it has already downloaded from the same source. It's not perfect protection against feed overlap, but it stops the "same file imported twice" problem. Our bank statement to QuickBooks converter creates QBO files from PDFs.
Keep an import log
A simple table per account: period, file name, date imported, who imported it, reconciled yes/no. It answers "did we already import this?" in seconds.
Match, don't add
Train everyone who works in the file (our QuickBooks Online import guide explains each review action): if a record already exists, match the bank line to it. Look at the suggested matches before clicking Add.
Import by statement period
Import exactly one statement period per file. Avoid custom date ranges that can overlap.
Reconcile immediately
Reconcile each month right after importing it. A duplicate shows up as a non-zero difference while the import is still fresh in your mind.
A worked example
A small business connected its bank feed in May. In June, the owner imported CSVs for January through May to fill in history. The checking account is now 18,402.55 higher than the bank says.
- Find the overlap. The feed's first transaction is dated April 3. The CSVs cover January 1 to May 31. So April 3 to May 31 is duplicated.
- Confirm. A transaction report for April 3 to May 31, sorted by amount, shows most amounts appearing twice, once with a feed-style description and once with the CSV description.
- Decide which to keep. The feed transactions were already matched to invoices and bills; the CSV copies were added as new transactions. Keep the feed copies.
- Remove. The CSV copies were added from the banking screen, so the bookkeeper undoes them there (sending them back to review) and excludes them.
- Verify. The account balance now agrees with the statement. April and May reconcile.
- Prevent. The import log now notes "feed from April 3" for the account, and future imports stop at April 2.
Our take
Duplicates are a process problem more than a software problem. Clean them up carefully, keeping the linked copy and checking against the statement, then fix the process: one cutoff date per account, QBO files where possible, an import log, and reconciliation right after each import.
More edge cases
Duplicates with slightly different descriptions. A bank feed transaction and an uploaded one may have the same date and amount but different text. Search by amount and date rather than description.
Duplicates with a date shift of one day. Feed and statement dates sometimes differ by a day for the same transaction. Widen your search to a couple of days either side.
Duplicates that were matched to invoices. If both copies were matched to different invoice payments, deleting one may leave an invoice showing as unpaid. Check the linked transaction before deleting.
Duplicates in reconciled periods. Deleting a reconciled transaction changes past reconciliations. Talk to your accountant, then fix and re-reconcile.
A mini checklist for a duplicate clean-up
- Back up or export the register first.
- List suspected duplicates by date range, amount and account.
- Check each against the statement: does it appear once or twice?
- Check links to invoices, bills or payments before deleting.
- Delete or exclude the extra copy.
- Re-run the reconciliation for affected periods.
A second worked example
After a client connected a bank feed that pulled in 90 days of history, the bookkeeper found 212 duplicated transactions. She exported the register for the overlap period to Excel, built a key of date, amount and account, and counted occurrences. Rows appearing twice where the statement showed once went on a list. Working through the list in QuickBooks took about an hour; the reconciliations for those three months balanced again afterwards.
FAQ
Why does QuickBooks show duplicate bank transactions?
Usually because the same dates were imported twice: a bank feed plus a file, the same file twice, overlapping date ranges, or a hand-entered transaction that was added instead of matched.
How do I delete duplicate transactions in QuickBooks Online?
If they're in For Review, exclude them. If they were added from the banking screen, undo them and then exclude. Hand-entered duplicates can be deleted from the register.
Which copy should I keep?
Keep the copy that's linked to other records, such as an invoice payment or bill payment, and remove the unlinked one. Always check against the statement.
Can QuickBooks detect duplicates automatically?
Partly. QBO files include transaction IDs that help QuickBooks skip transactions already downloaded from the same source. CSV files have no IDs, so overlap is more likely.
Will deleting duplicates affect past reconciliations?
Yes, if the duplicate was included in a completed reconciliation. That period's balance will change, so you may need to adjust or redo the reconciliation.
How do I prevent duplicates in future?
Set a cutoff date between file imports and the bank feed, use QBO files, keep an import log, match rather than add, and reconcile right after each import.
Skip the retyping
Upload a PDF or scanned statement and download a balance-checked Excel, CSV, QuickBooks or Xero file. Try the converter free.
Related articles
Convert your first statement free
3 pages a month on the free plan. No credit card.