Educational
How AI validates invoices against purchase orders
An invoice can add up on its own and still be the wrong amount to pay. Validation compares it with the purchase order field by field.
Saarvak · 11 November 2026 · 6 min read
Saarvak builds DocIntel AI, software that reads Indian business documents, including Hindi and Marathi pages in Devanagari, extracts fields, checks them against rules, and routes exceptions to a reviewer.
Paying an invoice means deciding whether it matches the purchase order. The check is not another reading of the page. It is a comparison of named fields, after each document has been read and understood.
The layers are set out in OCR versus document understanding versus cross-document validation. This note stays on the accounts case: one order, one invoice.
What gets compared
A useful match looks at quantity, unit price, line amount, and header total, plus the purchase-order number the invoice cites. In the synthetic packet used on the pillar article, purchase order PO-2024-0187 orders 100 at ₹500, total ₹50,000. Invoice INV-1048 bills 120 at ₹500, total ₹60,000.
- Quantity 100 against 120 is a mismatch.
- Unit price ₹500 against ₹500 is a match.
- Total ₹50,000 against ₹60,000 is a mismatch.
The invoice still adds up on its own: 120 × ₹500 = ₹60,000. That within-document check does not authorise payment.
Two-way match and three-way match
A two-way match compares the invoice with the purchase order. A three-way match adds the goods receipt: ordered, received, and billed. The extra document answers a different question. An invoice can match the order and still bill for goods that were not received. The rule is the same shape either way. Named quantities have to agree, within a tolerance the business writes down.
Other rules sit beside the price check. The purchase-order number on the invoice has to exist. Tax and freight, if they are in scope, need their own lines. A second invoice against the same order can match on price and still duplicate the quantity. Header-only rules miss a line that disagrees.
What the reviewer receives
A pass can move on. A fail should name the fields: quantity ordered 100, quantity billed 120. The reviewer opens those pages and decides whether the difference is a billing error, an amended order, or a tolerance the process allows. The decision stays with the person. The system’s job is to make the disagreement specific.
See procurement and finance, what happens after extraction, and the worked example.
Bring a packet, not a single scan
A purchase order, a goods receipt, and the invoice that should match them. We will show what each layer returns.