Two documents are duplicates when they come from the same supplier and carry the same invoice number and amount — and neither is a credit note, a cancellation or a correction. Duplicates almost always enter at intake, because one invoice reaches you by email, as a portal download and as a manual upload. That's also where they're cheapest to stop: one intake channel, a check on supplier plus invoice number, and a rule to flag duplicates instead of deleting them.
Where duplicate invoices come from
An invoice is issued once but often reaches you several times, and each route produces its own file. Count files instead of invoices and you will eventually book something twice. The usual sources:
- Email, portal and upload in parallel: the invoice arrives by email, someone also downloads it from the supplier's portal, and a colleague uploads the same file to the accounting software.
- Reminders with the invoice attached: payment reminders often include the original invoice again. Import the attachment and the invoice shows up twice, like a new open item.
- Several mailboxes: the invoice goes to info@ and accounts@, or two people forward the same email.
- A ZUGFeRD PDF and its XML: ZUGFeRD is a German hybrid e-invoice format (Factur-X in France), a regular PDF with the invoice data embedded as XML. If the XML also arrives separately, or a tool saves it as a file of its own, you have two documents.
- An e-invoice plus a PDF view: an XRechnung, the German XML e-invoice standard, has no readable page, so suppliers often send a PDF along. Same invoice.
- Scans and copies: a PDF gets printed and scanned back in, or the supplier re-sends a “copy” — often with a new print date but the same invoice number.
The files differ; the invoice doesn't. So compare invoice data, not file names or sizes — and route everything to one place first (see how to set up an invoice email address).
What a duplicate costs you
A duplicate file harms nobody until it is booked or paid. Then three things go wrong:
- Input VAT reclaimed twice. Under the German VAT Act (Section 15(1) UStG) you deduct the VAT legally owed for a supply another business made to your company — one supply, one deduction. Book an invoice twice and your advance VAT return (Umsatzsteuer-Voranmeldung) overstates input VAT and understates what you owe. The logic holds wherever you reclaim VAT.
- The expense counted twice. Profit is understated, and the second entry has to come out by the annual accounts at the latest.
- Paid twice. The money is gone until the supplier refunds or credits it, and double payments often go unnoticed because each transfer looks plausible on its own.
Duplicate invoice detection: which key catches what
The natural key of an invoice is supplier plus invoice number. German VAT law requires a sequential number that the issuer assigns once to identify the invoice (Section 14(4) no. 4 UStG). Once per issuer, that is: two suppliers can both send INV-1001, so always check the pair. Your own internal document number doesn't help, because two copies get two numbers at intake.
| Key | Reliably catches | Misses or falsely flags |
|---|---|---|
| Supplier + invoice number (primary key) | The same invoice from any channel: email, portal, reminder, scan, e-invoice plus PDF | Receipts without a number, misread numbers, suppliers set up twice. Falsely flags corrections quoting the same number |
| Amount + date + currency | A second signal; the only clue for receipts without a number | Falsely flags subscriptions and installments |
| File hash (checksum, e.g. SHA-256) | Byte-identical files: forwarded twice, uploaded twice | Any technically different file: regenerated download, scan, photo, XML instead of PDF |
| Content similarity (text, image) | A scan of a printout, a second photo of the same receipt | Needs review: monthly invoices in the same layout look alike |
One changed byte changes a file hash. Some portals regenerate the PDF on every download, for example with a new creation timestamp in the metadata — same invoice, different file, different hash.
Emails have their own key, the Message-ID header: the same email sent to two addresses carries the same ID, while a manual forward gets a new one.
Three rules make the check reliable:
- Normalize invoice numbers: ignore spaces, hyphens, slashes and letter case, so
INV-2026/0042andinv 2026 0042both becomeINV20260042. - Keep one record per supplier: names vary (“Example Ltd”, “Example Software Ltd”), VAT IDs and IBANs don't. If a supplier exists twice, a supplier-plus-number check finds nothing.
- Check the document type: a credit note, cancellation or correction isn't a duplicate, even if the number matches.
What is not a duplicate
A check that is too strict throws out genuine documents, and then expenses and input VAT go missing. These cases look similar but stand on their own:
- Credit notes: a €50 credit on a €500 invoice is a separate document with a negative amount. In Germany it reduces your input VAT in the period in which the change happens (Section 17(1) UStG).
- Cancellation and reissue: the supplier cancels INV-1001 and issues INV-1002 — three documents for one supply. Compare only supplier and amount and the valid INV-1002 looks like a duplicate. Keep all three and book them so that exactly one invoice remains.
- Corrected invoices: under German rules, a missing or wrong detail is fixed with a document that refers “specifically and unambiguously” to the original (Section 31(5) UStDV), so it usually quotes the original number. It isn't a duplicate, but it isn't a second expense either: it supplements or replaces the original.
- Progress invoices: three progress invoices of €2,000 each for one project are three invoices. Watch the final invoice: it must deduct the down payments already invoiced and the VAT on them (Section 14(5) UStG). Book its gross total instead of the balance and you reclaim the VAT on the down payments twice — a duplicate no file comparison finds.
- Recurring invoices: a €49-a-month subscription produces twelve invoices with the same amount, but twelve numbers and twelve service periods.
- Continuing invoices: a continuing invoice (Dauerrechnung), such as a lease that states the VAT, rightly backs every monthly payment with the same document.
Prevent duplicates: a six-step process
- Set one intake channel. All invoices go to one address or mailbox; portal downloads and uploads land in the same inbox, not in a second folder. Ask suppliers who send by post and by email to pick one.
- Check at intake, not at booking. Supplier and normalized invoice number first, then amount, date and currency. A hash comparison catches byte-identical files.
- Flag, don't delete. Add a note such as “Duplicate of INV-2026-0042, attached to the reminder of 12 Sep 2026 — do not book, do not pay.” It records what came in, and a false positive can be undone.
- Treat an e-invoice as one invoice. XML plus PDF view, or ZUGFeRD PDF plus extracted XML: one document, one booking. Under the GoBD, the German tax administration's rules for digital bookkeeping, as amended by the Federal Finance Ministry letter of 14 July 2025, keeping the structured part is enough; the readable PDF part only has to be kept if it contains additional or deviating tax-relevant information, such as booking notes. More in our guide to e-invoice formats (German).
- Check before paying. If the invoice says the amount will be collected by direct debit or was already charged to a card, don't transfer. Pay a reminder only once your bank account shows the first payment didn't go out.
- Reconcile regularly. In an invoice reconciliation workflow, a double payment stands out: two debits, one invoice. Don't “document” the second payment with a copy of the invoice — that puts the duplicate back in your books.
Already happened: booked twice or paid twice
If a duplicate has slipped through, fix the booking and the payment separately.
Invoice booked twice
- Decide which entry stays: the one whose document remains in the archive.
- Reverse, don't delete. Post a reversing entry so the error and the fix both stay visible. German law says an entry must not be altered so that its original content can no longer be determined (Section 146(4) AO). Once entries are locked (Festschreibung, German), accounting software only allows reversal anyway.
- Fix the VAT. If the duplicate input VAT is already in a filed advance VAT return, that return was wrong. Under Section 153 AO of the German Fiscal Code, once you realize a return has led or could lead to too little tax, you must notify the tax office without undue delay and correct it — advance returns included, since they are self-assessed returns. In practice: a corrected return for the affected period, plus the annual VAT return if already filed. Your tax advisor (Steuerberater) usually handles this; outside Germany, follow your tax authority's correction procedure.
- Flag the duplicate file with a pointer to the original, so it's clear later why it wasn't booked.
Invoice paid twice
- Collect the evidence: both bank transactions and the invoice.
- Contact the supplier for a refund or a credit against the next invoice. Under German law, whoever receives something without legal grounds must give it back (Section 812 BGB, the Civil Code). Get a credit confirmed in writing; the confirmation becomes your document.
- Reverse a direct debit if it fits. If the amount was collected by SEPA Core direct debit (SEPA-Basislastschrift) and also transferred, your bank refunds the debit if you ask within eight weeks of the debit, no reason needed (Section 675x BGB). Tell the supplier first, so it isn't treated as a failed payment. SEPA B2B direct debits have different terms — ask your bank.
- Book it correctly: the second payment is a claim against the supplier, not a second expense — in double-entry terms, a debit balance on the supplier's account. Attach the refund confirmation or the correspondence, not the invoice copy.
How belege.ai catches duplicates
belege.ai is an AI agent for businesses in Germany that uses your bank transactions as its to-do list and pulls invoices from connected mailboxes, supplier portals, your forwarding address and your uploads — exactly where duplicates arise. So the check is built in:
- Identical files are recognized by their content across all sources.
- Same invoice number, date, amount and currency: an AI then checks whether it really is the same invoice. Credit notes, cancellations and corrections are treated as separate documents.
- Flagged, not deleted: duplicates aren't removed, and they don't count as found documents.
- A second photo of the same receipt for the same payment is caught.
- Emails and accounts: emails are processed once, based on their Message-ID, and bank accounts that arrive through several channels are merged by IBAN.
- Double payments are flagged or, if the case isn't clear, raised with you in Telegram.
Because it starts from the bank transaction, the agent looks for the matching invoice for each payment — see matching receipts to bank transactions. Invoices sent to your belege.ai email address are one more source; the receipt overview shows what is still open.
Common mistakes and a checklist
- Comparing file names. There are hundreds of files called “invoice.pdf”, and “INV-1001_final.pdf” is the same invoice as “INV-1001.pdf”.
- Looking at the amount only. Every subscription triggers a warning, people learn to ignore the warnings, and eventually a real hit gets clicked away.
- Deleting duplicates, as files or as entries. A false positive can't be undone, and the correction leaves no trail.
- Paying a reminder without checking the bank account. A classic route to paying twice.
Checklist for your invoice intake:
- One intake channel; suppliers know where to send invoices.
- Duplicate check at intake: supplier and normalized invoice number, then amount, date and currency.
- Each supplier set up once, identified by VAT ID or IBAN.
- Credit notes, cancellations, corrections, progress invoices and subscriptions kept as separate documents.
- Duplicates flagged with a pointer to the original; nothing deleted.
- Before every payment: direct debit? Card? Already transferred?
- Double input VAT found: return corrected, tax advisor informed.
With a clean intake, the handover is easy — see how to organize invoices for your accountant. The legal sources below are official German texts.