Start with the right boundary

The goal is a review queue, not an accounting conclusion. Official accounting-system controls illustrate why: Oracle NetSuite can warn when a vendor bill uses a matching reference number, while Microsoft Dynamics 365 documents a separate checksum check for duplicate invoice files and notes that this is different from duplicate invoice-number validation.

Rule: call every match a candidate until a responsible reviewer verifies invoices, payment records, credits, reversals, refunds, installments, split payments, and recurring purchases.

1. Export only the fields needed

Use one CSV containing paid bills or vendor payments. Keep the review narrow:

  • vendor or a stable vendor alias;
  • payment date;
  • amount and currency;
  • invoice or reference ID; and
  • a short transaction description.

Remove bank-account and card data, tax identifiers, addresses, contact details, customer or employee information, private notes, credentials, attachments, and native accounting backups. If the file cannot be safely sanitized, stop.

2. Normalize before comparing

Simple formatting differences can hide a match. Compare normalized vendor names and invoice references with punctuation, spacing, and capitalization removed. Keep currencies separate and parse amounts to a consistent two-decimal representation. Do not merge different vendors merely because an amount matches.

3. Find exact candidates first

Start with the most explainable combinations:

  1. same normalized vendor;
  2. same amount;
  3. same currency; and
  4. the same normalized invoice/reference ID, or the same payment date and description.

Store the original source-row numbers with every result. The reviewer should be able to reproduce why each pair was flagged without trusting a hidden score.

4. Separate possible candidates from exact ones

A second pass can look for the same vendor, amount, and currency within a short date window when invoice IDs or descriptions are similar but not identical. Keep these in a lower-confidence group. Broad similarity rules create false positives quickly, so the reasons and thresholds should remain visible.

5. Review the common false positives

Before anyone changes a payment or contacts a vendor, check whether the pair represents:

  • a credit, reversal, or refund;
  • a deposit followed by a final payment;
  • an installment or split payment;
  • a valid subscription or recurring purchase;
  • two different vendors sharing the same amount; or
  • a corrected invoice that reused a reference.

Government Accountability Office guidance on improper-payment controls has long distinguished exact duplicate edits from potential duplicates that require manual review. That distinction remains useful: automation can prioritize, while source records decide.

6. Record the review decision

For each candidate, record the source rows, matching reasons, reviewer, source documents checked, decision, and approval for any next step. Do not use the screening file itself as authority to reverse, withhold, reclaim, or dispute a payment.

When a fixed-scope screen makes sense

A bounded screen fits when one business can provide a sanitized export and wants a transparent first pass without installing software or granting account access. It does not fit a fraud investigation, contract interpretation, recovery engagement, legal or tax work, or a request for a formal accounting opinion.