What Two-Way Matching Checks
and What It Lets Through
Two-way matching can approve an invoice for goods that never arrived. That is the control working as designed: the invoice is compared with the purchase order on two numbers, the quantity ordered and the price agreed, and no third document confirms that anything reached the loading dock.
The choice between two-way and three-way matching is an evidence question. An invoice claims that goods or services were supplied at a price. Two-way matching proves the price and the quantity that were authorized. It cannot prove supply, so the decision becomes whether supply is the part of the claim you need to test.
That decision only applies to invoices with a purchase order behind them. Ardent Partners puts that share at 61% in its 2024 State of ePayables, which means the other 39% have no PO to match against. If your purchase order (PO) coverage is lower than you assumed, fix that first.

Key Takeaways
- An invoice for 500 units passes two-way matching even if only 450 units arrived, because the test compares 500 billed with 500 ordered.
- Both tests only cap the quantity and the price, so a short shipment never becomes an exception.
- Set the match level per spend category, and price the receipt leg before you make it mandatory.
What Two-Way Matching Compares
Two-way matching, also called PO matching, is the base case in accounts payable: the quantity billed cannot exceed the quantity ordered, and the invoice unit price cannot exceed the purchase order price. Those are the criteria Oracle documents for Payables, and the direction of each test matters more than most explanations admit (Oracle Payables Help).
An invoice for fewer units than ordered passes. An invoice priced below the PO passes. The control is built to stop overbilling. It is not built to confirm that a transaction happened, and the difference explains most of the argument about whether two-way matching is sufficient.
In an ERP the tests run at line level, inside tolerances you configure, meaning the percentage or amount a line may differ before it is flagged. A weaker version compares invoice total with PO total, and an invoice can tie out in total while its lines are wrong, because two line errors can cancel. A freight line and a short quantity on the same invoice are a common pair.
Three-way matching keeps both tests and adds a third: the quantity billed cannot exceed the quantity received. Four-way matching adds acceptance, which is the quantity that passed inspection.
| Match level | Documents compared | Test applied | What it proves |
|---|---|---|---|
| Two-way | PO and invoice | Qty billed ≤ qty ordered; invoice price ≤ PO price | You are paying an authorized price for an authorized quantity |
| Three-way | PO, receipt, invoice | Qty billed ≤ qty received, plus the two-way tests | Goods were recorded as delivered before payment |
| Four-way | PO, receipt, inspection, invoice | Qty billed ≤ qty accepted, plus the three-way tests | Delivered goods passed acceptance |
ERP systems are built to mix the match level. Oracle lets you change the invoice match option at supplier, supplier site, and purchase order shipment. SAP Ariba's own guidance notes that many companies run three-way matching while others adopt two-way to simplify low-value purchases (SAP Ariba invoice reconciliation guide). One level for every invoice is a policy choice, and usually an expensive one.
The Invoice That Passes Without the Goods

A purchase order for 500 units at $8 and an invoice for 500 units at $8 pass two-way matching whether 500 units arrived, 450 arrived, or none did. If 450 units arrive and the supplier bills for 500, the quantity test compares 500 billed with 500 ordered and passes. The $400 difference never becomes an exception. A three-way match compares 500 billed with 450 received and holds the invoice.
Units of measure break the quantity test in both directions. A PO for 20 cases at $240 and an invoice for 240 eaches at $20 carry the same value. A system comparing the raw numbers 20 and 240 will hold a correct invoice. A system comparing totals will pass even though the line quantities do not correspond. Pack-size changes and weight-to-piece conversions produce this mismatch, which is why a matching policy needs a unit-of-measure field.
Header-level matching has a second blind spot: lines that were never on the PO. Freight, fuel surcharge, pallet fees, and small-order fees often arrive as invoice lines with no PO counterpart. Match on totals with a 3% tolerance and a $120 freight charge on a $4,000 order passes without anyone deciding whether the charge was agreed. On 200 such orders a year, $24,000 passes without a single exception.
Two-way matching answers whether the invoice agrees with the order. It does not answer whether the order was fulfilled.
When Two-Way Matching Is the Right Control
Two-way matching is the correct control wherever no separate delivery event exists to compare against. Services, subscriptions, rent, utilities, insurance, telecom, and professional fees are billed against a contract or a rate, not against a shipment. There is nothing to receive, so a goods receipt would have to be invented, and an invented receipt is worse than no control because it looks like evidence.
Prepayment terms create the same problem. A 30% deposit is billed before delivery by design, and a three-way rule holds it until a receipt exists, so the supplier ships late or someone waives the control case by case.
| Spend category | Default match | Why |
|---|---|---|
| Professional services and retainers | Two-way against the contract or statement of work, with milestone sign-off | No delivery event; the sign-off is the evidence |
| Software, rent, utilities, insurance | Two-way, or invoice approval where no PO exists | Price is fixed by contract; usage is not counted per invoice |
| Freight, customs, bank charges | Two-way against a rate card | Most mid-market setups have no PO line per shipment |
| Inventory, components, raw materials | Three-way | Short shipment is the main exposure |
| Capital equipment | Three-way, four-way where acceptance testing applies | Value and specification risk |
| Regulated components | Four-way | Receipt is not acceptance |
| Consignment and pay-on-consumption | Three-way against the usage report | Consumption triggers payment, not delivery |
The condition behind every two-way row is the same: the price basis has to exist somewhere, and the invoice has to reference it. An invoice with no PO number is not a two-way match. It is an approval with extra steps.
What the Receipt Leg Actually Costs

