How duplicate invoice payments happen — and how to actually catch them
Every AP team has paid the same invoice twice. It isn't carelessness; it's structural. The vendor emails the invoice, then mails it. The invoice arrives once on its own and once attached to a statement. A PO gets entered, then the matching invoice gets entered as a second bill. Someone re-keys INV-2041 as 2041 and the software, checking for an exact match, sees two different documents.
Why your accounting software misses them
Most systems check one thing: does this vendor already have a bill with this exact reference number? That catches the lazy duplicate and misses every interesting one. A leading zero, a re-issued invoice with a new number, the same delivery billed on two overlapping statements — none of these trip an exact-match check. The duplicates that cost money are precisely the ones that don't look identical.
The checks that work, in layers
No single rule catches everything. A layered check does:
- Normalize before comparing. Strip prefixes, leading zeros, and punctuation from reference numbers so INV-2041, #2041, and 2041 collide instead of coexisting.
- Match on vendor + amount + date window. Same vendor, same total, within 30 days is worth a human glance even when the numbers differ — this is where re-issued and re-sent invoices get caught.
- Compare at the line level.A statement that repeats three already-paid invoices won't match any single bill on total, but its lines will.
- Flag, don't block.Some near-duplicates are legitimate — monthly retainers, repeated deliveries at the same price. The check's job is to route the suspect to a person with both documents side by side, not to make the call itself.
Doing this manually
If your volume is low, a monthly report of bills grouped by vendor and amount, sorted by date, finds most of them — tedious, but it works. The trouble is that the check happens after entry, sometimes after payment, and recovering money from a vendor is a much worse job than not sending it.
Where automation earns its keep
The right moment to catch a duplicate is on arrival, before the bill exists in your books. An automated intake pipeline runs every layer above against your full history the moment an invoice shows up, and routes suspects to a review queue with the original alongside. Nothing gets entered, and nothing gets paid, until a person clears it. Duplicate detection stops being a monthly cleanup and becomes a property of how invoices enter the system in the first place.
Start with a free AI Systems Audit.
Tell Trod what eats your team's time and get a written assessment back: whether it's automatable, what it would take, and what it would save. No obligation either way.
Request an audit →