GL Import Duplicate Detection
Re-uploading a QuickBooks General Ledger export? NP Ledger flags what it's already seen before anything posts twice.
On this page
When you upload a QuickBooks General Ledger export, NP Ledger checks every transaction in the file against what's already in your books before anything posts. If you re-upload the same file, upload overlapping date ranges across two exports, or re-export after editing something in QuickBooks, the preview flags the transactions it thinks it has seen before — so you decide what happens to them instead of getting silent duplicates.
Multi-year QuickBooks migrations are often done a year (or a few months) at a time, across more than one session. It's easy to lose track of exactly which date range was imported last. Without duplicate detection, re-uploading already-imported data would post every transaction again, and the only way back is rolling back the whole import batch or hunting down duplicates by hand. Duplicate detection catches this on the preview, before Apply — re-uploading an already-imported file can commit as a zero-transaction no-op instead of doubling your data.
NP Ledger uses two tiers, shown together on the GL preview:
Exact matches
A transaction is an exact match when its date, contact, document number, and full set of lines (account, amount, and memo on every line) are identical to a transaction already in your books — or to another row earlier in the same file. This catches a straight re-upload of a file you've already imported, or overlapping date ranges across two exports.
Likely matches
A transaction is a likely match when it isn't an exact match but closely resembles an existing transaction: the date is within 1 day, the total amount is within $0.01, and most of its lines (account and amount) line up with an existing transaction's lines. This catches the case where you re-exported from QuickBooks after an edit and the posting date shifted by a day. A multi-line journal entry that shifted this way is flagged once, not once per line.
Every flagged row gets a per-row choice:
- Skip — this transaction is left out of the import. Exact matches default to Skip, since they're almost certainly already in your books.
- Import anyway — the transaction posts as normal. Likely matches default to Import anyway — a fuzzy match can be wrong, and NP Ledger would rather risk a real duplicate you can review later than silently drop a transaction that was never actually a duplicate.
A bulk-action link next to each tier ("Skip all exact," "Import all likely," and so on) lets you apply one choice to every row of that tier at once, instead of reviewing rows one at a time.
Every duplicate skip and every override away from a tier's default is recorded on the import batch: counts of exact duplicates skipped, likely duplicates flagged/skipped/imported, and — for each row you overrode — who made the call, when, which tier, and what action they chose. This is the audit trail if you ever need to explain why a transaction that looked like a duplicate was imported anyway, or why one wasn't.
- Read the flagged rows before bulk-actioning a tier. "Skip all exact" is usually safe since exact matches require every field to line up. "Import all likely" for a Tier 2 flag is worth a closer look first if the numbers are large.
- A zero-transaction import isn't an error. If you re-upload a file you've already imported and every row is skipped as an exact duplicate, that's detection working correctly, not a failed import.
- If you imported a duplicate by mistake, roll back the import batch while you're still within the rollback window (see Import History in the sidebar), rather than manually voiding individual transactions.
- Assuming "likely match" means it's already imported. It means NP Ledger found something close — verify before skipping. That's why Tier 2 doesn't default to Skip.
- Re-uploading overlapping date ranges without checking the preview first. The duplicate report tells you exactly which transactions overlap; don't skip past it.
- Expecting duplicate detection to catch everything. It's a safety net for the common re-upload and re-export cases, not a substitute for keeping track of which date ranges you've already imported.
Open the AI Help panel and try:
- "What's the difference between an exact duplicate and a likely duplicate?"
- "Why did my re-upload import zero transactions?"
- "Is it safe to skip all the exact duplicates on this preview?"
Related
Was this page helpful?
Ready to try NP Ledger?
Native fund accounting, Form 990 support, and smarter bookkeeping for nonprofits.