Catch Supplier Billing Mistakes With AI
Most supplier overcharges survive because nobody compares the invoice to the quote. Five error types that recur, and a checking prompt for each one.
Most supplier billing errors are not caught because of how they are checked. The common method is to glance at the total and compare it to roughly what you paid last time. That catches a 40% jump and misses everything else, which is where the money is: a case priced as a unit, eleven items billed and nine delivered, a discount that quietly lapsed in July.
The fix is a three-way comparison: the quote you agreed, the delivery note you signed, and the invoice you received. AI is good at this, because it is a tedious cross-reference across three documents of different shapes, which is precisely the work people skip.
Why comparing to last month fails
Last month's invoice is not evidence of anything. If the error started three months ago, last month's invoice contains it, and every comparison you make confirms the wrong number. Errors that arrive gradually are invisible to a month-on-month check by construction.
The quote is the agreement. The delivery note is what arrived. The invoice is the claim. Any two of those disagreeing is a finding.
The five that actually recur
Error | What it looks like | What to check against |
|---|---|---|
Unit versus case pricing | Billed at the single-item price times the case quantity | Quote, unit of measure column |
Delivered versus ordered | Invoice quantity matches the order, not the delivery note | Delivery note |
Lapsed discount | Agreed percentage silently stops applying | Quote, and the date the terms were agreed |
Duplicate invoice | Same goods, new invoice number, often a month apart | Your own paid history |
Tax rate on the wrong line | Standard rate applied to a zero-rated or reduced-rate item | The line item itself |
The first two are the ones that go on for years. The last one tends to be genuinely accidental and is the easiest to get credited, because it is arithmetic rather than a disagreement about what was agreed.
The setup
You need three things in a form a model can read: the quote or price list, the delivery notes for the period, and the invoice. Photos of paper are fine if they are legible and flat. Scans are better.
Redact before uploading anything to a general AI tool. Your bank details, the supplier's bank details, and any account credentials on the document add nothing to the check and should not be in a chat transcript. Crop them out of the photo.
The prompt
Run it per invoice, not per month. One invoice at a time keeps the comparison tight and the output short enough to act on.
I am checking a supplier invoice against the agreed quote and the
delivery notes. I have attached all three.
For each line on the invoice, tell me:
1. The unit of measure on the invoice and the unit of measure on
the quote, and whether they match.
2. The unit price on the invoice and on the quote, and the
difference as a percentage.
3. The quantity on the invoice and the quantity on the delivery
note, and whether they match.
4. Whether the tax rate on that line is the same as the tax rate
on the same item in the quote.
Then list only the lines where something does not match, with the
amount at stake on each.
Rules:
- Do not calculate the overall total. I will do that myself.
- If a line on the invoice does not appear on the quote at all,
flag it separately as "not on quote".
- If you cannot read a figure, say so. Do not estimate it.Those three rules matter more than the four questions. The first keeps the model away from the arithmetic it is worst at. The second catches the line item nobody agreed to, which is a different problem from a wrong price. The third stops a blurry photo turning into a confident number.
Then do the arithmetic yourself
Take the flagged lines and add them up in a spreadsheet. Do not ask the model for the total value of the discrepancies, and do not quote a figure to your supplier that came out of a chat window. You will be wrong once, in writing, to someone who has your money, and you will not get a second hearing on the real errors.
The model's job is to find the lines. Yours is to price them.
Checking the lapsed discount
This one deserves its own pass, because it does not show up as a mismatch against a current price list. It shows up as a mismatch against what was agreed and when.
Pull the email or document where the discount was agreed and ask:
Here is the agreement where we set pricing with this supplier.
Here are the last six invoices from them.
For each invoice, tell me whether the agreed discount appears to
have been applied, based only on the figures shown. Give me the
first invoice where it stopped. Quote the exact line you are
relying on from each document.The "quote the exact line" instruction is what makes the answer checkable. An assertion you can trace back to a line on a document is evidence. One you cannot is a guess with good grammar.
What to do with a finding
Lead with the document, not the accusation. "Invoice 4471, line 6, is billed at 12.40 per unit. The quote dated 3 March shows 9.80 per unit for the same item code. Could you look at this one." Suppliers correct that quickly. They push back hard on "I think you have been overcharging us."
If the pattern turns out to be systematic rather than a slip, that is a pricing conversation rather than a billing one, and preparing for a supplier price increase and negotiating better supplier rates cover that side.
Make it a habit, not a project
Checking every invoice forever is not realistic. Checking every invoice from your three largest suppliers for one month is, and it will tell you whether you have a problem. If one month is clean across all three, move to spot checks. If it is not, you have found a recurring leak and the monthly check pays for itself.
The same documents-in, discrepancies-out shape works for the other side of the ledger too, in chasing late invoices. The general approach for picking which admin jobs are worth automating is in AI for small business.
FAQ
Is it safe to upload supplier invoices to an AI tool?
Crop out bank details and account numbers first. Check your provider's data retention setting, and prefer a business tier that does not train on your inputs. Commercial terms on an invoice are confidential to your supplier as well as to you.
Can AI read a photo of a paper delivery note?
Usually, if it is flat and in focus. Handwritten quantities are where it struggles most, which is also where the quantity errors live, so verify every handwritten figure it reports before acting on it.
Should I automate this end to end?
Not until you have run it manually for a month and know the error rate. An automated check that silently misses the case-pricing error is worse than no check, because it buys false confidence.
What if the supplier disagrees?
Go back to the documents. If the quote says one thing and the invoice says another, the question is which document governs, and that is a contract question rather than an arithmetic one.
How did this land?
About the author

Developer Advocate
Steve builds something with Swarmz every week and writes up what worked, what broke, and what he'd do differently. Tutorials and hands-on guides are his lane.


