You're doing the monthly supplier reconciliation and a payment run from six weeks ago catches your eye. Same vendor, same amount, sitting two lines apart i

03/08/2026

Rule of the week: Exact Invoice Match

The moment you realise it happened

You're doing the monthly supplier reconciliation and a payment run from six weeks ago catches your eye. Same vendor, same amount, sitting two lines apart in the bank feed. You almost scroll past it — it's the kind of thing that looks like a mistake in your reading, not a mistake in the ledger. Then you check the invoice number on both transactions. Identical.

It happens because accounts payable in most small businesses runs on trust and momentum, not verification. An invoice comes in by email, gets approved, gets paid. A week later the same PDF turns up again — forwarded by a different staff member, re-sent by the vendor's own automated reminder system, or re-entered by whoever does data entry because the first bill "didn't look processed" in their view of the system. Nobody checks whether it was already paid, because checking means searching, and searching takes longer than just paying it and moving on.

A worked example

Invoice INV-4471 from Bluegum Office Supplies Pty Ltd, amount $2,340.00, due 14 March.

Same invoice number. Same vendor. Same amount. Two different transaction IDs, sixteen days apart. Nobody flagged it because the batch payment and the ad-hoc payment went through completely different approval paths — one through the payment run, one through a manual bank transfer someone did from their inbox.

Finding this manually

You don't need software to catch this, but you do need a method, because eyeballing the bank feed will not find it.

  1. Export all accounts payable transactions for the period you're checking — vendor name, invoice number, amount, transaction ID, and date. Xero: Business → Bills to pay → All with the date filter widened, or Accounting → Reports → Purchases and Payments. QBO: Expenses → Vendors, exported as CSV.
  2. Sort by vendor, then by invoice number. This is the step people skip. Sorting by date hides duplicates because the two payments are rarely adjacent in time.
  3. Look for repeated invoice numbers under the same vendor. If the amount also matches, and the transaction IDs differ, you have a candidate.
  4. Check partial payments and credit notes before flagging it. Two entries with the same invoice number and different amounts might be a legitimate part-payment, not a duplicate — this is where false positives creep in if you rush.

Honestly done, this takes a working knowledge of pivot tables or at minimum confident spreadsheet sorting, and for a business with a few hundred bills a month, an hour or two per reconciliation cycle. It's not hard work, it's just tedious enough that it gets skipped when the month is busy — which is exactly when duplicates get through.

FAQ

How do I check if an invoice was paid twice? Pull every payment for that vendor, sort by invoice number, and compare amount and transaction ID side by side. If the invoice number and amount match but the transaction ID differs, it was paid twice — confirm by checking both entries against the bank statement.

What do I do once I find a duplicate payment? Contact the vendor and request a refund or credit note before offsetting anything internally. Do not simply delete one of the two ledger entries — you need the paper trail for the refund and for your own audit record.

How the rule does this continuously

DUP-001 misses duplicates where the invoice number was retyped with a typo, or where the amount differs even slightly (a rounding adjustment, a partial credit) — and it can false-positive on vendors who legitimately reuse the same invoice number for recurring fixed-fee billing. What it catches reliably is the exact case above: same invoice number, same vendor, same amount, different transaction ID, flagged automatically as it's booked rather than found six weeks later during reconciliation.

Finanomaly is currently waitlisted.