Duplicate invoice detection: how it works and how to prevent duplicate payments
For AP managers and controllers: where duplicate invoices come from, how software catches exact and near-match copies across every channel, and the controls that stop a duplicate payment before it goes out.
Key takeaways
- Duplicate invoice detection compares each new invoice with the ones already received, on vendor, invoice number, date and amount, so the same bill isn't paid twice.
- Duplicates come in through ordinary gaps: the same invoice sent through two channels, a vendor resending an unpaid bill, a replacement invoice, or one vendor set up twice in the vendor master.
- Exact matching misses near-duplicates such as NKE-9921 and NKE9921. Cleaning up the fields first and adding near-match rules catches them, and checking every channel against one history catches cross-channel copies.
- The check has to run before payment approval, with the flagged invoice held for a named reviewer. After payment, the only fix is recovery.
On this page
Duplicate invoice detection checks each new invoice against the invoices already received, comparing the vendor, invoice number, date and amount, and holds a likely copy before anyone pays it. Exact matching only catches identical copies, so good detection also cleans up the fields and flags near-matches, such as NKE-9921 and NKE9921 from the same vendor for the same amount. It has to cover every channel invoices arrive through and run before payment approval, because after payment the only fix is recovery.
This guide covers where duplicates come from, the three checks that catch them, the controls that prevent duplicate payments and how to automate the check with accounts payable automation.
How duplicate invoices get into AP#
The same bill gets in twice, or gets recorded twice, through ordinary gaps in the process.
Two channels, one invoice
The vendor emails a PDF and uploads the same invoice to your supplier portal, or a buyer forwards a copy AP already has. Each copy lands in a different queue.Resent after a late payment
An invoice without a PO number waits to be matched, the due date passes, and the vendor sends it again as a reminder.Replacement invoices
The vendor reissues an invoice to add a late fee or a discount, but the original is never canceled, so both stay open.Paid outside AP
A rush check goes out before the invoice arrives and isn't recorded in the AP system, so the invoice is paid again when it comes in.One vendor, two records
"Northeast Kitchen Equipment" and "Northeast Kitchen Equip." are set up as separate vendors, so one invoice looks like two suppliers' bills.Period-end rush
Volume spikes at month and quarter end, approvals speed up and checks get skipped.
How duplicate invoice detection works#
Detection starts with reading the invoice. The vendor, invoice number, invoice date and total are the fields a duplicate check compares, so if one of them is misread, no rule will catch the copy.
| Field | Extracted value | Read |
|---|---|---|
| Vendor name | Northeast Kitchen Equipment | |
| Invoice number | NKE-9921 | |
| Invoice date | 2026-08-12 | |
| Due date | 2026-09-11 | |
| Payment terms | Net 30 | |
| PO number | 5498 (handwritten) |
| Field | Extracted value | Read |
|---|---|---|
| Vendor address | 37 Bridge St, Westbrook, ME | |
| Bill to | Harbor Street Bakery LLC | |
| Ship to | 22 Thames St, Portland, ME | |
| Remit to | PO Box 3170, Portland, ME |
| Field | Extracted value | Read |
|---|---|---|
| Item code | WT-3072 | |
| Description | Stainless work table, 30 x 72 in | |
| Quantity | 2 | |
| Unit of measure | EA | |
| Unit price | 385.00 | |
| Amount | 770.00 |
| Field | Extracted value | Read |
|---|---|---|
| Subtotal | 23,250.00 | |
| Sales tax rate | 5.5% | |
| Sales tax | 1,278.75 | |
| Freight | 121.25 | |
| Total due | 24,650.00 |
Three checks then run against your invoice history, and each catches what the one before it misses. The examples use invoice NKE-9921 above: $24,650.00 from Northeast Kitchen Equipment.
Exact match
Vendor, invoice number and amount are identical to an invoice already received. It catches the same PDF sent twice, but one changed character, such as NKE9921 or a trailing space, gets past it.Near match (fuzzy matching)
Strip spaces, hyphens and leading zeros from invoice numbers, ignore case and map vendor names to one vendor record, then flag the same vendor and amount with a similar number or date. NKE9921 from "Northeast Kitchen Equip." for $24,650.00 is caught here.Cross-channel check
Every invoice is compared with the history from every channel: email, supplier portal, EDI, uploads and scanned mail. The emailed PDF and the portal copy of NKE-9921 only meet if both are checked against the same history.
Why manual duplicate checks miss them#
Manual checks work at low volume. At a few hundred invoices a day, a clerk would have to remember every recent invoice from every channel, and near-duplicates are exactly what people miss when they're rushed.
Manual review
- Each clerk sees only their own queue
- NKE-9921 and NKE9921 look like two invoices
- Checks get skipped at month end
- Duplicates surface after payment, at reconciliation
Automated checks
- Every channel feeds one queue and one history
- Numbers and names are cleaned up before they're compared
- Every invoice gets the same check, at any volume
- Likely duplicates are held before approval
How to prevent duplicate payments#
Detection is one control. Set up the rule first, then close the gaps that let duplicates in.
- Choose the fields to compareVendor ID, invoice number, invoice date and total are the usual set. Add the PO number if your vendors reuse invoice numbers.
- Clean up before you compareStrip spaces, hyphens and leading zeros from invoice numbers, and map every vendor name to one vendor record.
- Decide how close counts as a matchA tight rule misses near-duplicates and a loose one floods reviewers. Run it on last year's invoices and count the known duplicates it catches and the clean invoices it flags.
- Hold flagged invoices, don't delete themA flagged invoice waits in a queue with the reason and the earlier invoice beside it, and a named person decides.
- Run the check before payment approvalA duplicate found after payment is a recovery job, not a check.
- Keep one record per vendorMerge duplicate vendors, deactivate the ones you no longer use and confirm contact details, so one supplier can't be paid under two names.
- Record rush checks and manual paymentsEnter off-cycle payments in the AP system when they go out, so the invoice that follows is matched against them.
- Keep the history when systems changeAfter an ERP migration or a merger, load past invoices and payments into the new system, so the check can see them.
- Pay from invoices onlyStatements, quotes and pro formas aren't bills. Ask vendors to put a PO number on every invoice and to mark a resend as a copy.
Duplicate invoice and payment detection software#
Duplicate payment detection software runs the same checks on every invoice. Every channel feeds one queue, each invoice is read into fields and compared with the history, and a likely copy is held with the reason before it reaches an approver. Invoices that pass move on without anyone touching them.
- Supplier portal
- EDI
- Scanned mail
- 01One queue
- 02Extract fields
- 03Compare with history
- 04Hold likely copies
Docsumo, our product, is an intelligent document processing (IDP) platform. In accounts payable, it handles invoice data extraction, sends fields it's unsure about to a person for review, and flags invoices that duplicate one already received. On the Business plan it also routes invoices for approval. On the Enterprise plan, it looks up extracted values in your master data, such as your vendor list. Cross-document validation, also on that plan, matches invoice lines to the purchase order and receipt; see 2-way vs 3-way matching. The data goes to your ERP or AP system through the API and webhooks. Docsumo doesn't pay vendors, so payment stays where it is today.
- 99%field-level accuracy across 250+ document types
- 95%+of documents processed straight through, without manual review
- 99%+touchless invoices at Valtatech
The bottom line#
Duplicate invoices get through because channels, queues and vendor records are split. Read every invoice into clean fields, compare it with one history across every channel, and hold likely copies before approval. Keep one record per vendor and record off-cycle payments, and duplicates get caught before payment instead of at reconciliation. For the rest of the invoice workflow, see automated invoice processing.
Book a demo with a few of your own invoices, including a known duplicate, or start a free trial.
Frequently asked questions#
What is a duplicate invoice?
A duplicate invoice is a second copy of a bill you've already received, recorded as if it were new. It's often an honest mistake, such as the same invoice sent by email and through a portal or a vendor resending an unpaid bill, and it becomes a duplicate payment if both copies are paid.
Which type of duplicate invoice is hardest to catch?
Near-duplicates that arrive through different channels: the same bill as an emailed PDF and a portal upload, with the invoice number typed slightly differently (NKE-9921 and NKE9921) or the vendor name abbreviated. Exact matching sees two invoices, and two clerks working separate queues never see both.
Which software detects duplicate invoices?
Many AP tools flag them. Docsumo, our product, flags invoices that duplicate one already received; Stampli's AI flags duplicates; Sage Intacct's AP automation flags duplicate bills; and Rossum lists duplicate detection on its Business plan. Results depend on how accurately each tool reads the fields and how the rule is set, so test any of them on last year's known duplicates.
How should AP handle a flagged duplicate invoice?
Hold it rather than delete it. Put it in a review queue with the reason and the earlier invoice side by side, and have a named person reject it or release it; if it's a copy, tell the vendor, so the resend doesn't come back a third time.
What is a duplicate payment, and how do you recover one?
A duplicate (or double) payment is paying the same bill twice. Ask the vendor for a refund or a credit against its next invoice, and fix the rule that missed it. Recovery audits review past payments and supplier statements for money owed back, and some AP vendors sell them as a service, such as Basware's AP Audit & Recovery.
Can the same check catch duplicate receipts?
Yes. For expense receipts, compare the merchant, date, amount and receipt number across claims, so one receipt isn't reimbursed twice or claimed by two people. Some accounting tools also spot a document uploaded twice, such as Xero's Smart Document Capture.