The third document is cheap to compare and expensive to obtain. The cost sits in three places.
Capture. Someone has to turn the delivery into a record with a PO line, a quantity, and a date. In a warehouse with a receiving system this is a scan. In a business where the dock signs a paper packing slip, it is a person retyping at the end of a shift, which is exactly when accuracy is lowest.
Timing. Invoices often arrive before the receipt is posted. The invoice is neither approved nor a real exception, so it waits. A receipt posted two weeks after the invoice turns a payment decision into a queue.
Ownership. A receipt discrepancy belongs to receiving or procurement, not to AP. Every receipt exception becomes a handoff between teams that do not report to the same manager.
Ardent Partners puts the all-in cost of processing one invoice at $9.40 and the average exception rate at 14% in the same 2024 benchmark set (Ardent Partners). A third document that adds capture time and its own exception queue is a real line item in the cost of control.
Four-way matching adds inspection, a separate event from receipt, and it earns its delay where a defect found after payment is expensive to recover.
A receipt posted after the payment run is not a control. It is a delay with a reason code.
Who Owns Each Step
The match is an AP task, and the evidence it depends on is produced by people outside AP. That split explains why three-way matching fails on ownership more often than on logic.
| Step | Owner | Common failure |
|---|---|---|
| PO creation and price maintenance | Buyer or procurement | A price change is never amended on the PO |
| Receipt posting | Receiving or warehouse | Posted late, in cases instead of eaches, or not at all |
| Invoice capture | AP | PO number missing, truncated, or wrong |
| Match and exception routing | AP clerk | No authority to correct procurement data |
| Approval | Budget owner or controller | Signs without seeing the receipt |
| Tolerance and policy | Controller or CFO | The band is widened to keep volume down |
| Control testing | Auditor | Match evidence was not retained |
An accountant on r/Accounting described the pattern from the AP side: "the POs hardly ever align with the purchase invoices... price differences and differences in quantity received," and the cost is "losing a lot of time communicating the differences to supply chain" (r/Accounting). The mismatch originates upstream and lands in AP, which cannot fix a PO or a receipt it does not own.
That is the argument for two-way matching in categories where the receipt is unreliable. A control that depends on a record nobody owns does not fail loudly; it produces a backlog that everyone learns to route around. In manufacturing that backlog has a shape of its own: three-way matching fails in manufacturing AP for reasons that start before the invoice arrives.
A Decision Checklist You Can Apply This Week
Set the match level by spend category and value band, not once for the whole ledger. Six steps get you to a policy you can defend.
Name the claim
Write down what each invoice asserts that no other document proves: delivery, acceptance, hours worked, or a milestone. The document that can contradict the claim is the one worth adding.
Check that the evidence exists before you require it
Ask receiving how long a receipt takes to post and in what unit. If the answer is "when someone remembers," a three-way rule will create holds, not control.
Price the extra leg
Estimate capture minutes per invoice against a loaded hourly rate, then compare that with the short shipments you have caught or suspect. Ardent's $9.40 all-in average is a reference point for total AP cost, and the receipt step sits inside it.
Set tolerance by price basis
Contract-priced lines get zero price tolerance. Commodity lines exposed to index or currency movement get a narrow band with an absolute cap. Discrete units get zero quantity tolerance.
Gate by value and vendor history
Three-way above a threshold, for vendors in their first two quarters, and for categories with a short-shipment history. Two-way elsewhere.
Keep the evidence
Store the match result, the tolerance applied, who cleared the exception, and the receipt reference. An auditor who samples a payment will ask for proof of delivery whether or not your policy used it.
Where Extraction Changes the Math
Extraction does not choose the match level. It lowers the cost of the document the choice depends on, which can change the answer. The expensive part of the receipt leg is turning a paper packing slip into rows; the comparison itself takes seconds. If a batch of receiving documents lands in a spreadsheet with the same columns as the invoices, the marginal cost of three-way matching drops, and categories that were too small to justify it become affordable.
That is the layer ImageToTable.ai works at. Custom Column Extraction means you type the column names you want, such as Invoice Number, PO Number, Qty Invoiced, Unit Price, Line Total, and Invoice Total, and the model finds each value by what it means rather than by where it sits on the page. The same column set works across suppliers because layout is not part of the instruction.
Computed columns carry the arithmetic into the extraction. A column named Variance (Invoice Total − PO Total) returns the difference when both figures are on the documents being read, which happens when a supplier attaches the PO to the invoice. Line-level checks work the same way: Line Check (Qty × Unit Price − Line Total) flags a line whose arithmetic does not hold.
Batch processing puts a folder of invoices into one sheet, and Bbox (bounding box) review shows where a cell's value came from on the original page, which settles a disputed quantity quickly.
For the full three-document version in a spreadsheet, three-way matching without an ERP covers the registers and formulas. Invoice and PO matching in Excel covers the two-document column design, and AP automation software versus an extraction step covers the scope difference.
The honest boundary: the tool does not match records across your PO register, hold or release an invoice, apply your tolerances, route approvals, or post to an ERP. It turns documents into rows, and the comparison stays with your team. Matching also does not prove the supplier exists. ACFE's 2024 Report to the Nations puts billing schemes in 22% of occupational fraud cases, with a median loss of $100,000 and a typical 18 months before detection (ACFE). A fake vendor with a fake PO and a colluding approver passes every match level.
FAQ
Is two-way matching enough for a small business?
For services, subscriptions, rent, and other spend with no delivery event, yes. For goods where a supplier has short-shipped or billed for more than arrived, no. The practical trigger is history: once a category has produced an overpayment you could not recover, move that category to three-way and leave the rest alone.
What is the difference between two-way and three-way matching?
Two-way matching compares the invoice with the purchase order on quantity ordered and unit price. Three-way matching adds the goods receipt and compares the quantity billed with the quantity received. The receipt leg catches short shipments and invoices for goods that never arrived, which two-way matching cannot see.
Can two-way matching catch duplicate invoices?
No. Duplicate detection is a separate control that compares invoice number, vendor, amount, and date against prior payments. A duplicate carrying a different invoice number passes both two-way and three-way matching, which is why the duplicate check belongs in the same policy even though it is a different test.
Does two-way matching work for services?
Yes, when the PO or contract states the scope and the rate. The receipt is replaced by a milestone sign-off or an approved timesheet. If the invoice bills hours, match the hours to the timesheet, because a PO on its own will not catch inflated hours.
Do we need an ERP to do two-way matching?
No. You need a PO register and an invoice register that share a PO number, which a spreadsheet can provide at modest volume. An ERP adds automatic tolerances, holds, and an audit trail. Most teams outgrow the manual version somewhere in the hundreds of invoices per month, not before.
The Cheapest Document That Proves the Claim
The right match level is the cheapest set of documents that can disprove what the invoice claims. Most teams over-control low-risk spend and under-control the categories where a short shipment would hurt, because the policy was set once and never revisited by category. The fix is a short list: what each invoice claims, which document can contradict it, and what that document costs to obtain.
When the answer is a paper packing slip that nobody wants to type, the cost of the control is a data problem before it is a policy problem. Make the data cheap and the decision gets easier.