A supplier invoice arrives. The accountant keys it in, the ERP accepts it, and payment goes out in 30 days. Three weeks later, the warehouse reports that half the goods never arrived. Procurement, meanwhile, discovers that the invoiced price doesn’t match the purchase order. Nobody lied, but nobody compared the three documents at the right moment.
Three-way match is the control that prevents this: before releasing payment, the ERP checks the purchase order, the goods receipt and the invoice against each other. The principle fits in one sentence. The real work lies elsewhere: setting tolerances that let noise through without letting errors through, keeping the clearing account for goods received but not invoiced under control, and deciding who rules when the ERP blocks an invoice.
This guide is for CFOs, accounts payable managers and ERP project leads in mid-sized companies. It starts from configuration and does not revisit automated invoice capture, which we covered in our guide to AP automation and generative AI. The figures below are illustrative: they are there to help you reason, not to serve as market benchmarks.
Why Two-Way Match Is No Longer Enough
Two-way match compares the invoice to the purchase order. It checks that the supplier is billing what was ordered, at the agreed price. It does not check that the goods or services were actually received. Three risks remain open.
- Invoice without receipt. You pay for a partial, late or never-delivered shipment. For stocked goods, the gap shows up at the physical inventory count, months later.
- Duplicates. The same invoice, sent by email and then by post, or re-keyed after a reading error, gets paid twice if nothing ties it to a receipt that has already been consumed.
- Fraud and opportunistic billing. A fake invoice, or a genuine invoice for goods ordered by someone else, is much harder to push through when it must attach to an approved order and to a receipt recorded by a third person. This is segregation of duties applied to the purchasing cycle.
That said, three-way match is not right for everything. Applied to software subscriptions worth a few dozen euros, it costs more than the risk it covers. The right question is not “should we do it?” but “on what scope, with which tolerances?”
The Three Documents and the Control Points
The control rests on three documents produced by three different actors: the purchase order (procurement), the goods receipt (warehouse or requester) and the invoice (accounts payable). The ERP links them through the order line. That line-by-line link is what makes the control possible: an order without clean references, or an invoice keyed in without a reference to the order, falls back to manual handling.
Price Check
The ERP compares the invoiced unit price with the purchase order price. Three sources of variance come up repeatedly: a negotiated discount not carried into the order, a contractual price revision (indexation, raw materials) not passed on, and a different currency or price unit (price per hundred, per kilo, per piece). The price check is the most sensitive to tolerances, because a small variance repeated across thousands of lines adds up fast.
Quantity Check
The ERP compares the invoiced quantity with the quantity received, net of what has already been invoiced. An invoiced quantity higher than the quantity received is the typical blocking case. A lower invoiced quantity is generally accepted: the supplier bills what it delivered, and the balance will be invoiced later.
Terms Check
The third control point is often forgotten: payment terms, taxes, freight charges, and the invoice date relative to the receipt date. An invoice whose due date differs from the negotiated one, or that carries a VAT rate inconsistent with the item code, deserves a soft block, meaning a flag without stopping payment, depending on your policy.
Setting Up Tolerances
A tolerance is the variance the ERP accepts without human intervention. Too tight, and it floods the team with low-stakes blocks. Too loose, and the control becomes a formality. Configuration comes down to three decisions.
By Supplier, Category or Amount
A single tolerance for the whole company is the worst option: it treats office supplies and raw materials the same way. Mainstream ERPs generally let you vary tolerances along several axes, though the exact scope depends on the version and module.
- By purchase category. Purchases of materials or components, subject to variations in weight, volume or indexed pricing, justify a wider quantity and price tolerance than fixed-price supplies.
- By supplier. A long-standing, reliable supplier under a framework agreement can have a wider threshold. A new supplier starts with zero or very low tolerance, relaxed after a few months of smooth operation.
- By amount. A value threshold avoids blocking an invoice over a few cents while keeping an eye on large amounts.
Percentage or Absolute Value
The two approaches complement each other, and best practice is to combine them: a variance is accepted only if it respects both a percentage cap and a value cap. An illustrative example: 2% price tolerance, but never more than €50 per line. On a €100 line, the accepted variance is €2 (the percentage is the binding limit). On a €100,000 line, the percentage would give €2,000, which the value cap brings down to €50 (the value is the binding limit).
Percentage alone is dangerous on large amounts. Absolute value alone is dangerous on small, high-volume lines. You also need to distinguish direction: a favorable variance (invoice below the order) and an unfavorable one don’t necessarily warrant the same tolerance. Many companies accept favorable variances more readily, while still surfacing them, because they sometimes hide a quantity error or an upcoming credit note.
How Mainstream ERPs Approach It
We describe the logic, not the menus: those change from one version to the next, and your integrator should check the exact screen in your release.
- SAP (MM, invoice verification, transaction MIRO). The control relies on tolerance keys (price variance, quantity variance, date variance and so on), defined per company code, with lower and upper limits in percentage and value. An out-of-tolerance invoice is blocked for payment and joins a list of invoices to process. A matching indicator is held at purchase order and vendor level.
- Microsoft Dynamics 365 (Finance and Supply Chain). An invoice matching policy, enabled in the accounts payable parameters, defines whether the control covers price, quantity or both, with percentage and amount tolerances by vendor or vendor group. Variances feed an exceptions journal to be resolved. For Business Central, check with your partner which level of native matching is available in your version.
- Odoo (Purchase, Invoicing). Vendor bill control is set at product or category level: billing on ordered quantities or on received quantities. Fine-grained tolerance control, in particular by percentage and value, often requires extra configuration or a third-party module, to be validated for your edition.
- Sage X3. Matching between order, receipt and invoice relies on control parameters at site or supplier level, with quantity and price tolerances. To be confirmed with your integrator for your version.
In every case the same principle applies: write the policy down on paper first (scope, thresholds, direction, owner), then translate it into the tool. Doing it the other way round yields tolerances inherited from default settings that nobody understands.
The GR/IR Clearing Account
The GR/IR account (Goods Received / Invoice Received) is a balance sheet clearing account at the heart of purchase accounting for inventory and fixed assets. It works simply.
- At goods receipt, before any invoice: inventory (or expense) is debited and GR/IR is credited. This is a provisional liability, the goods received not invoiced.
- At invoice, GR/IR is debited to clear the receipt and the vendor account is credited. If the invoiced price differs from the order price, the difference goes to a price variance account, depending on your valuation method.
A balance that stays in credit points to goods received not invoiced (accrued invoices). A balance that stays in debit points to invoices without matching receipts: the supplier billed more than was received, or the receipt was never recorded.
The classic trap is a GR/IR that is never cleared. Lines pile up: partial deliveries whose remainder will never come, invoices matched to the wrong line, duplicate receipts. After a year, the account carries amounts nobody can explain, and the auditors notice.
Period-end clean-up. Build a monthly ritual, built into your monthly close checklist:
- Extract the open GR/IR lines with their age.
- Classify them: to invoice (invoice expected, book an accrual), to cancel (erroneous receipt), to clear (abandoned remainder, supplier agreement).
- Post the clean-up entries with archived justification.
- Set an age threshold (for example 90 days) beyond which any line is escalated to the accounting manager.
Resolving Discrepancies
A control that blocks without anyone handling the blocks protects nothing: it simply delays payments and damages the supplier relationship. The resolution workflow matters as much as the configuration.
Discrepancy Types and Recommended Action
| Discrepancy type | Common cause | Recommended action | Who decides |
|---|---|---|---|
| Invoiced price above the order | Unnotified increase, forgotten discount, pricing error | Request a credit note or approve the variance after the buyer’s agreement | Buyer |
| Invoiced quantity above the receipt | Undelivered goods, keying error, over-billing | Check the receipt with the warehouse, otherwise dispute | Warehouse, then buyer |
| Invoice without an order | Purchase outside the process | Raise the order retroactively or reject | Requester, then budget owner |
| Receipt without invoice beyond the threshold | Lost or unissued invoice | Chase the supplier, accrue | Accounts payable |
| Probable duplicate | Double sending, re-keying | Block and match to the original document | Accounts payable |
| Different payment terms | Outdated contract data | Apply the contract terms, fix the vendor record | Buyer |
Who Arbitrates, and Within What Timeframe
The golden rule: every type of block has a named owner, not a department. Price blocks go to the buyer, quantity blocks to the warehouse or requester, terms blocks to accounting or legal. The ERP should route the task automatically to the right person, with the three documents side by side.
Set target resolution times, for example two working days for a price or quantity block (an illustrative value, to be adapted to your payment terms). Beyond that, escalate: automatic reminder to the owner, then to their manager, then to the accounts payable manager. An escalation without a deadline ends up unread.
Special Cases
Services with no physical receipt. A consulting or maintenance service has no delivery note. Receipt then becomes a service acceptance: the requester confirms the work is done (service sheet, approved timesheet). Without this step you are back to two-way match. Define a threshold below which acceptance is not required.
Advance payments. An advance is paid before receipt. Treat it as a down payment request tied to the order, to be applied later against the final invoice. An unattached advance becomes a floating debit balance on the vendor account.
Credit notes. A credit note must attach to the original invoice or receipt, so that the relevant quantity or amount is reopened. A credit note posted separately reduces the vendor balance but leaves the order artificially consumed.
Partial deliveries. Matching happens receipt by receipt. Each partial invoice consumes the received quantity not yet invoiced. Set a rule for closing remainders: after a given period, the order is closed, which purges dead lines from GR/IR.
KPIs to Track
Three indicators are enough to steer the process, measured monthly and published to the same team.
- Automatic match rate: the share of invoice lines that pass without intervention. This is the health indicator of the setup. A low value points either to overly tight tolerances or to poor order data quality. Measure your starting point before setting a target.
- Age of blocked invoices: average and maximum age, by owner. This is the discipline indicator, the one that exposes a block with no owner.
- Cost per invoice processed: time spent on keying, chasing and resolution, converted into cost. Calculate it with your own payroll figures rather than a market average.
Add two accounting health checks: the age and amount of the GR/IR balance, and price variances written off to expense.
Common Mistakes
- Tolerances that are too wide, often set so as “not to block the business”: the control becomes decorative.
- No owner for blocks: invoices sit in a shared queue that nobody feels responsible for.
- A GR/IR that is never cleared: old amounts nobody dares touch any more.
- Poor order data: outdated reference prices, inconsistent units. Matching has no chance of succeeding if the upstream data is wrong.
- Automated capture with no downstream control: invoice-reading AI speeds up keying but does not replace matching. The two complement each other: one reads, the other controls.
6-Step Implementation Checklist
- Define the scope. Which purchase categories, which suppliers and which value threshold fall under three-way match. The rest stay on two-way.
- Clean up master data. Contract prices, units, payment terms, up-to-date vendor records.
- Define the tolerance policy. Percentage plus value cap, by category, distinguishing favorable from unfavorable. Sign-off by finance and procurement.
- Configure and test. Reproduce it in the ERP, then run real test cases: price variance, excess quantity, partial delivery, credit note, service.
- Name owners and deadlines. Automatic routing of blocks, escalation, dashboard.
- Monitor and adjust. Monthly review of KPIs and GR/IR, quarterly tolerance adjustments.
Going Further
The control starts upstream, with a clean order: read our guide to B2B e-procurement, punchout catalogs and requisitions. GR/IR clean-up fits naturally into the monthly close checklist. To receive our next practical guides, subscribe to the newsletter.