Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

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.

  1. Purchase orderWhat we agreed: 500 rotors at $42.00
  2. Goods receiptWhat arrived: 500 rotors posted on the 18th
  3. Supplier invoiceWhat Lakeside is asking for: 500 rotors at $42.00 = $21,000
  4. MatchQuantities and prices agree within tolerance: the invoice is posted free for payment
The three documents the match compares.
The Sign-Off Table · thesignofftable.com/academy/sap-mm-101

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 keyWhat it checksContoso example
PPPrice variance: invoiced price vs. PO priceInvoice at $42.50 instead of $42.00
DQQuantity variance: invoiced quantity vs. received (or ordered) quantityInvoice for 500 when only 450 were received
DWInvoice for an item where no goods receipt has been posted yet (with GR-based IV)Lakeside bills before the rotors arrive
BDSmall differences: automatically posted as a small gain or lossA $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.

  1. Does the invoice quantity exceed what was received?Yes → quantity block (unless within DQ tolerance) · No → next check
  2. Does the invoice price differ from the PO price beyond tolerance?Yes → price block · No → next check
  3. Is there a manual block or a date variance?Yes → blocked for review · No → next check
  4. All checks passed?Yes → invoice posted free for payment · No → AP reviews blocked invoice
How a posted invoice ends up free for payment or blocked.
The Sign-Off Table · thesignofftable.com/academy/sap-mm-101

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.

Rare, smallWithin tolerance; posted automatically
Rare, largeBlock and investigate the single case
Frequent, smallReview tolerance limits or rounding rules
Frequent, largeFix the root cause: wrong PO prices or late goods receipts
Patterns in blocked invoices point to different fixes.
The Sign-Off Table · thesignofftable.com/academy/sap-mm-101

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?

Key points
  • 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. 1. Which three documents does the three-way match compare?

  2. 2. What happens to an invoice whose price variance exceeds tolerance?

  3. 3. Which tolerance key covers price variances?

  4. 4. Which transaction releases blocked invoices?