Three-Way Match Explained (and When Two-Way Is Enough)

Quick answer: A three-way match checks a supplier invoice against two internal documents before it is paid: the purchase order (what you agreed to buy) and the goods receipt (what actually arrived). Quantities, prices and terms should agree within an agreed tolerance. Two-way matching compares only the invoice and the PO or contract, and is often enough for services, subscriptions and recurring contracts where there is no physical delivery to receive.
Invoice matching is one of the oldest controls in accounts payable, and still one of the most useful. It catches the supplier who bills for 100 units when 80 arrived, the price that crept up between quote and invoice, and the invoice for an order nobody placed. It also generates exceptions, and a matching rule that is too strict for the type of spend creates more work than it saves.
This article explains two-way, three-way and four-way matching, walks through an example, covers how to set tolerances, and looks at when a simpler match is the better choice, including spend that never had a purchase order.
Two-way, three-way and four-way matching
The difference between the methods is how many documents the invoice is checked against.
Method | Documents compared | What it confirms | Typical use |
|---|---|---|---|
Two-way match | Invoice and purchase order (or contract) | You are billed what you agreed to, at the agreed price | Services, subscriptions, utilities, recurring contracts |
Three-way match | Invoice, purchase order and goods receipt | You are billed what you agreed to, and only for what arrived | Physical goods: materials, parts, MRO, equipment |
Four-way match | Invoice, purchase order, goods receipt and inspection or acceptance record | The goods arrived and passed inspection | Categories where defects are costly or regulated |
In a three-way match the details on all three documents, such as quantities, unit prices and payment terms, should agree before the invoice is recorded as a payable. The goods receipt is what makes it stronger than a two-way match: without it you know the price is right but not whether you received what you are paying for.
A worked example
A mid-sized distributor orders three items on one purchase order. The warehouse books a goods receipt when the delivery arrives, and the supplier's invoice follows a week later. The figures are illustrative.
Line | PO: qty × price | Goods receipt: qty | Invoice: qty × price | Result |
|---|---|---|---|---|
Pallet wrap, roll | 200 × €4.10 | 200 | 200 × €4.10 | Match |
Safety gloves, pair | 500 × €2.40 | 400 (100 on back-order) | 500 × €2.40 | Quantity exception: billed for 100 pairs not received |
Label printer ribbons | 50 × €18.00 | 50 | 50 × €19.25 | Price exception: €1.25 per unit above PO |
A two-way match would pass the gloves, because the invoiced quantity agrees with the order. Only the goods receipt shows that 100 pairs have not arrived yet. The ribbon price would be caught by either method, as long as the PO price is reliable.
What happens next depends on the exception. For the gloves, you would normally pay for the 400 received, or hold the line until the back-order arrives and is receipted. For the ribbons, you check whether the price increase was agreed. If it was not, you ask for a credit note or a corrected invoice.
Setting tolerances
Very few companies require an exact match on every line. Freight rounding, currency conversion and small price changes mean that a zero-tolerance rule floods the team with exceptions that are not worth chasing. Most organisations set thresholds, for example a percentage or a fixed amount per line or per invoice, and accept variances inside them automatically. Anything outside goes to review.
Points to consider when setting tolerances:
Set both a percentage and an absolute cap. A 2% tolerance is trivial on a €200 invoice and significant on a €200,000 one. Combining a percentage with a maximum amount covers both ends.
Vary by category. Commodity materials with moving prices may need a wider price tolerance than a fixed-price service. Quantity tolerances often matter more for bulk goods than for discrete items.
Treat under- and over-billing differently. Many companies accept small under-billing without review but look at every over-billing above a small amount.
Review exception volumes. If one supplier or category produces most of the exceptions, the cause is usually a wrong PO price or a contract that was not updated, not the tolerance.
Tolerances that are too loose weaken the control. Tolerances that are too tight bury the team in trivial exceptions. Start conservatively and adjust once you can see where the exceptions come from.
When two-way matching is enough
Three-way matching assumes there is a delivery someone can receive. For a lot of spend there is not. A monthly cleaning contract, a software subscription, an insurance premium or a lease has no pallet to count at the dock. Forcing a goods receipt for these usually means someone clicks "received" without checking anything, which adds a step but no control.
Two-way matching, invoice against PO or contract, is often the right level for:
Recurring contracts with a fixed fee per period, where the question is whether the amount and frequency match the contract.
Subscriptions and licences, where the check is on price per seat and number of seats.
Utilities and telecoms, where the invoice is checked against the agreed tariff.
Low-value, low-risk purchases, where the cost of booking a receipt is higher than the risk.
For services where delivery genuinely varies, such as consultancy days or contractor hours, a service entry sheet or approved timesheet can play the role of the goods receipt. That is effectively a three-way match for services, and it is worth doing where hours or days drive the cost.
Contract-to-invoice matching for spend without POs
Much indirect spend in mid-sized companies never has a purchase order. Facilities services, IT support, waste collection, temporary staff and many professional services are bought under a framework contract and invoiced monthly. A PO-based match has nothing to compare against, so these invoices often go through with only a budget holder's approval.
Matching against the contract closes that gap. If the contract records the unit prices, the billing frequency and the agreed tolerance, each invoice can be checked against those terms in the same way an invoice is checked against a PO. Typical findings are:
unit prices above the contracted rate, often after an indexation that was applied twice or applied early;
billing more often than the contract allows, such as two invoices for the same month;
charges for services that are not in the contract at all;
spend continuing after a contract has ended.
This is where much of the leakage in indirect spend sits. See direct vs indirect procurement for more on where the money goes.
Choosing the right match per category
Spend type | Suggested match | Reference document |
|---|---|---|
Raw materials, parts, MRO | Three-way | PO and goods receipt |
Equipment and capital items | Three-way, or four-way if acceptance testing applies | PO, goods receipt, acceptance record |
Contractors and consultancy by the hour or day | Three-way for services | PO or contract and approved timesheet |
Fixed-fee services, subscriptions, leases | Two-way | Contract or PO |
Framework contracts without POs | Contract-to-invoice | Contract lines: unit price, frequency, tolerance |
Small one-off purchases | Two-way or approval only | Approved request |
How ProcuHelp handles invoice matching
ProcuHelp keeps contracts, vendors, purchase requests, purchase orders and spend in one system, and connects read-only to your ERP. For matching:
The purchase order, its line-level goods receipts (including partial deliveries and back-orders) and the related invoices sit on one record.
Invoices that quote the PO number are linked to the order, the invoice amount is checked against the order, and any variance goes to a review queue.
Contract lines with unit prices, frequencies and tolerances can be matched against invoices, which covers recurring spend without a PO.
ProcuHelp flags; it does not hold or block payments. Your team decides.
See spend and contracts for detail, or book a demo to see it with your own invoices.
Frequently asked questions
What is a three-way match?
A three-way match compares a supplier invoice with the purchase order and the goods receipt. The invoice is approved for payment when quantities, prices and terms agree across all three, within the tolerance you have set.
What is the difference between 2-way and 3-way invoice matching?
Two-way matching checks the invoice against the purchase order or contract. Three-way matching adds the goods receipt, so it also confirms that what is billed was actually delivered.
What is a four-way match?
A four-way match adds an inspection or acceptance record to the three-way match. It confirms that goods arrived and passed inspection before payment, and is used where defects are costly.
What tolerance should I use for invoice matching?
There is no single right number. Combine a percentage with an absolute cap, vary it by category, and review exception volumes after a few months. A tolerance that is too tight creates trivial exceptions; one that is too loose weakens the control.
Do services need a three-way match?
Fixed-fee services usually only need a two-way match against the contract. Where the cost depends on hours or days delivered, an approved timesheet or service entry sheet can act as the receipt.
How do you match invoices that have no purchase order?
Match them against the contract. If the contract records unit prices, billing frequency and tolerances, each invoice can be checked against those terms in the same way it would be checked against a PO.


