12 minute practical guide

Three-Way Matching: PO, Invoice and Goods Receipt Controls

How three-way matching works, what each document proves, sensible tolerances, why international shipments need a fourth check, and how to resolve each type of variance.

Reviewed by GainingDocx

Free practical tool

Run the comparison automatically

Group the purchase order, invoice, goods receipt and transport documents as one shipment to compare them at header and line level, with variances prioritised by what actually blocks payment.

See document matching

What three-way matching actually controls

Three-way matching compares the purchase order, the supplier invoice and the goods receipt before payment is approved. It answers three questions: was this ordered, was it received, and is the price what we agreed. If any answer is no, payment should not proceed.

It is one of the oldest controls in accounts payable and it exists because each document is produced by a different party at a different moment. The purchase order comes from the buyer before anything happens. The invoice comes from the supplier asserting what is owed. The receipt comes from the buyer's own warehouse recording what arrived. No single one of them can be trusted alone, and the control is the comparison rather than any individual document.

What each document proves
DocumentProduced byProvesCannot prove
Purchase orderBuyer, before supplyWhat was authorised, at what price and termsThat anything was supplied
Supplier invoiceSupplier, after supplyWhat the supplier claims is owedThat the goods arrived
Goods receiptBuyer's warehouse, on deliveryWhat arrived and what was acceptedWhat was agreed to be paid

Two-way, three-way and four-way matching

Two-way matching compares the purchase order and the invoice only. It is appropriate for services and for goods where no physical receipt exists, and it is materially weaker — it cannot detect that goods were never delivered.

Three-way adds the goods receipt and is the standard control for physical goods. Four-way matching adds an inspection or quality record, used where acceptance depends on more than counting: pharmaceuticals, food, engineered components, anything with a specification to verify.

For international shipments there is an additional check that the classic model misses, and it matters more than the two-versus-three-way distinction: comparing against the transport document. A shipment can match perfectly across PO, invoice and receipt while the Bill of Lading shows a different package count, a different consignee or a weight that cannot be reconciled.

Resolving the common variances

What each variance means and how to treat it
VarianceMeaningUsual treatment
Invoiced quantity above receivedOver-billing or short deliveryPay against the receipt; raise the difference with the supplier
Received above orderedOver-deliveryConfirm authorisation before accepting or paying
Price above POPrice varianceHold against the contract or a documented price change
Price below POAlso a varianceInvestigate — it may indicate a wrong item or a missing line
Item invoiced not on the POUnauthorised supplyTreat as unauthorised until confirmed in writing
Accepted below receivedDamage or quality rejectionPay accepted quantity only; pursue the claim separately
Currency or terms differ from POThe commercial deal has changedEscalate rather than absorb
No goods receipt at allArrival unconfirmedIncomplete, not passed — do not approve
Duplicate invoice numberPossible duplicate paymentBlock and verify against payment history

Tolerances: deliberate, not accidental

Not every variance justifies investigation. Chasing a rounding difference costs more in staff time than it recovers, and a process that stops on every trivial difference gets bypassed. Most organisations therefore operate tolerances.

What matters is that the tolerance is a documented policy rather than a function of who happened to review the invoice. Set it explicitly — a percentage and an absolute cap, so that a small percentage of a large invoice does not slip through — and review it periodically against what the exceptions actually turn out to be.

  • Set a percentage tolerance and an absolute value cap, and apply whichever is lower
  • Apply tolerances at line level as well as invoice level, so offsetting errors do not cancel out
  • Set quantity tolerances separately from price tolerances — they have different causes
  • Never tolerate an item that is not on the purchase order, regardless of value
  • Never tolerate a missing goods receipt, regardless of value
  • Review the tolerance against outcomes: if most exceptions turn out to be genuine, it is too tight; if none do, it is too loose

Where matching quietly breaks

Most three-way matching failures are not fraud. They are process artefacts that produce variances nobody caused, which then consume the time that should have gone to the real ones.

  • Purchase order revisions — an invoice raised against revision 2 matched against revision 1 produces a variance that is nobody's error
  • Partial deliveries invoiced in full, or full deliveries invoiced in parts, without the relationship being explicit
  • Blanket orders drawn down over time without a release reference to match against
  • Supplier item codes that differ from buyer item codes, so lines cannot be paired automatically
  • Units of measure differing between documents — cases against units, or kilograms against pounds
  • Freight and handling charges on the invoice that the purchase order never provided for
  • Goods receipts recorded as a single quantity with no split between accepted and rejected
  • Receipts posted days late, so the invoice arrives first and appears unmatched

