Three-way invoice check

Vendor invoices get matched and checked on their own. The ones that don't add up come to you.

It's the three-way match your AP person does by hand today: the invoice against the PO against what was actually received. A small tool that watches your vendor invoice inbox, reads every invoice, finds the PO and the receiver in your ERP, and checks each line before anyone keys it. Nobody sorts receivers or staples paperwork together. Every weekday morning, one email tells your AP person what's ready to enter, what needs a closer look, and why.

InboxReadMatchedCheckedReady

9:40 AM. A vendor invoice lands in your invoice inbox.

From
Accounts Receivable <[email protected]>
To
[email protected]
Subject
Invoice 58213, your PO 24-1187

Please see the attached invoice. Thank you for your business.

Carverton Steel

PDFInvoice_58213.pdf · 94 KB

Until now, somebody printed it, circled the PO number, dug out the receiver and stapled the two together before checking a single price.

What happens next

Nobody hunts for the paperwork. Here's every step, and what it sends you.

Each step is marked with what does the work. The AI reads the invoice. Plain software finds, checks and reports.

01
AI

It reads the invoice

It reads the PDF the way a person would, scanned paper invoices included: the vendor, the invoice number and date, the PO number, and every line with its quantity, unit price and amount, plus freight, tax and the total. When one invoice covers two POs, each PO gets checked on its own.

If it can't read an invoice cleanly, or there's no PO number on it, it says exactly that and hands it to a person. Nothing gets dropped quietly.

Read
Invoice_58213.pdf
Vendor
Carverton Steel · PO 24-1187
LnDescriptionQtyUnitAmount
11018 cold-rolled flat, 1/2 x 4 x 14412$38.50$462.00
2A36 hot-rolled plate, 3/8 x 48 x 964$412.75$1,651.00
36061-T6 round bar, 2.0 x 1446$186.20$1,117.20
Invoice dateOct 1 FreightNone Total$3,230.20
02
Plain software

It finds the PO and the receiver

It looks the PO up in your ERP, with its lines and its receivers. The rule your AP person already follows is built in: no invoice gets entered before the material has arrived. If nothing's been received yet, the invoice is held, and it's rechecked every half hour until the receiver posts.

If the PO isn't in your ERP at all, say because it was bought through your accounting system, the invoice is set aside and labeled, so nobody wonders where it went.

ERP
PO 24-1187 found · Carverton Steel
ReceiverRCV-40718
ReceivedOct 2
Lines received3 of 3
StatusReady to check
03
Plain software

It checks every line

Then plain software checks what the AI read against the PO. Every price, to the cent. How many were billed against how many actually came in, not counting anything rejected and sent back. Whether the vendor's own math adds up, line by line and to the total. Whether the invoice bills more than the whole PO is worth. Whether another invoice is already open against the same PO.

It also pulls the GL account off the PO and proposes an entry date in the month the material was received. A small price difference gets a second look. A big one gets flagged to check with purchasing before anyone enters it. The AI never gets the last word. The checks do.

Checked
Invoice 58213 against PO 24-1187 and receiver RCV-40718
  • Material received before entry3 of 3 lines, received Oct 2
  • Every price matches the PO to the cent3 of 3 lines
  • Quantities billed match quantities received
  • Line math and invoice total add up$3,230.20
  • Not more than the PO is worthPO total $3,230.20
  • No other invoice open on this PO
  • GL account taken from the PO5100 Job Materials
  • Entry date in the month receivedDated Oct 1, received Oct 2
04
Plain software

Every weekday morning, the list

One email goes to whoever you name. Ready to enter: every invoice that passed every check, with its receiver number, GL account and total alongside. Needs intervention: anything that didn't, with the specific reason. Held: invoices still waiting on material. Nothing goes out on weekends.

It doesn't type invoices into your ERP. Your AP person still keys each one, from a list where the finding and checking are already done. If the tool itself ever stops checking the inbox, the subject line says so in plain words, so a quiet morning never passes for all clear.

From
Invoice check
Subject
Material invoice digest (2026-10-06): 3 ready, 1 needs review, 1 held

Needs intervention (1)

  • Lakeshore Metals, invoice 90417, PO 24-1203: price way off, invoiced $448.00 vs PO $412.75 each. Check with purchasing before entering.
Handle / set aside

Held, awaiting receipt (1)

  • Harlow Fasteners, invoice H-11902, PO 24-1210

Ready to enter (3)

  • Carverton Steel, invoice 58213, PO 24-1187 · receiver RCV-40718 · GL 5100 · $3,230.20
  • Delmar Tube, invoice 3391, PO 24-1192 · receiver RCV-40722 · GL 5100 · $874.50
  • Ostrander Heat Treat, invoice 20655, PO 24-1199 · receiver RCV-40725 · GL 5200 · $310.00

A ready invoice passed every check listed at the top of this email

05
Plain software

