Skip to content

Blog Post · September 30, 2026

What Is Automated Invoice Matching in ERP Workflows

Automated invoice matching explained. Two way, three way, and four way matching, what SAP, Coupa, Workday, and Oracle each call it, how tolerances work, and why matches fail.

Share

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

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 typeComparesBest forMain gap
Two wayInvoice to POServices, subscriptions, utilities, low value consumablesDoes not confirm anything was delivered
Three wayInvoice to PO to receiptGoods, the enterprise defaultDepends on receipts being entered promptly
Four wayInvoice to PO to receipt to inspectionRegulated manufacturing and quality gated materialsOverhead where quality release is not a real gate
Non-PO with contract matchInvoice to contract or rate cardSpend that never had a PORequires 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.

ConceptSAPOracleCoupaWorkdayNetSuite
Receiving documentGoods receiptReceiptReceiptReceiptItem receipt
Supplier invoice recordInvoice document, entered via logistics invoice verificationPayables invoiceInvoiceSupplier invoiceVendor bill
Matching configurationTolerance keys and tolerance limitsInvoice tolerancesTolerance settings on match rulesMatch rule setsThree way match preferences
Failure statePayment block on a posted invoiceHoldMatch exceptionMatch exceptionUnapproved bill
Service receiptService entry sheetReceipt against a service lineService receiptService line receiptItem receipt on a service item
Non-PO invoice routeFI invoice entryUnmatched payables invoiceInvoice without POSupplier invoice without POVendor 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
Relish whitepaper on invoice processing

Transform Your Invoice Processing

Eliminate Manual Errors & Boost Efficiency

Access

Share

Procurement Supplier Data: Stop the Garbage!

Procurement Supplier Data: Stop the Garbage!

Learn More
DATA ASSURE
Best AP Automation Tools for Enterprise Teams in 2026

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

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

Connect With Us

Get relevant content, connections and more on our social media platforms:

Get Started with Relish

  • AI Breakthrough Award 2022
  • CPO Honors 2021 award badge
  • ProcureTech 100 2024 award
  • 50 to Watch Badge
  • Future 5 Award Badge