Duplicate vendor payments go undetected not because controls are weak, but because almost no routine accounts payable process is actually designed to look for them. A duplicate invoice usually has a different invoice number, arrives on a different date, and often gets approved by the same person who approved the original — every individual check in a normal process (approval, matching to a purchase order, posting to the ledger) passes on each copy independently, because each one looks like a legitimate, isolated transaction. The only way to actually catch one is to compare every payment against every OTHER payment to the same vendor, which is specifically the kind of full-population check a sample-based review structurally can't do cheaply.
Why each individual control misses it
| Control | What it checks | Why a duplicate passes anyway |
|---|---|---|
| Three-way match | Invoice vs. purchase order vs. goods receipt | A duplicate invoice can match the same PO and receipt a second time if the system doesn't block re-matching |
| Approval workflow | Is this specific invoice authorised | A manager reviewing invoice #2 in isolation has no reason to recall approving a similar one weeks earlier |
| Budget check | Is there budget for this spend | A duplicate is, by definition, within an already-approved budget line |
What actually catches it
A duplicate-payment check works differently from every control above — instead of asking "is this transaction valid on its own," it asks "does this transaction look like another one." That means matching every invoice against every other invoice to the same vendor, by amount and by date proximity, across the whole population rather than a sample. It's a different kind of check, not a stricter version of the same one.
Common practice, not a requirement
The most common real pattern isn't an obviously identical invoice — it's the same delivery billed twice under two different invoice numbers, days apart, because of a vendor-side billing error or a late resubmission nobody cross-checked against what was already paid.
This is practical guidance written for audit teams, not an authoritative statement of any standard or statute. Standards, forms and timelines change. Check the current text issued by the ICAI and the relevant authority before relying on anything here in an audit file.
Related resources
- Purchase & AP auditDuplicate invoice detection during auditWhy exact matching finds almost nothing, the six match rules that do work, and how to tell a duplicate booking from a duplicate payment.
- Purchase & AP auditA duplicate invoice found three days before sign-off: what actually happenedThe invoice had already been vouched once. It came back a second time under a different invoice number, same vendor, same amount, four days apart.
- Purchase & AP auditPurchase invoice vouching: a practical approachWhat to examine on a purchase invoice, in what order, the tickmarks worth using, and how to record the test so a reviewer can tell what was checked without asking.
Free tools, no signup
Each one reads a file entirely in your browser — or, for two of them, just answers a few questions — and nothing is ever uploaded.
- GSTR-2B reconcilerMatches your purchase register against GSTR-2B — missing invoices either side, amount mismatches.
- Bank reconciliation checkerMatches your cash book against a bank statement — what's outstanding on each side.
- Fixed asset register checkDuplicate asset codes, missing location or useful life, negative net book value.
- Payroll red-flag scannerBank accounts shared across employees, and records missing an ID, PAN or salary.
- CARO applicability checkerAnswer a few questions about the company and see which CARO 2020 clauses likely apply.
- MSME payment delay checkerMSME-flagged invoices paid — or still unpaid — beyond the 45-day Section 22 limit.
- Related-party transaction screenerTransactions above a threshold you set with no approval reference, grouped by counterparty.
- Depreciation useful life checkerCompares a useful life in use against the Schedule II, Part C indicative figure.
- Materiality calculatorOverall and performance materiality against PBT, revenue, assets or equity, with reasoning shown.
- Sample size calculatorStatistical sample size for a test of controls or a substantive test of detail.