Lesson 2 of 5
The three-way match
9 min
Accounts payable should only pay for what was ordered, at the agreed price, and actually received. SAP S/4HANA checks this automatically when the supplier invoice is posted. The check is called the three-way match, and it is the main control in procure-to-pay.
- Purchase orderWhat we agreed: 500 rotors at $42.00
- Goods receiptWhat arrived: 500 rotors posted on the 18th
- Supplier invoiceWhat Lakeside is asking for: 500 rotors at $42.00 = $21,000
- MatchQuantities and prices agree within tolerance: the invoice is posted free for payment
How invoice verification proposes values
In MIRO or the Create Supplier Invoice app, the accounts payable clerk enters the PO number. SAP proposes the quantity to invoice and the expected amount. If the PO item has GR-based invoice verification set, SAP proposes invoice lines per goods receipt and only allows invoicing up to the received quantity. Without it, the invoice is matched against the PO, and the received quantity is checked when tolerances are evaluated. Contoso sets GR-based invoice verification for stock materials so the match is always against what arrived.
Tolerances: how much difference is acceptable
Real invoices are rarely perfect. A few cents of rounding or a slightly different freight charge should not stop payment. Tolerance limits, configured per company code with tolerance keys, define how much variance is accepted. Each key can have lower and upper limits as an absolute amount and as a percentage.
| Tolerance key | What it checks | Contoso example |
|---|---|---|
| PP | Price variance: invoiced price vs. PO price | Invoice at $42.50 instead of $42.00 |
| DQ | Quantity variance: invoiced quantity vs. received (or ordered) quantity | Invoice for 500 when only 450 were received |
| DW | Invoice for an item where no goods receipt has been posted yet (with GR-based IV) | Lakeside bills before the rotors arrive |
| BD | Small differences: automatically posted as a small gain or loss | A $0.03 rounding difference |
Common invoice verification tolerance keys. Your configuration decides which are active and their limits.
If a variance exceeds its tolerance, the invoice can still be posted, but SAP sets a payment block on it (blocking reason for invoice verification). The payment run skips it until someone reviews and releases it. Release is done with MRBR or the Fiori apps for blocked supplier invoices. If the reason disappears (for example, the missing goods receipt is posted), the release can clear the block automatically.
- Does the invoice quantity exceed what was received?Yes → quantity block (unless within DQ tolerance) · No → next check
- Does the invoice price differ from the PO price beyond tolerance?Yes → price block · No → next check
- Is there a manual block or a date variance?Yes → blocked for review · No → next check
- All checks passed?Yes → invoice posted free for payment · No → AP reviews blocked invoice
Who resolves a block
Most blocks are resolved outside accounts payable. A quantity block usually means the warehouse has not posted the receipt yet. A price block means the PO price, the info record or the supplier is wrong, which is a purchasing question. Good teams route each block reason to its owner with a short standard text, rather than letting blocked invoices pile up.
What would you do?
Lakeside invoices 500 rotors at $42.00. The PO is for 500 at $42.00 and has GR-based invoice verification. Only 300 have been received. What happens?
- The three-way match compares purchase order, goods receipt and supplier invoice.
- GR-based invoice verification matches invoices against received quantities.
- Tolerance keys such as PP and DQ define acceptable variances.
- Variances above tolerance post the invoice with a payment block, released via MRBR or Fiori apps.
Check your understanding · not graded
Lesson check
1. Which three documents does the three-way match compare?
2. What happens to an invoice whose price variance exceeds tolerance?
3. Which tolerance key covers price variances?
4. Which transaction releases blocked invoices?