How to check vendor invoices against contracts with AI
Most AP teams check that an invoice is approved, not that it's right. Checking every line against the contract takes more time than anyone has. That is the part AI can do.
What gets checked
| Check | Compares | Typical catch |
|---|---|---|
| Rate check | Invoiced unit price vs the rate card in force on the service date | Old or list price billed instead of the negotiated rate |
| 3-way match | Invoice vs PO vs goods receipt or service confirmation | Billed for 1,000 units, received 940 |
| Surcharges and fees | Fee lines vs fees the contract allows, and their caps | Fuel, admin or "handling" fees not in the agreement |
| Duplicates | Vendor, amount, date and reference across all open and paid invoices | Same invoice resubmitted with a suffix or via a second channel |
| Terms | Payment terms and early-payment discounts on the invoice vs the contract | Net 30 on the invoice where the contract says net 60 |
| Contract status | Invoice date vs contract start, end and renewal | Billing continuing after a service was cancelled |
Step 1: build the vendor terms register
Start with the vendors that make up most of your spend; for many companies that is 20 to 50 vendors. For each, have AI read the master agreement, rate cards, SOWs and amendments, and extract the rates, effective dates, allowed fees and caps, volume tiers, and payment terms. Every term should cite its document and clause. Procurement or the budget owner confirms the register once, and updates it when a contract changes.
Step 2: 3-way match with sensible tolerances
Most ERPs can do a basic 3-way match. What they handle poorly is the explanation. Set tolerances by category (for example, a small percentage or dollar amount on quantity, zero on price), and have the tool explain each break in a sentence: "Receipt shows 940 units on 12 October; invoice bills 1,000. Difference of 60 units at $14.20 is $852." For services without a receipt, use the approver's confirmation or a timesheet as the third leg.
Step 3: catch duplicates the ERP misses
Exact-match duplicate checks miss most real duplicates. The tool should also flag:
- The same invoice number with a suffix, prefix or different punctuation
- The same amount from the same vendor within a short window, with a different reference
- The same invoice arriving by email and through the vendor portal
- The same vendor set up twice in the vendor master
Step 4: draft the dispute
When an invoice fails a check, the tool drafts the dispute for AP to review. A good dispute is short and specific:
"Invoice 44817 dated 3 October bills line 2 at $14.20 per unit. Section 4.2 of our agreement dated 1 March sets $12.85 per unit through 28 February next year. Please reissue line 2 at the contracted rate. Lines 1 and 3 are approved and will be paid on terms."
Notice that it pays the undisputed lines. Holding a whole invoice over one line damages the vendor relationship and gains nothing.
The controls that make it safe
- Draft, never send, never pay. The tool can hold an invoice from the approval queue and draft a dispute. It cannot approve, release payment or contact the vendor. Approval limits and segregation of duties stay where they are.
- Every exception opens its source. The invoice line, the contract clause, the PO and the receipt, side by side.
- A reviewer pass checks the figures. A separate check recomputes the disputed amount before AP sees it. A wrong dispute costs credibility with the vendor.
- Track outcomes. Log disputed, credited and recovered amounts separately, per vendor. That tells you which vendors to renegotiate with and which checks are worth keeping.
Common mistakes
- Checking after payment. Post-payment audits recover a fraction of what pre-approval checks prevent. Put the check before approval.
- Trying to cover every vendor on day one. Start with the top vendors by spend and the ones with complex rate cards. Expand once the register process works.
- Letting the register go stale. If amendments don't reach the register, the tool will dispute correct invoices. Make updating it part of contract signing.
- Keeping checks that never fire. Review the exception log each quarter and retire any check that hasn't caught anything real.
FAQ
Can AI approve vendor invoices?
It shouldn't. Let AI check each invoice and hold exceptions with an explanation, and leave approval and payment with people who hold the authority under your approval matrix. That keeps segregation of duties intact and means every payment still has a named approver.
How is AI invoice checking different from ERP 3-way match?
ERP 3-way match compares invoice, PO and receipt quantities and prices against each other. AI adds the contract: it checks prices against the rate card in force on the service date, flags fees the agreement doesn't allow, finds near-duplicate invoices, and explains each exception in plain language with a drafted dispute.
Which vendors should we start with?
Start with the vendors that make up most of your spend and those with complex rate cards, tiered pricing or frequent surcharges. For many mid-market companies, 20 to 50 vendors cover most of the dollars and most of the billing errors.
Get new playbooks by email
Practical notes on AI in finance from a sitting CFO. Occasional, no selling.
Subscribe