One click clears it

Every item in the morning email has a link. It opens a page with three buttons: mark it entered, set it aside, or park it while the vendor sends a corrected invoice. No login, nothing to install. Entered and set-aside items drop off the list. A parked one moves to its own section until the corrected invoice shows up.

When it does, the new one gets checked from scratch. If it looks like a repeat of an invoice already received, it says so: check the new one, set the old one aside, and don't key it twice.

06
Plain software

It notices when it's been entered

When your AP person keys an invoice into your ERP and it flows through to your accounting system as a bill, the next half-hour run finds it there. Same vendor, same invoice number, same amount: the invoice closes on its own. Nobody has to mark anything.

If the bill's amount doesn't match the invoice it checked, or the same invoice number shows up twice, nothing gets closed. The invoice goes back in front of a person with a plain note: one of the two is wrong, compare them before paying.

Accounting
Bill found for Carverton Steel, invoice 58213
Amount on the bill$3,230.20
Amount checked$3,230.20
FoundOct 6, 10:30 AM
StatusClosed as entered

Where the AI is, and where it isn't

AI reads the invoice. Plain software does everything else.

AI
  • Reading each invoice, whatever layout the vendor uses, scanned paper included
  • Picking out which PO each line belongs to when one invoice covers several
Plain software
  • Finding the PO and the receiver, and holding invoices until the material arrives
  • Every price, quantity and total check, the GL account and the entry date
  • The morning email, the one-click links, and closing invoices once they show up in your accounting system

AI is very good at reading a document it has never seen before. It isn't exact, so here it only reads. Every number it pulls off an invoice gets checked against your PO and your receiver before anyone is told the invoice is ready.

It had to earn it

Almost every tool I've built broke the first time it met real invoices. This one did too.

One morning it flagged two of the three invoices it checked. Both invoices were right. A steel supplier doesn't print your part numbers. It bills the material in its own words, like "cold-rolled flat, 1/2 x 5," while your PO carries your own part number. The tool was pairing lines on part number and nothing else, so on one steel invoice it flagged all 13 lines, and every one of them matched the PO to the cent.

13 flagged13 of 13 matched One steel invoice, 13 lines, before and after the fix

Plenty of vendors work that way. Steel suppliers bill the material, and platers and heat treaters bill the operation. So now, for vendors you've marked that way, lines get paired on exact quantity and exact unit price instead. A second review of that fix caught the hole it opened: when you pair lines on price, the price always agrees. So I added one check that no line-by-line logic can get past. An invoice can never bill more than the whole PO is worth.

That's what making one of these hold looks like. You find the invoices that break it, and you close each gap without opening a new one.

Built once, adapted to yours

This is the baseline. Yours fits your vendors.

Everything above is how the tool was built and tested. The parts that do the hard work stay the same. The parts that touch your systems, your vendors and your AP rules get fitted to how you already work.

What stays
  • Reading every invoice, scanned paper included
  • Finding the PO and the receiver, and holding anything not yet received
  • Checking every price, quantity and total
  • One morning list, and closing each invoice once it's entered
What gets adapted
  • Your ERP and your accounting system
  • Which vendors bill in their own words instead of your part numbers
  • How close a price has to be to pass
  • Your GL accounts, and who gets the list
Outside processing

Platers and heat treaters billing per lot, matched to the lot you sent out.

High-volume purchasing

Hundreds of small invoices a week, with the ones that need a look at the top.

Distributors

Vendor invoices matched against receipts across more than one warehouse.

How it gets set up

It runs next to your people before anyone relies on it.

  1. Connect it to your invoice inbox, your ERP and your accounting system.

    It only reads from them. Nothing gets replaced, and nothing gets written into your ERP.

  2. Set it up around your vendors.

    Which ones print your part numbers and which bill in their own words, how close a price has to be to pass, and who gets the morning email.

  3. Run it alongside your current process.

    Your AP person keeps working the way they do now and checks the morning list against their own, until you trust what it calls ready.

  4. Send every invoice to one inbox.

    Vendors email it there, and paper ones get scanned into the same place. From then on your AP person works the list instead of the pile, starting with the ones that need a look.

Quoted up front, no hourly billing. I host it and keep it running, and a care plan covers fixes and changes as your vendors change. The code is yours, and I'll transfer it to you at any time.

Linked Operations · AI implementation for manufacturers

If someone in your operation matches vendor invoices to POs by hand, let's talk.

Tell me how vendor invoices reach you today and what happens to them after that. I'll tell you straight whether a tool like this fits, whether something lighter would do, or whether it isn't worth it for you.

Email Jason →

Jason Markham

Nearly 25 years in manufacturing, including a decade running a machine shop. I build these tools myself.

I help manufacturers and distributors implement AI, automate workflows, and reduce errors with small, focused software builds that take over the back office work: the data, the paperwork, the busywork between the systems they already run.

[email protected]