VouchRow

Guide

Duplicate transactions after importing a QBO file

Updated 9 min read

What you are seeing

Every transaction from the imported period appears twice in the banking feed.

Duplicates after a QBO import are almost always a FITID problem. QuickBooks does have duplicate detection, it is good, and it depends entirely on one field that converters get wrong more often than they get right. The other common cause is two sources — a file and a live bank feed — covering the same dates.

How QuickBooks decides something is a duplicate

Every transaction in an OFX or QBO file carries a FITID — a Financial Institution Transaction ID. It is the transaction’s identity as far as Web Connect is concerned. When transactions are added or matched, QuickBooks stores their IDs, and on the next import it skips any ID it has already seen on that account. Intuit’s own help article on the Desktop message "Nothing imported" describes exactly this: the same IDs cannot be imported twice.

For the file itself, that is the entire mechanism. It does not compare dates, amounts or descriptions. Two transactions with the same FITID are the same transaction; two with different FITIDs are different transactions, however identical they look.

CSV has no FITID

A CSV upload carries no transaction IDs at all, so ID-based duplicate detection cannot help. Upload the same CSV twice and you get every row twice. QuickBooks Online will still suggest matches against entries already in the register, which is your only protection — read the For review list rather than accepting in bulk.

A converter that generates a stable FITID for every transaction makes re-importing the same period harmless, which is what QuickBooks’ duplicate detection is designed to rely on.

The causes, in order of likelihood

CauseWhat you seeFix
Converter makes new FITIDs on every runA re-converted statement imports in full a second timeExclude or delete one set; switch to stable IDs
Bank feed and imported file overlapPairs with the same date and amount but different descriptionsExclude the imported copies; import only gaps
Overlapping statement periodsDuplicates only around the start or end of a monthCheck DTSTART and DTEND before importing
Same CSV uploaded twiceEvery row doubledExclude the second batch in For review
Bank reissued IDs after a system changeA block of old transactions reappears in the feedExclude the reappeared block

Why converted files duplicate

A bank generating its own QBO file has a natural FITID — its internal reference for the transaction. A converter reading a PDF has no such thing, and must derive one. Whether re-importing is safe comes down entirely to how.

  • A FITID derived from a timestamp or a random number changes on every conversion. Convert the same statement twice and QuickBooks sees two entirely different sets of transactions.
  • A FITID derived from a row counter changes whenever the row order or count changes — so a re-converted statement that picked up one extra row shifts every ID after it.
  • A FITID derived from the transaction’s own content — date, amount, description, account — is stable. Convert the same statement a hundred times and the IDs are identical every time, which is what makes duplicate detection work. It has to be done carefully, so two genuinely identical transactions on the same day still get different IDs.

The test

Convert the same statement twice, open both files in a text editor and compare the FITID values. If they differ, that converter will duplicate every time you re-import, and no amount of care at the QuickBooks end will prevent it.

The other cause: the file and the bank feed overlap

If the account is also connected to your bank directly, the connection and the imported file are two separate sources for the same transactions. FITID matching only helps when both sources use the same IDs, and they will not — your bank’s live-feed IDs are its own.

Import files only for periods the live connection does not cover. Many connections only reach back around 90 days when first set up; anything older is exactly where a converted statement earns its place. Before importing, open the file and read the DTSTART and DTEND tags, then compare them with the date of the oldest transaction the feed brought in.

Cleaning up in QuickBooks Online

Intuit’s guidance is to deal with duplicates in the bank feed, not the register, wherever possible. Excluding is reversible; deleting is not.

  1. 1Go to Bank transactions (under Transactions, or All apps → Accounting in the newer layout) and pick the account’s tile.
  2. 2Open the For review tab and sort by date. Work period by period rather than searching for individual amounts.
  3. 3Tick the extra copy of each pair — keep one to add or match — and select Exclude. Older layouts put this under Batch actions → Exclude Selected.
  4. 4If both copies have already been added, keep the reconciled one; if neither is reconciled, keep the one matched to other records or carrying attachments. Undo the other from the Categorized tab, then exclude it.
  5. 5Excluded something by mistake? Open the Excluded tab, tick it and select Undo; it returns to For review.

Cleaning up in QuickBooks Desktop

  1. 1Back up the company file (File → Back Up Company → Create Local Backup).
  2. 2Open Banking → Bank Feeds → Bank Feeds Center and review the account. Downloaded items not yet added can be ignored or deleted there without touching the register.
  3. 3Where both copies are already in the register, open it (Banking → Use Register), sort by date, and delete the copy that is not reconciled. Reconciled entries show a check mark in the cleared column.
  4. 4Re-run the reconciliation for any period you touched, and confirm the closing balance still matches the statement.

If the import went badly wrong — a whole year doubled — restoring the backup taken before the import is often quicker and safer than deleting hundreds of entries by hand.

Back up before bulk deletion

There is no undo for deleting transactions in QuickBooks. Deleting a reconciled transaction breaks the reconciliation for that period, and QuickBooks will not warn you clearly. If the period is already reconciled, consider whether living with a duplicate marked as such is cheaper than the cleanup.

The opposite problem: "nothing imported"

Stable FITIDs have one consequence people mistake for a bug. If you delete transactions and then try to import the same file again to put them back, Desktop says there is nothing new to import, because it remembers the IDs. Intuit’s own fixes are to restore a backup from before the original import, or to adjust the account details in a fresh file so it is treated as new — a one-time measure, not a habit.

Preventing it

  • Use a converter whose FITIDs are derived from transaction content, and verify it with the two-conversion test above.
  • Import each period once, and check the date range in the file before importing rather than after.
  • Keep imported periods and connected periods apart.
  • Never import the same CSV twice; keep a note of which months have gone in.
  • Review in the banking feed. Everything is reversible there and almost nothing is afterwards.

FAQ

Related questions

Why do I have duplicate transactions in QuickBooks after importing a QBO file?

Either the file’s transaction IDs (FITIDs) differ from those already imported — common with converters that generate new IDs each time — or the file overlaps dates the bank feed already downloaded.

Does QuickBooks detect duplicates automatically?

For Web Connect files, yes: it skips any FITID it has already seen on that account. It does not compare dates or amounts, and CSV uploads carry no IDs at all.

How do I remove duplicate bank transactions in QuickBooks Online?

In Bank transactions, open For review, tick the extra copies and select Exclude. If both were already added, keep the reconciled one and undo the other first.

Should I exclude or delete duplicate transactions?

Exclude in the bank feed wherever you can, because it can be undone. Delete from the register only when both copies were already added, and never delete the reconciled one.

Why does QuickBooks say nothing was imported when I re-import a file?

Because it remembers the transaction IDs from the first import. Restore a backup from before that import if you need the transactions back.

How do I avoid duplicates when the bank feed is also connected?

Import files only for dates the feed does not cover. Check the file’s start and end dates against the oldest transaction the feed downloaded.

Skip the import errors next time

Convert statements into files your software accepts, with every row checked against the running balance.