The first run on a year or two of data usually produces a long list, most of it recurring bills of the same amount. Clear those once, keep the list of vendors with fixed monthly bills, and the second run is short. A hit becomes a duplicate only when the two bills are for the same supply and the bank statement shows both payments going out.
Recovering the money is half the job. Each confirmed duplicate says something about a control: a vendor master that allows two codes for one PAN, manual payments that bypass the open-bill check, or advances the approver cannot see. The wider control tests are in the procure-to-pay audit workbook and the procure-to-pay internal audit checklist; this kit covers only the duplicate tests.
Run once a year, these tests find money that has already left. Run before every payment run, the same tests stop it leaving. The monitoring rules builder shows how to turn a one-off test into a recurring one with an owner.
Further reading: vendor fraud patterns and how they are detected and the procure-to-pay risk and control matrix for India.
A duplicate payment is the same supply paid for twice. It almost never appears in the books as two identical entries, because accounting systems already warn when the same invoice number is entered twice under the same vendor. What gets through is the near-duplicate: the same bill with the number typed differently, the same bill under a second vendor code, a manual payment followed by the regular run, or a bill paid in full when an advance or a credit note should have been set off.
Each test in this kit is a way of grouping the vendor ledger so that those cases fall next to each other. The first test groups by vendor and invoice number. The second groups by vendor and amount and looks at how close the dates are. The third cleans the invoice number — capital letters, no spaces or punctuation, no leading zeros — and repeats the first test. The fourth finds vendor codes that share a bank account, PAN or GSTIN and looks for the same bill across them. The fifth works on payments rather than bills. The last three look at credit notes, advances and bills booked through two routes.
The data needed is small: an invoice register with vendor, supplier invoice number, invoice date and amount; a payment register with vendor, date, amount and bank reference; the vendor master with PAN, GSTIN and bank account; and the vendor ageing with debit balances. In Tally these come from the Purchase Register, Payment Register, bill-wise outstandings and the ledger masters. In SAP they come from the accounting document tables, the vendor master tables and the payment run tables. The page lists them for the system you pick.
Every test produces false positives, and the page says which ones to expect. Rent, retainers and monthly service bills are the same amount every month and will fill the second test until they are excluded. Clearing false positives is part of the work, not a failure of the test. What remains goes into the hit log, is checked against the bills and the bank statement, and only then moves to the recovery tracker with an owner and a closure date.
Illustrative only. A supplier bills ₹4,72,000 on invoice number "KT/0318/26-27" dated 12 June 2026. Accounts payable books it from the emailed copy. The paper copy arrives a week later at the plant, where it is entered as "KT-318-2627" dated 12 June 2026. The system raises no warning because the two numbers differ. The first entry is paid in the June payment run and the second in July.