Skip to main content

Why did we pay the same vendor invoice twice?

Almost always one of two things: the vendor exists as two separate records in your vendor master, so a duplicate-invoice-number check that only compares within one vendor ID never sees the second copy — or the invoice was entered twice by different people, because it arrived through two channels and each assumed they had the only copy.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Last reviewed Editorial policy

Part of the accounts payable and invoice processing guide.

SymptomThe same invoice number and amount posted and paid twice
Most common causeDuplicate vendor records — the same real-world vendor exists under two vendor IDs
Second most common causeDecentralized entry — the invoice was keyed independently by two people from two channels
Reported scale0.8–2% of total AP disbursements, per AFP/IOFM research cited by the Washington State Auditor's Office
Where to check firstSearch paid invoices by vendor name variants and amount, not just invoice number within one vendor ID

Why the obvious check misses it

Most AP systems block a duplicate invoice number automatically — but only within a single vendor record. The Washington State Auditor's Office, in its guidance to agencies on this exact problem, notes that most software controls detect a duplicate invoice number only within the same vendor number. If the same real-world vendor exists twice in the vendor master — once from years ago, once created after a name change, a merger, or simply a second person adding them without checking first — the duplicate check never compares across those two records, and the same invoice number can post cleanly under each one.

The second common path: the same invoice, entered twice

The other common route is decentralized entry: the same invoice arrives through more than one channel — emailed directly to AP and also submitted through a supplier portal, or sent to both a requester and a shared AP inbox — and gets keyed in independently by two people, each unaware the other already entered it. A resent invoice under a slightly different reference number (because a vendor resent it after a billing question) causes the same failure mode for a different reason: the numbers don't match, so even a working duplicate-number check has nothing to catch.

How to check which one happened

Search your paid-invoice history by vendor name and amount rather than by invoice number and vendor ID. If both payments show up under the same vendor name but two different vendor IDs, it's a vendor-master duplicate. If they show up under the same vendor ID with two slightly different invoice numbers for the same amount and a close date range, it's a re-entered or resent invoice, not a vendor-record problem.

Fixing the instance vs. fixing the cause

Recovering the duplicate payment — requesting a refund or applying it as a credit against the vendor's next invoice — only fixes the one instance. If the underlying cause is a duplicate vendor record, merging or deactivating one of the two records is what stops it from happening again on every future invoice from that vendor; if the cause is decentralized entry, the fix is narrowing who's allowed to key invoices and routing every inbound channel through one point rather than several.

Next step

Map the finance workflow with the most exposure and prove the automation path.

Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.

Book a workflow review

Worked example

One vendor, two vendor IDs, one invoice paid twice

Acme Supplies has been a vendor since 2019, entered as vendor ID V-1042. In 2023, after Acme updated its legal name, a different AP staffer — unaware the older record existed — created a new vendor ID, V-2210, for the same company. In March, invoice #INV-4471 for $8,750 is entered and paid under V-1042. In April, Acme's own accounting software resends the same invoice as part of a routine statement, and it's entered and paid a second time under V-2210 — the duplicate-invoice-number check runs within V-2210 only, and INV-4471 has never been seen under that vendor ID before, so nothing flags it. The fix: recover the $8,750 as a credit against Acme's next invoice, then merge V-1042 and V-2210 into a single vendor record so the same gap can't reopen on Acme's next invoice.

Frequently Asked Questions

AFP and IOFM research, cited by the Washington State Auditor's Office, puts duplicate payments at roughly 0.8 to 2 percent of total AP disbursements — a small percentage that still represents real dollars at any meaningful payment volume.

Not directly — three-way matching checks one invoice against its PO and receipt, not against every other invoice already paid. Catching duplicates needs a separate check across the full paid-invoice history, by vendor name and amount rather than invoice number alone.

Yes, once confirmed as the same real-world vendor — but confirm first. Two similarly named vendors can be genuinely different legal entities, and merging those would misattribute payment history.

Sources

Related

Diagnostic

How do I reconcile a phantom AP liability from a broken Bill.com sync?

Compare open bills in your AP aging against actual disbursements on the bank statement. A phantom liability shows up as a bill still open in AP with a matching payment already visible on the bank side, which means the payment posted in Bill.com but its corresponding payment record never synced back to the accounting system, leaving the original bill looking unpaid.

Read more

Topic

AP & Invoice Processing

Accounts payable and invoice processing is the set of steps a vendor bill goes through between arriving at a company and turning into a payment: capturing what the vendor sent, checking it against wha…

Read more

Diagnostic

What causes a three-way match failure between the PO, receipt, and invoice?

A three-way match compares the PO, the receipt (what was actually delivered), and the invoice on quantity, price, and charges. A failure means one of those three disagrees beyond tolerance — usually because the invoice bills a quantity that isn't fully receipted yet, the unit price differs from the PO, or the invoice adds a charge, like freight, the PO never included.

Read more

How-to

How do I look up or update an AP bill in Xero?

Use getInvoice, updateInvoice, or listInvoices with the bill's InvoiceID — Xero has no separate Bill resource. A bill is an Invoice with Type=ACCPAY, and Loopfour's Xero integration exposes full get/update/list for Invoices generically. createBill is a convenience wrapper for creation only; reading and updating a bill happens through the Invoice actions, not a Bill-named one.

Read more