Table of Contents
- Introduction
- Table of contents
- What automated invoice matching is
- The documents being matched
- Two way matching
- Three way matching
- Four way matching
- Which match type to use
- Header matching and line matching
- Tolerances, blocks, and holds
- What each ERP calls it
- Contract matching, the fourth comparison
- What automated matching adds over ERP native matching
- Why matches fail
- How Relish Invoice AI handles matching
- Frequently asked questions
- What is automated invoice matching?
- How do you match invoices to POs and contracts automatically?
- How do you validate invoice data against purchase orders before posting to the ERP?
- What is the difference between two way, three way, and four way matching?
- What are matching tolerances?
- What is the difference between an invoice block, a hold, and a match exception?
- Why do invoices fail to match the purchase order?
- Can invoices without a purchase order be matched automatically?
- Does automated matching replace the matching in my ERP?
Automated invoice matching is the control that decides whether an invoice becomes a liability in your ERP. It compares what a supplier billed against what you ordered and what you received, and it either lets the invoice post or stops it.
The concept is simple. The vocabulary is not, and that causes real confusion in enterprises running more than one system. SAP calls the receiving document a goods receipt and blocks invoices that fail. Oracle applies holds. Workday runs match rule sets. NetSuite has item receipts and vendor bills. Four systems, one control, four sets of words, and buyers comparing tools across them frequently talk past each other.
This guide defines the terms, explains what each match type actually verifies, maps the terminology across the major ERPs, and covers where automated matching goes beyond what your ERP does natively.
Table of contents
- What automated invoice matching is
- The documents being matched
- Two way matching
- Three way matching
- Four way matching
- Which match type to use
- Header matching and line matching
- Tolerances, blocks, and holds
- What each ERP calls it
- Contract matching, the fourth comparison
- What automated matching adds over ERP native matching
- Why matches fail
- How Relish Invoice AI handles matching
- Frequently asked questions
What automated invoice matching is
Automated invoice matching is the system driven comparison of a supplier invoice against the purchase order it was raised under and, for goods, the receipt confirming delivery. When the documents agree within configured tolerance, the invoice proceeds to approval and posting without human involvement. When they disagree, the invoice is stopped and routed to a person with the specific mismatch identified.
The control exists to prevent three things: paying for goods or services you never received, paying more than you agreed to pay, and paying the same invoice twice. It runs before the invoice posts, because an invoice that has already become a liability in the general ledger is corrected through a credit and an adjustment rather than by simply not paying it.
The word automated is doing specific work. Every ERP can match invoices. What varies is how much of the matching happens without a person, which depends on whether the system can resolve the ordinary complications, including unit of measure differences, partial deliveries, consolidated invoices, and suppliers who split or merge line items relative to the order.
The documents being matched
Three documents, sometimes four.
The purchase order records what you agreed to buy: supplier, items, quantities, unit prices, delivery terms, and currency. It is the buyer’s statement of intent and it is created before anything happens.
The receipt records what physically arrived: items and quantities, dated. In SAP this is the goods receipt, in NetSuite the item receipt, and elsewhere a receipt or delivery confirmation. For services, the equivalent is a service entry sheet or a confirmation from the person who received the work.
The invoice is the supplier’s claim for payment: items, quantities, prices, tax, freight, and total.
The inspection or quality document, where used, records that what arrived was acceptable. This is the fourth document in a four way match and it exists mainly in manufacturing, pharmaceutical, and regulated environments.
Matching compares these against each other. Which comparisons run determines the match type.
Two way matching
Two way matching compares the invoice to the purchase order. It confirms the supplier, the items, the quantities, and the unit prices on the invoice agree with what was ordered.
It does not confirm anything arrived.
That limitation defines where two way matching belongs: purchases with no physical delivery to receive, or where receipt is verified by other means. Services billed against a contract, subscriptions, utilities under a blanket order, and low value consumables where receipting costs more than the exposure it prevents.
Two way matching catches price increases the supplier applied without agreement, quantities billed beyond what was ordered, and items on the invoice that were never on the PO. It cannot catch a supplier billing the full order when only part of it shipped, because it never looks at what shipped.
Three way matching
Three way matching compares the invoice, the purchase order, and the receipt. It is the standard control for goods in enterprise AP and it is what most people mean when they say invoice matching.
The added comparison is quantity billed against quantity received, and it closes the largest gap in two way matching. A supplier who ships 60 of 100 units and invoices for 100 passes a two way match against the PO and fails a three way match against the receipt.
Three way matching is also what makes partial deliveries workable. Rather than treating an invoice for 60 units against a PO for 100 as a discrepancy, the system compares against the receipt, confirms 60 arrived, matches, and tracks the remaining 40 as an open balance on the PO for the next invoice.
The prerequisite is a receipting discipline that actually happens. Three way matching in an organization where receipts are entered in batches weeks later produces a constant stream of timing exceptions, and the fix is operational rather than technical.
Four way matching
Four way matching adds an inspection or quality result to the three documents above. The invoice matches only if the goods were received and passed inspection.
It is used where accepting defective material has consequences beyond the cost of the goods: pharmaceutical and medical device manufacturing, aerospace, food production, and regulated environments generally. In those settings, receiving material and paying for it before quality release is a compliance problem, not only a commercial one.
For most enterprises it is unnecessary overhead. It should be applied by category rather than universally, on the specific material groups where quality release is a genuine gate.
Which match type to use
| Match type | Compares | Best for | Main gap |
|---|---|---|---|
| Two way | Invoice to PO | Services, subscriptions, utilities, low value consumables | Does not confirm anything was delivered |
| Three way | Invoice to PO to receipt | Goods, the enterprise default | Depends on receipts being entered promptly |
| Four way | Invoice to PO to receipt to inspection | Regulated manufacturing and quality gated materials | Overhead where quality release is not a real gate |
| Non-PO with contract match | Invoice to contract or rate card | Spend that never had a PO | Requires contract terms to be captured as data |
Most enterprises need three of these running at once, assigned by category and spend type. A single global match rule is always wrong somewhere, either blocking spend that should flow or letting through spend that should stop.
Header matching and line matching
Matching runs at two levels, and the distinction explains most of the difference between a system that appears to match and one that actually does.
Header matching compares invoice level values against the PO header: supplier, currency, total amount, and payment terms. It is fast and it catches wrong entity, wrong currency, and gross total discrepancies.
Line matching compares each invoice line against a PO line on description or part number, quantity, unit of measure, and unit price. This is where matching gets hard, because invoice lines routinely do not correspond one to one with PO lines.
Three common cases break naive line matching.
Unit of measure differences. The PO is in cases, the invoice is in each. Both are correct. Without a conversion the quantities differ by a factor of twelve and the match fails.
Line splitting and merging. The supplier bills three PO lines as one summarized line, or splits one line across several. Totals agree, lines do not. Handling this requires many-to-one and one-to-many matching rather than row by row comparison.
Lines that were never on the PO. Freight, fuel surcharges, expedite fees, and small order charges get added at invoice time. Whether they are legitimate is a contract question, and they should be identified as unmatched additions rather than breaking the match on the lines that do correspond.
A system that only matches at header level will report a clean match on an invoice whose totals happen to agree while individual line prices are wrong. That is worse than no match, because it produces documented false confidence.
Tolerances, blocks, and holds
A tolerance is the variance accepted without human review. Tolerances are normally configured on price, quantity, and total, as an absolute amount, a percentage, or both, with the lower of the two applied so a percentage does not become large on a large invoice.
What happens when a tolerance is exceeded differs by system, and the vocabulary matters.
A block prevents payment while leaving the invoice posted. SAP works this way: the invoice posts to the ledger and carries a payment block until the discrepancy is resolved. The liability is recorded, the money does not move.
A hold prevents the invoice from being validated and paid. Oracle works this way, applying named holds such as a price hold or a quantity received hold, which have to be released before payment.
A match exception routes the invoice to a person for resolution before it progresses, which is the pattern in Coupa and Workday.
The practical difference is whether the liability lands in your ledger while the dispute is open. That affects period end accruals and it is worth knowing which behavior your ERP has before you set tolerances, because a tight tolerance in a system that blocks after posting produces a very different month end picture from one that holds before posting.
Set tolerances from your own exception history rather than a default. Pull twelve months of variances, find where rounding noise ends and real problems begin, vary the setting by spend category, and put an absolute floor underneath so small invoices do not generate exceptions costing more to review than they are worth.
What each ERP calls it
The single most useful table for anyone comparing across systems.
| Concept | SAP | Oracle | Coupa | Workday | NetSuite |
|---|---|---|---|---|---|
| Receiving document | Goods receipt | Receipt | Receipt | Receipt | Item receipt |
| Supplier invoice record | Invoice document, entered via logistics invoice verification | Payables invoice | Invoice | Supplier invoice | Vendor bill |
| Matching configuration | Tolerance keys and tolerance limits | Invoice tolerances | Tolerance settings on match rules | Match rule sets | Three way match preferences |
| Failure state | Payment block on a posted invoice | Hold | Match exception | Match exception | Unapproved bill |
| Service receipt | Service entry sheet | Receipt against a service line | Service receipt | Service line receipt | Item receipt on a service item |
| Non-PO invoice route | FI invoice entry | Unmatched payables invoice | Invoice without PO | Supplier invoice without PO | Vendor bill without PO |
The terminology gap causes real problems in evaluations. An AP lead from an Oracle environment asking a vendor “how do you handle holds” and an SAP lead asking “how do you handle blocks” are asking the same question and will get differently shaped answers.
Contract matching, the fourth comparison
PO matching confirms the invoice agrees with the order. It does not confirm the order agreed with the deal.
A purchase order raised at the wrong price produces an invoice that matches perfectly and overpays. Requisitioners raise POs from stale catalog data, quotes get entered manually, and annual price escalations get applied by the supplier before they are loaded on your side. In each case the three way match passes.
Contract matching compares the billed unit price against the contracted rate card, checks that the billing period is correct and has not already been invoiced, validates that any escalation follows the contracted formula, and confirms that surcharges and fees are ones the agreement permits.
It is also the only reconciliation available for non-PO invoices, which in most enterprises is a substantial share of spend and includes some of the largest invoices in the run. Utilities, rent, legal, insurance, subscriptions, and professional services usually arrive with no purchase order at all. Organizations that automate PO matching and leave non-PO invoices manual have frequently automated the smaller and better controlled half of their spend.
What automated matching adds over ERP native matching
Every major ERP matches invoices. The gap is not whether matching exists, it is how many invoices clear it without a person, and that comes down to five things.
Getting structured data off the document in the first place. An ERP matches structured data. It does not read a PDF from an unfamiliar supplier. If the invoice has to be typed in before matching runs, the matching engine’s quality is not your constraint.
Resolving the PO when the reference is missing or wrong. Invoices routinely cite a requisition number, a quote number, an old PO, or nothing. Native matching fails on a bad reference. Automated matching searches open POs for that supplier by amount, line items, and open balance to find the candidate.
Unit of measure conversion. Holding conversion rules so a PO in cases matches an invoice in each, without a human doing arithmetic every month.
Many-to-one and one-to-many line matching. Handling suppliers who summarize or split lines relative to the PO, which is common and which row by row comparison cannot resolve.
Learning from resolution. When a person resolves the same supplier quirk repeatedly, a system that learns applies it automatically thereafter. Native ERP matching does not learn. The same exception arrives every month for the life of the supplier relationship.
None of this replaces your ERP’s matching. It feeds it clean, pre-reconciled data so that native matching succeeds instead of producing exceptions your team clears by hand.
Why matches fail
The recurring causes, in rough order of frequency in enterprise AP.
- Unit of measure mismatch between the order and the invoice
- Partial delivery invoiced correctly against a larger PO
- Timing, where the invoice arrives before the receipt is entered
- Consolidated invoices covering several POs or several deliveries
- Line splitting or merging by the supplier relative to the PO
- Freight and surcharges that were never on the PO
- Price variance inside a tolerance nobody configured
- Missing or wrong PO reference on the invoice
- Receipt never entered, usually for services
- PO closed early, leaving a final invoice with nothing open to match
Almost none of these are fraud and almost none are error. They are structural mismatches between how suppliers bill and how buyers order, which is why they recur and why solving them with rules pays back permanently.
How Relish Invoice AI handles matching
Relish Invoice AI reads the whole invoice with AI rather than matching it to a per supplier template, then matches the extracted data against supplier master data and purchase orders before pushing the finished invoice into SAP, Coupa, Workday, or ServiceNow.
Exceptions route to a reviewer in a split panel showing the invoice as received beside the extracted fields and the failed comparison. When the reviewer resolves it, they show the system where the correct value was, and after roughly three repetitions machine learning applies it automatically. The rules engine holds the durable logic, including unit of measure conversions, tolerance bands by category, and supplier specific handling, and the AI assistant will draft a rule from a plain English instruction rather than requiring a services engagement.
Denny’s went from 50 to 60 percent electronic invoicing to 75 to 80 percent touchless. A no-touch invoice averages about four minutes from inbox to posted.
For the end to end process rather than the matching concepts, see how invoice reconciliation works in AP automation. For the extraction layer that feeds matching, see OCR versus invoice AI.
Frequently asked questions
What is automated invoice matching?
Automated invoice matching is the system driven comparison of a supplier invoice against the purchase order it was raised under and, for goods, the receipt confirming delivery. When the documents agree within configured tolerance, the invoice proceeds to approval and posting without a person. When they disagree, it is stopped and routed to a reviewer with the specific mismatch identified. The control prevents paying for undelivered goods, paying more than agreed, and paying the same invoice twice.
How do you match invoices to POs and contracts automatically?
Automated matching resolves the purchase order from the invoice, or searches open POs for that supplier when the reference is missing or wrong, then compares at header level for supplier, currency, and total and at line level for description, quantity, unit of measure, and unit price. For goods it also compares quantity billed to quantity received. Contract matching adds a comparison of billed rates against the contracted rate card, which catches a purchase order raised at the wrong price and is the only reconciliation available for non-PO spend. Results within tolerance continue automatically, and anything outside routes to a person.
How do you validate invoice data against purchase orders before posting to the ERP?
Validation runs in sequence before posting: identify the supplier against the supplier master, check for duplicates, resolve the purchase order, match header values, match line items with unit of measure conversion and many-to-one handling, compare quantities to the receipt, verify tax and freight, and recalculate totals. Results are compared against tolerances configured by category. Only invoices that pass every check or fall within tolerance are posted as a liability, which is the point of validating before posting rather than correcting a posted invoice with a credit afterward.
What is the difference between two way, three way, and four way matching?
Two way matching compares the invoice to the purchase order, confirming quantities and prices agree with what was ordered but not confirming anything arrived. Three way matching adds the receipt, comparing quantity billed against quantity received, which is the enterprise standard for goods. Four way matching adds an inspection or quality result, so the invoice matches only if the goods passed inspection, and is used mainly in pharmaceutical, medical device, aerospace, and food production environments. Most enterprises run two way and three way matching side by side, assigned by spend category.
What are matching tolerances?
A tolerance is the variance accepted without human review, configured on price, quantity, and total as an absolute amount, a percentage, or both. Tolerances exist because exact agreement is rare in practice: rounding conventions, currency conversion dates, and minor freight differences produce tiny variances that cost more to review than they are worth. Set them from your own twelve month exception history rather than a default, vary them by spend category, and set an absolute floor so small invoices do not generate exceptions.
What is the difference between an invoice block, a hold, and a match exception?
They are the same control with different mechanics. A block, the SAP behavior, posts the invoice to the ledger and prevents payment until the discrepancy is resolved, so the liability is recorded while the money is held. A hold, the Oracle behavior, prevents the invoice from being validated and paid, and has to be released first. A match exception, the pattern in Coupa and Workday, routes the invoice to a person before it progresses. The practical difference is whether the liability lands in your ledger while the dispute is open, which affects period end accruals.
Why do invoices fail to match the purchase order?
The most common causes are unit of measure mismatches between order and invoice, partial deliveries invoiced correctly against a larger PO, timing where the invoice arrives before the receipt is entered, consolidated invoices covering several POs, suppliers splitting or merging line items, freight and surcharges never on the PO, price variance outside a tolerance nobody configured, missing or wrong PO references, receipts never entered for services, and POs closed early leaving a final invoice with nothing open. Most are structural differences between how suppliers bill and how buyers order rather than errors by either party.
Can invoices without a purchase order be matched automatically?
Yes, against a contract rather than a PO. Contract matching compares the billed rate to a rate card or subscription term, confirms the billing period is correct and has not already been invoiced, and validates escalations against the contracted formula. Recurring spend such as utilities and rent can also be compared to the supplier’s own history, so an unusual variance is flagged before posting. For professional services, routing to the person who received the work performs the same control a goods receipt performs on physical goods.
Does automated matching replace the matching in my ERP?
No, it feeds it. Every major ERP matches structured invoice data well. What it does not do is read an unstructured PDF from an unfamiliar supplier, find the right PO when the reference is missing, convert units of measure, handle suppliers who split or merge lines, or learn from a resolution so the same exception stops recurring. Automated matching resolves those upstream so that native ERP matching succeeds, leaving the ERP as the system of record with its controls and audit trail intact.
Dive Into On Demand Webinars
Learn from experts from SAP, Coupa, Workday, KeyBank, and more with instant access webinars.
Access
Best AP Automation Tools for Enterprise Teams in 2026
AP invoice automation ranked by ERP environment. What works in SAP, Coupa, and Workday shops, how each tool posts to your system of record, and...
Read Post
Behind the Headlines with Anu Yalamanchili
“Eftsure Acquires Relish, Creating the Global Leader in Trusted Enterprise Payments, From Onboarding to Payment.” What does this mean? What does this mean for our...
Read Post