Extending the match to transport evidence

For imported goods, the transport document is the only record made by an independent third party — the carrier — of what was actually handed over. That makes it a genuinely different kind of evidence from the other three, all of which come from either the buyer or the seller.

  • Packages and gross weight on the Bill of Lading or air waybill against the packing list
  • Consignee on the transport document against the ship-to on the purchase order
  • Container and seal numbers against the packing list and the goods receipt
  • Shipment date against any contractual delivery window
  • Goods description against the invoice, since a difference here also attracts customs attention
  • Freight terms against the Incoterm agreed on the purchase order, which determines who should be paying for carriage

Put the guide into practice

Group the purchase order, invoice, goods receipt and transport documents as one shipment to compare them at header and line level, with variances prioritised by what actually blocks payment.

See document matching

Frequently asked questions

Direct answers to the questions this topic raises most often in day-to-day operations.

What is three-way matching?

Comparing the purchase order, the supplier invoice and the goods receipt before approving payment, to confirm that what is being charged was ordered, was received, and is priced as agreed. Any of the three failing should stop payment. It is the standard accounts payable control for physical goods.

What is the difference between two-way and three-way matching?

Two-way compares the purchase order and the invoice only. Three-way adds the goods receipt. Two-way is appropriate for services and for goods with no physical receipt, but it is materially weaker — it cannot detect that goods were never delivered, which is precisely what the receipt exists to prove.

What is four-way matching?

Three-way plus an inspection or quality record. It is used where acceptance depends on more than counting — pharmaceuticals, food, engineered components, anything with a specification to verify. The fourth document confirms that what arrived met the standard, not just that it arrived.

Can a three-way match pass without a goods receipt?

It should not. A match that approves because the receipt was never posted is not a control at all — it is a two-way match wearing the wrong name. Where a required evidence role is missing, the correct outcome is 'incomplete' rather than 'passed', with the missing document named.

What tolerance should I set?

A percentage and an absolute cap, applying whichever is lower, so a small percentage of a large invoice does not pass unexamined. Set quantity and price tolerances separately since they have different causes, and apply them at line level as well as invoice level so offsetting errors do not cancel. Review the setting against what your exceptions actually turn out to be.

What should I do if the invoice quantity exceeds the receipt?

Pay against the receipt, not the invoice, and raise the difference with the supplier. This is the classic over-billing case and the specific reason goods receipts exist in the process. Approving the invoiced quantity because the difference is small defeats the control entirely.

How do purchase order revisions break matching?

An invoice raised against revision 2 and matched against revision 1 produces a price or quantity variance that neither party caused. Capture the revision number and date and match against the version in force when the goods shipped — otherwise the exception queue fills with variances that resolve to nothing.

What if the supplier uses different item codes?

Match on several signals rather than a single key — item code, description, quantity and price together. Where the correspondence is genuinely ambiguous, report the lines unmatched for a human rather than pairing them on weak similarity, because a wrong pairing produces a confident but false match.

Should freight charges be part of the match?

They should be checked against the agreed Incoterm. Under EXW or FCA the buyer arranges carriage and a freight line on the supplier invoice is unexpected. Under CIF or DAP it is included in the price and should not appear separately. A freight charge inconsistent with the Incoterm is a real finding, not a rounding item.

Why add the transport document to the match?

Because it is the only record made by an independent third party. The purchase order and receipt come from the buyer, the invoice from the seller. The Bill of Lading or air waybill records what the carrier actually received, which is the check that catches a shipment matching perfectly on paper while the goods that moved were something else.

Can three-way matching be automated?

The comparison can, and should be — it is mechanical once the documents are structured. What cannot be automated is the resolution: deciding whether an over-delivery was authorised, whether a price change was agreed, or whether a rejection is the supplier's problem. Automation should produce a short, prioritised exception list, not an approval.

How do partial shipments affect matching?

They produce legitimate quantity variances that must be made explicit. Where an invoice covers a full order and the delivery covers a third of it, record the partial relationship against the match so the same variance is not re-investigated on every subsequent delivery against the same order.