How to detect duplicate supplier invoices (and stop paying twice)
4-6% of the invoices you receive are duplicates. Learn to detect them before paying twice, with key fields, detection methods and real EUR examples. ininvoice automates this process.
Out of every 100 invoices your company receives, between 4 and 6 are duplicates. Most are paid without anyone noticing. Together with the most common supplier invoice errors, duplicates are the leading avoidable cost in accounts payable.
We are not talking about sophisticated fraud. We are talking about a supplier resending an invoice because you never confirmed receipt. About a double posting because the invoice arrived by email and by post. About a partial invoice booked as full. Simple, repeating mistakes that cost real money.
According to IOFM data, between 0.1% and 0.5% of all invoices are paid twice. It seems small, but in a company processing 500 invoices per month with an average amount of EUR 1,200, that adds up to between EUR 7,200 and EUR 36,000 a year paid in excess. Without counting the time spent claiming the refund.
In this article you will see why invoices get duplicated, which fields you have to cross-check to detect them, how much it costs to ignore the issue, and how to put a working detection system in place. All with EUR examples and grounded in the reality of European SMEs.
Why supplier invoices get duplicated
Before detecting duplicate invoices, it helps to understand why they appear. There is no single source. Several failures stack up.
Multiple intake channels
The same supplier sends the invoice by email to the purchasing department, by post to administration, and uploads it to your supplier portal. Three entries for the same invoice. If there is no single intake point, each channel generates its own record.
In mid-sized European companies this is especially common. Many suppliers still send paper invoices in addition to the PDF by email. Until mandatory electronic invoicing (planned under the Spanish Crea y Crece Act) is fully rolled out, both formats will coexist.
Supplier re-sends
The supplier never gets confirmation that you received their invoice. Fifteen days go by. They resend. Your system records it as new. The supplier did nothing wrong; your acknowledgement process failed.
Patricia, head of accounts payable at a distribution company in Seville, found that 40% of her duplicate invoices in 2025 came from re-sends. Suppliers received no confirmation and resent the PDF. Once she fixed it with automatic acknowledgements, duplicates dropped by half.
Manual entry errors
The accounting team types the invoice in by hand. Number FAC-2024-0891. A month later, the same supplier resends and someone enters it as FAC-2024-891 (without the leading zero). It is the same invoice, but the system sees them as different because the number does not match exactly.
Variation in how an invoice number is typed is one of the most frequent causes of duplicates that slip past basic detection rules.
Partial deliveries and credit/correction invoices
An order of 1,000 units is delivered in two shipments. The supplier issues two partial invoices. But they also issue a summary invoice for the total. If all three enter the system, the total gets booked 1.5 times.
Correction invoices generate a similar problem. The original invoice and the correction invoice coexist in the system. If someone pays the original without cancelling it after receiving the correction, the supplier is paid twice.
How many duplicates are slipping through?
ininvoice cross-checks number, supplier, amount and date on every incoming invoice. If a duplicate is found, it blocks it before payment. See a demo with my invoices.
The 4 fields that reveal a duplicate invoice
Detecting duplicate invoices does not require advanced AI. It requires cross-checking the right fields.
Exact duplicates
These are the easiest to detect. Same invoice, same supplier, same amount, same date. The system identifies them by comparing four fields:
| Field | What it compares | Example |
|---|---|---|
| Invoice number | Series + exact number | FAC-2024-0891 |
| Supplier | Tax ID or supplier code | B12345678 |
| Total amount | Total including VAT | 1,452.30 EUR |
| Invoice date | Issue date | 15/03/2025 |
If all four match, it is a duplicate. No exception.
Near-match duplicates
Here is the real problem. Duplicates that almost match but not quite. They are the ones that escape most often.
Real examples:
- Number variation: FAC-2024-0891 vs FAC-20240891 (with and without hyphen)
- Amount with cents of difference: 1,452.30 EUR vs 1,452.33 EUR (VAT rounding)
- Shifted date: invoice issued on 28/02 vs the same invoice dated 01/03
- Supplier with different name: “García Supplies S.L.” vs “GARCIA SUPPLIES”
To detect these near-matches, the system needs fuzzy matching rules: compare normalised numbers (no hyphens or spaces), tolerate amount differences below a threshold (for example, 1 EUR), and compare suppliers by tax ID instead of by name.
A system that only looks for exact matches catches the obvious duplicates. Near-matches, which represent up to 30% of duplicates according to Thirdline data, need smarter rules.
Which field combination to use
You do not always cross-check the four fields at once. It depends on what you want to detect:
| Combination | What it detects | False positive risk |
|---|---|---|
| Number + supplier | Same invoice re-sent | Low |
| Supplier + amount + date | Invoice with different number but same charge | Medium |
| Supplier + amount (1% tolerance) | Similar invoices over a wide period | High, needs review |
| Number + amount | Invoice posted to the wrong supplier by mistake | Low |
The ininvoice rule: cross-check by invoice number, supplier, amount and date. If three of four match, it is flagged as suspicious. If all four match, it is blocked automatically.
How much a duplicate payment costs
Numbers vary by company size, but the mechanics are the same: a small percentage of duplicate invoices generates a surprising accumulated cost.
Scenario 1: SME with 300 invoices per month
Average amount per invoice: EUR 800. With a duplicate rate of 2% (conservative), that is 6 duplicate invoices per month.
- 6 duplicates x EUR 800 = EUR 4,800/month paid in excess
- If 50% are caught in time (partial manual review): EUR 2,400/month of net loss
- Per year: EUR 28,800
And that assumes the company recovers the other half. In practice, claiming a duplicate payment back from a supplier takes between 2 and 6 weeks. Some companies do not even try for small amounts.
Scenario 2: mid-sized company with 800 invoices per month
Average amount: EUR 1,500. Duplicate rate of 1.5%: 12 duplicate invoices per month.
- 12 duplicates x EUR 1,500 = EUR 18,000/month
- With automatic detection (95% accuracy): only 1 invoice slips through = EUR 1,500/month
- Without detection, per year: EUR 216,000
- With automatic detection, per year: EUR 18,000
The gap: EUR 198,000 per year. That is the cost of having no automatic detection in a company processing 800 invoices a month.
The hidden cost: claiming and refunding
Javier, finance director at a logistics company in Zaragoza, calculated that each duplicate payment caught after the fact cost him 4 hours of administrative work. Identifying the duplicate, contacting the supplier, verifying that it had indeed been paid twice, raising the refund request, following up.
At EUR 30/hour fully loaded, each claim costs EUR 120 in time. If you have 6 late-caught duplicates per month, that is EUR 720 per month just in handling, on top of the money paid in excess.
The best duplicate is the one you catch before payment. Not after.
EUR 198,000 per year in avoidable duplicates?
ininvoice detects 95% of duplicate invoices before payment. No implementation, no lock-in. Try it with your invoices.
Detection methods: from Excel to automation
Manual review (and its limits)
The most basic method: someone on the team reviews every invoice before approval. They look in the history to see if that invoice number or that amount already exists for that supplier.
It works with 30 invoices a month. With 200, it is unsustainable. If your team still reconciles invoices in Excel, duplicates sneak in precisely during volume peaks, when more invoices arrive and less attention is paid to each one.
ERP rules
ERPs like SAP or Microsoft Dynamics 365 include duplicate invoice checks. SAP, for example, compares invoice reference, company code, supplier, invoice date and amount when posting a new invoice.
The problem: these rules only work if data is entered consistently. If the invoice number is keyed with variations, the ERP does not catch it. In addition, many SMEs do not have an ERP, or use basic versions without this module active.
Specialised software with OCR
Tools like ininvoice combine OCR (automatic data extraction from the PDF) with detection rules. The invoice arrives by email, the system extracts number, supplier, amount and date, and automatically cross-checks against all recorded invoices.
The advantage over the ERP: it does not depend on someone typing correctly. Data is extracted directly from the document. These tools also typically include three-way matching (cross-check of invoice with PO and delivery note), which adds another verification layer. If two PDFs share the same content, the system detects it even if they arrive through different channels.
IOFM estimates that automatic detection catches up to 95% of duplicates before payment. The remaining 5% are near-matches that need human review, but review volume drops drastically.
How to build a duplicate detection system
You do not need a 6-month project. These are the four steps any company can follow.
Step 1: centralise invoice intake
If invoices come in through three different channels, no detection system works well. The first step is to set up a single entry point. A dedicated email (invoices@yourcompany.com), a supplier portal, or both, with a system that centralises everything.
In Spain, with mandatory electronic invoicing on the way, this step will be solved for many companies. Until then, manual centralisation is essential.
Step 2: define the cross-check fields
Decide which combination of fields you will use. At minimum: invoice number + supplier (tax ID). If you want to catch near-matches, add amount with 1% tolerance and date with a 7-day window.
Document the rules. Make sure the whole team knows which fields are compared and what happens on a match.
Step 3: configure alerts and blocks
Two action levels:
- Automatic block: 4/4 field match. The invoice is stopped and cannot be paid without explicit approval.
- Alert for review: 3/4 field match or near-match. The invoice is flagged as suspicious but not blocked. Someone has to review it.
The key is not to block too much (it creates bottlenecks) or alert too little (duplicates slip through). Start with strict rules and tune them based on false positive volume.
Step 4: review exceptions, not every invoice
With a detection system, the team stops reviewing all 500 invoices and only reviews the 15-20 flagged as suspicious. Review time drops 90%.
Ana, controller at a construction company in Madrid, went from dedicating 3 people to invoice review to needing just 1. The other two now work on supplier analysis and terms negotiation. Same headcount, but focused on value-creating tasks.
Frequently asked questions about duplicate invoices
Can a supplier issue two invoices with the same number?
Not legally. Spanish invoicing rules require sequential, unique numbering per series. If a supplier issues two invoices with the same number, it is the supplier’s mistake. Your system must detect it and hold the payment until it is clarified.
What do I do if I detect a duplicate payment already made?
Contact the supplier with the evidence (both payments and the invoice). Most will issue a credit note or offset on the next invoice. If they do not respond, you can offset unilaterally on the next payment, but document everything.
Do e-invoices eliminate duplicates?
They drastically reduce exact duplicates because the format is structured and the number is unique. But they do not eliminate near-matches or entry errors. Spanish Law 18/2022 (Crea y Crece) establishes mandatory B2B e-invoicing in Spain. In addition, Royal Decree 1007/2023 (Verifactu), in force since July 2025, requires every invoice to be logged with an immutable hash, which eliminates the possibility of issuing a duplicate invoice from the same software. Still, duplicates from multi-channel intake persist and need detection on the AP side. For the receiver side, see how to receive Verifactu invoices without duplicating the hash.
How many duplicate invoices are normal?
It depends on sector and process. A 2-4% rate is common in companies with no automatic controls. With automatic detection, it should drop to 0.1-0.3% (only near-matches that escape the rules).
What is the difference between a duplicate invoice and a correction invoice?
The correction invoice replaces or corrects a previous one. It has its own number and references the original. The duplicate invoice is the same invoice recorded twice. The system must tell them apart: the correction is legitimate; the duplicate is not.
Conclusion
Duplicate invoices are not a one-off problem. They are a systematic failure that affects 4-6% of invoices at companies without automatic controls. And every duplicate paid costs real money: the invoice amount, the time to claim it back, and the erosion of supplier trust.
Duplicates are just one of the 8 most common supplier invoice errors. The good news is that detecting duplicate invoices does not require complex technology. It requires four things: centralise intake, cross-check the right fields (number, supplier, amount, date), configure alerts and blocks, and have the team review exceptions instead of every invoice.
ininvoice detects duplicates by cross-checking those four fields on every incoming invoice, before payment is approved. Take a look at the features or check the pricing. If you process more than 200 invoices a month and have no automatic detection, the numbers say you are paying too much. The question is how much.
Related reading: how the invoice risk score methodology works, and how to detect red flags of supplier invoice fraud.
Block duplicates before paying
ininvoice cross-checks invoice number, supplier tax ID, amount and date on every incoming invoice. No implementation, no lock-in. EUR 249/month.
See a demo with my invoices