Three-way match is the oldest control in accounts payable. The buyer authorized $50,000 of widgets via the PO. The warehouse received 1,000 widgets and recorded a goods receipt for $50,000. The vendor sent an invoice for $50,000 covering 1,000 widgets. The three documents agree, the invoice posts, the payment runs. When they agree this cleanly, the control is invisible. When they don't, the AP team manually reconciles each variance, the close stalls, and the GR/IR account starts collecting items nobody wants to investigate.
Three-way match is the validation step that sits right after invoice OCR capture in the AP intake workflow, and one of the controls that most separates a clean close from a slow one (more in AP automation best practices for mid-market).
The three documents (and the four-way variant)
PO + receipt + invoice is the standard; add inspection for four-way match
Two-way match (PO + invoice) is common for services and indirect spend where there is no physical delivery. Three-way match is the standard for goods purchases. Four-way match adds inspection or quality certification and is used where regulation requires it before payment is released.
Tolerance handling: what counts as a match
Tolerances can be set per vendor, per commodity, or per cost center. Strategic vendors with long histories often get tighter price tolerances; spot-buy vendors get looser ones. The tolerance memo lives somewhere, and the auditor will ask to see it during walkthroughs.
GR/IR: the timing-difference account that catches everything
- Day 1 · receipt
- Dr Inventory · Cr GR/IR
- Day 10 · invoice
- Dr GR/IR · Cr AP
- Day 1 · invoice
- Dr GR/IR · Cr AP
- Day 10 · goods
- Dr Inventory · Cr GR/IR
A clean GR/IR has every line traceable to a PO and a receipt. A dirty GR/IR has aged items nobody owns: receipts where the invoice was never matched, invoices where the goods were returned, transposition errors from prior periods. The aged GR/IR is one of the first things an internal auditor asks about.
Where three-way match stalls
Four exception patterns that account for most match failures at scale
Manual three-way match vs Cadel
- AP analyst looks up the PO number in procurement
- Pulls the goods receipt from the warehouse system (a different login)
- Compares vendor, quantity, and price across three documents by eye
- Emails the buyer or warehouse on any mismatch, then waits and reminds
- 5 to 15 minutes per clean invoice; hours on exceptions
- PO and receipt pulled automatically at invoice intake
- Multi-field match: vendor entity, item, quantity, price, tax
- Within-tolerance matches auto-approve and route to payment
- Breaches route to the right owner with the failing field shown
- Seconds on clean matches; minutes on exceptions, with full context
What good looks like
A clean three-way match workflow runs continuously, not at month-end. Matches happen at invoice intake while the data is fresh. Tolerances are set per vendor or commodity and reviewed quarterly. Exceptions route to the right owner with the failing field highlighted, not to a generic queue. GR/IR is reconciled monthly, with no item older than 60 days lacking an owner and an action plan. The auditor's walkthrough on three-way match takes 15 minutes because every match is documented and every exception is closed.
At Cadel, three-way match runs at invoice intake against live procurement and warehouse data. The matching engine handles standard fields plus vendor-entity reconciliation, tax classification, and freight/duty handling. Exceptions route to named owners with the variance displayed at the field level, GR/IR posting and reversal are automatic, and the aged-exception queue is visible to the controller in real time, not at the close.
See how Cadel runs AP automation end to end, three-way match included, or get in touch to run a mix of clean matches and known exceptions against live PO and receipt data.