What is Three-Way Matching?
Three-way matching is the accounts payable control that compares three independent documents before a supplier invoice is approved for payment: the Purchase Order (what was authorised, at what price and quantity), the Goods Receipt Note (GRN) (what was actually received, verified physically at the receiving location), and the supplier Invoice (what the vendor is billing for). Payment only proceeds once all three agree, within whatever tolerance the company's policy allows.
It is the single most effective control against the two most common AP fraud and error patterns: being billed for a quantity that was never received, and being billed at a price that differs from what was actually authorised on the PO.
Why three documents, not two
Two-way matching — PO against invoice only — leaves a real hole: nothing independently confirms the goods showed up. A vendor could raise an invoice for the full PO quantity while only partially delivering, and two-way matching would clear it for payment. The GRN is the independent, physically-verified third input that closes this gap — it has to be created by someone at the receiving location who actually counted or inspected what arrived, separate from whoever raised the PO and separate from the vendor issuing the invoice.
The matching workflow
- PO raised — item, quantity, unit price, delivery terms, agreed after a requisition is approved, often following an RFQ
- Goods received — GRN created at the receiving location, recording actual quantity and condition against the PO
- Invoice received from the vendor, referencing the PO number
- System matches all three: PO price/qty vs GRN qty vs invoice price/qty
- Within tolerance → invoice auto-approved for payment. Outside tolerance → held, routed for resolution
Common mismatch types and how they route
- Price variance — invoice price differs from the PO price → routes to procurement, since only they can confirm whether a legitimate price revision was agreed
- Quantity variance — invoiced quantity exceeds received quantity → routes to the receiving location to confirm the GRN, or held pending short-delivery resolution with the vendor
- Duplicate invoice — same PO, same amount, invoice number already booked → blocked outright, the highest-value catch three-way matching makes
- No matching PO — invoice references a PO number that doesn't exist or is already closed → held for investigation before any payment consideration
Setting tolerance without creating a bottleneck
Zero-tolerance matching sounds like the safest policy but in practice creates a flood of manual holds for freight rounding, minor unit-of-measure conversions, and currency rounding — enough noise that genuine mismatches get lost in it. Most finance teams set a small percentage or absolute-value tolerance, documented alongside approval limits in the DOA matrix, and reserve manual review for variances that actually exceed it.
How TRAXX implements Three-Way Matching
- PO, GRN and invoice linked automatically through the same procurement record — no manual document hunting to perform a match
- Configurable tolerance thresholds per category, with auto-approval inside tolerance and routed holds outside it
- Duplicate invoice detection against PO number and amount before payment queueing
- Every held invoice carries a visible reason (price, quantity, duplicate, missing PO) so resolution starts immediately instead of with re-investigation
FAQs
What are the three documents in three-way matching? +
What is two-way matching, and why is three-way stronger? +
What tolerance is normal for price or quantity variance? +
What happens when a match fails? +
Does three-way matching apply to services as well as goods? +
Related terms
Last updated: 2026-04-29