Duplicate invoices are usually discussed as a detection problem, and they are mostly a process problem. Suppliers do sometimes send the same invoice twice, and that case is easy to catch. The expensive duplicates are the ones your own process creates: the same document entering through two channels, a reissue with a new number, or a purchase paid on a card and then invoiced.
The same document, two channels
An invoice emailed to a shared address and also to an individual, entered twice by two people who did not know about each other. This is the most common cause and it is entirely removed by consolidating arrival channels, which costs nothing but a quarter of polite persistence with suppliers and colleagues.
The reissue with a new number
A supplier queries something, reissues a corrected invoice with a new number, and both end up in the system. Number-based duplicate detection misses this completely. Checking supplier, amount and approximate date catches most of them, at the cost of some false positives that a person has to review.
Paid twice by different routes
Something bought on a card and then invoiced, or a deposit paid manually and included again in a later invoice. These bypass duplicate detection entirely because they are not two invoices. The defence is process: card spend reconciled against invoices, and deposits recorded against the order so a later invoice can be matched net of them.
Questions people ask about duplicate invoices
How do we find duplicates we already paid?
Supplier statement reconciliation is the usual route, and a periodic query for the same supplier, amount and near date across a year. Recovery is usually straightforward if you ask.
Should detection block payment?
Block on an exact supplier and invoice number match. Warn on fuzzier matches, because blocking on those trains people to override.
Do suppliers mind being asked?
Almost never. A duplicate payment is an accounting nuisance for them too, and most will apply a credit without argument.