Workflow Automation · Read + Write

Invoice 3-way match

Automate Rep · High Reason · Medium

The problem

Accounts payable triple-checks each invoice against the PO and goods-receipt — by hand. Long lead times, late payments, missed early-pay discounts.

The AI approach

Extract fields from invoice + PO + GR with IDP. Match line-by-line under tolerance rules. Auto-pay matches; route exceptions to AP.

The outcome

~85% touchless

Match cycle from days → minutes. Exceptions are the only cases AP touches. Early-pay discounts captured.

Try itInput → Process → Output

Input — PO + GR + invoice
Purchase OrderPO-8821
vendorTipa V Co.
item · pipe-4"120 × 35฿ = 4,200
Goods ReceiptGR-3441
received120 units
conditionOK
InvoiceINV-7710
vendorTipa V Co.
billed120 × 35฿ = 4,200
Process — AI pipeline
1Extract fields from each docReadGenerative
2Normalise to common schemaRulesSymbolic
3Apply 3-way match rules (qty / price / total)RulesSymbolic
4Route: auto-pay or AP exceptionWriteSymbolic
Output — match decision
Click Run demo to extract from all 3 docs and apply the matching rules.
Match decision PASS · auto-pay
RulePOGRInvoiceResult
Vendor on approved listTipa VTipa VTipa V✓
Qty (GR ≤ PO)120120120✓
Price (invoice = PO)35฿—35฿✓
Total within ±2%4,2004,2004,200✓
Auto-routed to AP system: Approve & schedule payment T+30. Early-pay discount captured: ₿84.

Three AI types in this use case

SymbolicThe matching rules: qty(GR) ≤ qty(PO); price(invoice) = price(PO); total(invoice) within ±2% of GR×price; vendor must be on approved list.
PredictiveOCR text detection on each doc (scanned or PDF); document-type classifier.
GenerativeVision-LLM extracts free-form fields (vendor name variations, multi-line addresses) into the schema.

The stack

  • OCR · Textract / DocAI
  • Vision-LLM · for free-form fields
  • Schema · Pydantic
  • Rules engine · Drools / custom · ERP API

When this works

  • Vendors send structured invoices (not handwritten or photo-of-receipt)
  • Master data is clean (vendor, item, GL accounts)
  • Tolerance bands are codified, not in someone's head

When it fails

  • Partial deliveries split across multiple GRs — many-to-many matching
  • Currency / VAT edge cases — rules engine misses local quirks
  • Auto-pay turned on for high-value invoices — fraud risk
  • Vendor changes packing UOM mid-contract — quantities mismatch