What is a three-way match? A three-way match (also written as 3-way match) is the process of comparing a vendor invoice against the original purchase order and the goods receipt (or service confirmation) to verify that what was ordered, what was received, and what was billed all agree. It is the primary control that prevents overpayment, duplicate payment, and payment for goods never received.
Why three-way match matters
Without three-way match, an organisation pays whatever a vendor invoices. The purchase order confirms intent — someone authorised the spend. The goods receipt confirms delivery — someone verified the items arrived. The invoice is the vendor's claim. Three-way match validates that claim against both internal records before cash leaves the account.
The control exists because errors are common. Vendors invoice the wrong quantity, apply the wrong price, miss contract discounts, or bill for items that were returned. Without a systematic comparison, these errors become cash losses — and they compound across thousands of invoices per month.
The three documents
| Document | Source | What it confirms |
|---|---|---|
| Purchase order (PO) | Buyer's procurement system | Authorised items, quantities, agreed prices, delivery terms |
| Goods receipt (GR) | Warehouse / receiving dock / service manager | Items actually received, quantities accepted, condition |
| Vendor invoice | Supplier's billing system | Items billed, quantities claimed, prices charged, payment terms |
How three-way match works
The matching engine compares line items across all three documents. For each line, it checks:
- Item identity — Does the invoice line reference the same item as the PO line and the GR line? (SKU, description, or item code)
- Quantity — Does the invoiced quantity match the received quantity? Does it exceed the ordered quantity?
- Unit price — Does the invoiced price match the PO price? Are contract discounts applied?
- Extended amount — Does quantity × price on the invoice equal the expected total?
- Tax and charges — Are freight, tax, and surcharges consistent with the PO terms?
When all five checks pass within tolerance, the invoice is approved for payment. When any check fails, the invoice is flagged as an exception and routed for investigation.
Common exception types
| Exception | What happened | Typical resolution |
|---|---|---|
| Price variance | Invoice price differs from PO price | Check contract amendments, volume discounts, or vendor error |
| Quantity over-receipt | Invoice quantity exceeds GR quantity | Confirm partial delivery, check for unreceived shipments |
| Quantity under-receipt | GR quantity exceeds invoice quantity | Check for split invoicing or credit notes pending |
| No PO reference | Invoice cannot be matched to any purchase order | Route for retrospective PO creation or reject |
| No GR posted | PO exists but goods receipt not recorded | Confirm delivery with warehouse, post GR if received |
| Duplicate invoice | Same invoice number, amount, and date already processed | Block payment, confirm with vendor |
Tolerance rules
Not every variance requires human investigation. Tolerance rules define the threshold below which a variance is accepted automatically. Tolerances can be set as:
- Absolute amount — e.g., accept variances under $5 per line item
- Percentage — e.g., accept price variances under 2% of PO price
- Combined — e.g., accept if under $5 AND under 2%
Tolerances are typically configured per vendor tier, per GL account, or per commodity category. High-value or regulated categories (pharmaceuticals, controlled substances) may have zero tolerance. Low-value consumables may accept wider variances to reduce exception volume.
Two-way match vs. three-way match
Two-way match compares only the invoice against the PO — skipping the goods receipt. It is faster but weaker: it confirms that the vendor billed what was ordered, but not that the goods were actually received. Two-way match is appropriate for services, subscriptions, and low-risk recurring purchases where delivery confirmation is implicit.
Three-way match adds the goods receipt as the third control point. It is the standard for physical goods, high-value purchases, and any category where delivery risk exists. Most ERP systems default to three-way match for PO-backed invoices.
Four-way match
Some organisations add a fourth document — the inspection report or quality acceptance — creating a four-way match. This is common in manufacturing, pharmaceuticals, and defence procurement where goods must pass quality inspection before payment is authorised.
Non-PO invoices
Not all invoices have a purchase order. Utilities, rent, professional services on retainer, and ad-hoc purchases below the PO threshold arrive without a PO reference. These invoices cannot be three-way matched in the traditional sense. Instead, they are matched against:
- Contract terms or recurring payment schedules
- Budget allocations and spend limits
- Historical patterns (same vendor, same amount, same period)
- Approval chains based on GL account and amount
How AI agents handle three-way match
Traditional matching engines apply rules and flag exceptions. The investigation — tracing why a variance exists and proposing a resolution — is left to humans. AI agents extend the process by:
- Running the match (same as a rules engine)
- Investigating each exception — pulling related documents, checking contract amendments, reviewing vendor history
- Classifying the root cause (vendor error, receiving delay, contract change, duplicate)
- Proposing a resolution (adjust PO, post GR, request credit note, approve within tolerance)
- Attaching the full reasoning chain so a human reviewer can approve or override
The result is fewer exceptions reaching human queues, faster resolution of the exceptions that do, and a complete audit trail of every decision.
Related
- Invoice reconciliation service — three-way match run as a managed service
- Price variance — deep dive into the most common three-way match exception
- Duplicate invoice detection — how duplicates slip through and how to catch them