How to prevent duplicate payments, and find the ones you’ve already made


In June, your packaging supplier sends its quarterly statement of account. At the bottom is a line nobody expected: a credit of Rp 37,450,000 in your favour. Someone traces it back. In March, the same invoice was paid twice, eleven days apart.
The supplier had emailed the invoice as a PDF and sent a paper copy with the delivery. One AP clerk keyed the PDF. Another keyed the paper copy, without the “INV” prefix, under a second vendor record created the year before. The usual approver was on leave, so the second invoice went to their deputy. Each step was reasonable. Together, they paid one invoice twice.
Duplicate payments are rarely dramatic, which is why they last. This guide explains how they happen, why the duplicate check in most accounting systems misses them, how to find the ones you’ve already made and the controls that stop the next one.
What is a duplicate payment?
A duplicate payment is paying the same obligation more than once, in full or in part. Most are errors rather than fraud: the same invoice arrives twice and is processed twice. Some are deliberate, such as an invoice resubmitted with a new number in the hope that nobody compares it with the first.
It helps to separate two kinds:
- Exact duplicates: same vendor, same invoice number, same amount. Most accounting systems warn about these, and they are rarely the problem.
- Near-duplicates: the same invoice with one thing changed. The number is formatted differently, the vendor exists twice in the master, the date is the delivery date instead of the invoice date, or the amount differs by rounding. This is where the money goes.
Duplicates aren’t limited to vendor invoices. A hotel booked by the travel desk and paid through AP can come back as an employee’s expense claim, with the same folio attached.
3-way matching helps with invoices backed by a purchase order: once a PO line has been fully invoiced, a second invoice against it has no received quantity left to match. But services, utilities, rent, subscriptions and invoices without a PO have no such protection, and that’s where most duplicates are paid.
How the same invoice gets paid twice
- Two copies through two channels. A PDF by email, a paper copy with the goods, a photo from the vendor’s sales rep on WhatsApp, a reminder a month later. Each looks like a new invoice to whoever opens it.
- The number is keyed differently. INV/2026/0417, INV-2026-0417 and 2026-0417 are the same invoice to a person, and three different invoices to a system that compares text exactly. Leading zeros, spaces and a letter O typed for a zero do the same.
- The vendor exists twice. “PT Mitra Kemasan” and “PT. Mitra Kemasan Indonesia” have different vendor codes, so a check that looks for the same number from the same vendor never compares them.
- Urgent payments outside the run. A vendor threatens to stop supply, someone transfers the money from internet banking, and the invoice stays open in the system. The next payment run pays it again.
- Statements and reminders paid as invoices. A “second notice” or statement of account carries the same amount as the original, and gets processed as if it were new.
- The wrong entity, then the right one. In a group with several companies, a vendor bills the wrong PT, then re-bills the right one. Both pay.
- Corrected invoices. The vendor issues a revised invoice to fix an error, and the original is paid as well as the replacement.
Why the system’s duplicate check misses them
Most accounting systems block or warn when the same vendor and invoice number are entered twice. That check is worth having, but it only catches the easiest case: an identical invoice, keyed identically, against the same vendor record.
Here is the March example side by side:
| Email copy | Paper copy | |
|---|---|---|
| Vendor record | PT Mitra Kemasan | PT. Mitra Kemasan Indonesia |
| Invoice number | INV/2026/0417 | 2026-0417 |
| Invoice date | 3 March 2026 | 3 March 2026 |
| Amount | Rp 37,450,000 | Rp 37,450,000 |
| Paid | 17 March | 28 March |
To an exact check, these are two different invoices from two different vendors, so both pass. A check that strips the prefix and punctuation from the number (20260417 in both cases), and compares amount and date regardless of which vendor record was used, sees one invoice.
Even when the warning fires, it often appears on the screen of a clerk with fifty invoices to post before the payment run. Without a required reason, dismissing it takes one click and leaves no trace.
Duplicate payments in Indonesia
A few local habits make near-duplicates more likely, and also give you better ways to catch them:
- Match vendors on NPWP and bank account, not name. The same company is written with and without “PT.”, with or without “Indonesia” or “Tbk”, and sometimes under a brand name. The NPWP and the bank account number are much harder to type two ways.
- Revised invoices and replacement tax invoices. When a vendor corrects an invoice, it usually issues a replacement faktur pajak (faktur pajak pengganti) as well. Treat the revised invoice as replacing the original, and cancel the original in your system the same day. Input VAT (PPN masukan) should only be credited once, on the valid faktur pajak, which is one more reason to close the original as soon as the replacement arrives.
- Withholding changes the amount you transfer. For services, tax such as PPh 23 is often withheld from the payment, so the transfer is smaller than the invoice. When you search bank data for duplicates, compare invoice amounts rather than transfer amounts, or the withheld payments won’t line up.
- Several PTs in one group. If vendors serve more than one of your entities, look for duplicates across entities, not only within each one.
How to find duplicate payments you’ve already made
Before tightening the controls, find out what has already leaked. A one-off review of past payments, sometimes called a duplicate payment audit, usually takes a few days in a spreadsheet:
- Export 12 to 24 months of paid invoices from every entity, with vendor name, NPWP, bank account, invoice number, invoice date, amount and payment date.
- Normalise the invoice numbers. Remove spaces, punctuation and common prefixes such as “INV”, then strip leading zeros, so “INV/2026/0417” and “2026-0417” both become 20260417.
- Group by NPWP or bank account instead of vendor code, to bring duplicate vendor records together.
- Look for matches in layers: the same normalised number; then the same amount and invoice date; then the same amount within 30 days. Each layer finds more, with more false alarms to check.
- Ask your largest vendors for a statement of account. A credit in your favour, or an account showing as overpaid, is often a duplicate.
- Recover and record. For each confirmed duplicate, ask for a refund or a credit note against the next invoice, and note which control failed, so the fix goes where the leak is.
A credit note is the easy route with a vendor you buy from every month. With a one-off supplier, or one that has since closed, recovery becomes a negotiation, which is the strongest argument for catching duplicates before they are paid.
Signs duplicates can get through
You probably need to look at your process if any of these sound familiar:
- Invoices arrive by email, paper and WhatsApp, and nobody records which copy was processed.
- Your duplicate check only compares vendor code and invoice number.
- The same company exists more than once in your vendor master.
- Urgent payments are made from internet banking and recorded in the system afterwards, if at all.
- A duplicate warning can be dismissed without a reason.
- Vendor statements are never reconciled, and some vendors show a debit balance in AP.
A duplicate check that only catches identical invoices is checking for the one mistake nobody makes.
How to prevent duplicate payments
- Give invoices one way in. One AP mailbox or portal, with paper and photos scanned into the same queue. Ask vendors to send each invoice once, to one address.
- Normalise before you compare. Check invoice numbers with punctuation, prefixes and leading zeros removed, and flag the same amount and date from the same NPWP or bank account even when the numbers differ.
- Clean the vendor master, and keep it clean. Merge duplicate records, and hold any new vendor whose NPWP or bank account already exists until someone has checked it.
- Pay only through the payment run. If an urgent transfer is unavoidable, record it against the invoice before the money leaves, so the run can’t pay it again.
- Make dismissing a warning cost a sentence. Require a written reason for every override, and review the overrides each month.
- Reconcile vendor statements. Quarterly for your largest vendors, with every debit balance investigated.
- Check expense claims against AP. Anything booked centrally, such as hotels and flights, shouldn’t also appear in a reimbursement.
How Procapy helps
Proca to Pay checks every invoice for duplicates when it arrives, not when someone remembers to look. Each incoming invoice and expense claim is matched on vendor, amount, invoice number and date against everything already in Procapy, across entities and across expenses and AP. Near-duplicates are caught too, such as the same amount with a reformatted invoice number, or the same receipt submitted by two people, and the approver sees the match with the original alongside. A flag can be overridden, but only with a written reason, which is stored on the transaction with the name of the person who made it.
Invoices can be forwarded, uploaded or submitted by vendors, as PDFs, photos, e-invoices or scanned paper, and ProcAI reads every field in seconds. New vendors need a tax registration and bank account evidence before they can be invoiced against, and Procapy checks for near-identical vendor names and bank accounts already in the master. Cleared invoices go into payment runs that block anything paid before and check each bank account against the verified vendor master, then post to Dynamics, SAP, Xero, QuickBooks or ABSS.
Most teams are live in under two weeks. Book a walkthrough, bring a month of vendor invoices and expense claims, and we’ll run them through the duplicate checks live. The fraud and risk page shows the other checks that run alongside them.
