Purchase order matching is the accounts payable control that compares a supplier invoice against the purchasing documents that authorize it before the invoice is approved for payment. Two-way matching compares the invoice to the purchase order. Three-way matching adds the goods receipt, so the invoice is checked against both what was ordered and what actually arrived.
The control exists because an invoice on its own is a claim. The purchase order records what the company agreed to buy and at what price, and the goods receipt records what was delivered. Matching the three confirms that the company is paying the agreed price for goods it actually received, which is the check that catches duplicate invoices, price creep, quantity overbilling, and invoices for deliveries that never arrived.
This article covers what each match type compares, where matching breaks down at the line level, and how to automate it. The final sections describe how Centime matches invoice lines to purchase orders and what to test when evaluating a system.
What two-way and three-way matching compare
Both match types work at the line level rather than the invoice total. An invoice can tie out in total while individual lines are wrong, so a header-level comparison passes invoices that a line-level comparison catches.
Two-way matching compares the invoice against the purchase order on two dimensions:
- Unit price, the rate on the invoice line against the rate on the PO line
- Quantity, the quantity billed against the quantity ordered
Three-way matching adds the goods receipt and compares:
- Unit price, invoice against purchase order
- Quantity, invoice against the quantity actually received, not the quantity ordered
- Receipt existence, confirming the goods were recorded as delivered before the invoice is paid
The difference matters when a supplier ships partially. On a PO for 100 units where 60 arrived and the supplier invoiced for 100, two-way matching passes the invoice because the quantity ties to the order. Three-way matching holds it, because only 60 units were received.
Not every purchase warrants three-way matching. Inventory and other receivable goods are the natural candidates, since a physical delivery is recorded. Services, subscriptions, utilities, and expense-type lines often have no goods receipt to match against, and forcing a three-way rule onto them creates exceptions with no informational value.
Where PO matching breaks down
The mechanics are simple. The work is in the cases where the documents do not correspond cleanly.
- Line ordering and description drift. The invoice lists lines in a different order than the PO, and the supplier's description for an item differs from the buyer's. A human recognizes that "1/2in galv elbow" and "Elbow, galvanized, 0.5 inch" are the same item. String comparison does not.
- Split deliveries and partial billing. One PO produces three deliveries and two invoices. Each invoice has to match against the portion received and not yet billed, which means tracking what earlier invoices already consumed.
- Price variances within tolerance. The invoice rate is $10.04 against a PO rate of $10.00. Most companies do not want that routed to a buyer for approval, and most also do not want it silently ignored.
- Invoices arriving before receipts. The invoice reaches AP before the warehouse records the delivery. The invoice is not wrong, and it is not yet matchable.
- Purchase orders that change. The PO is revised, lines are added or removed, and invoices already linked to the old version have to be reconciled against the new one.
- Freight, tax, surcharges, and new lines. The invoice carries lines that were never on the PO. Some are legitimate, some are not, and none of them match.
These cases are the reason PO matching stays manual in many AP departments. The straightforward matches are easy to automate, and the exceptions consume the time.
How to automate PO matching
Automating PO matching means linking invoice lines to purchase order lines without a person doing the comparison, then presenting only the lines that need a decision. Five capabilities do that work.
Match at the line level, on the right fields for the line type. Item lines are compared on unit price and quantity, since those are the dimensions that carry the risk. Expense-type lines have no meaningful unit price and are compared on amount instead. A system that applies one rule to both produces exceptions on every expense line.
Link lines automatically, using more than one signal. Exact matches on rate and quantity are the first pass. Beyond that, the system needs to recognize the same item described differently, which requires comparing normalized descriptions and, past that, a similarity model that learns which supplier descriptions correspond to which items and accounts.
Set tolerances, and record a tolerance pass as its own outcome. A variance inside the tolerance a company sets is a different event from a true mismatch, and the two should not be recorded identically. Keeping them separate is what lets a controller see which invoices passed exactly and which passed within tolerance.
Give each dimension its own status and its own resolution. A line can have a correct quantity and a wrong rate. Tracking rate, quantity, and amount separately lets the rate discrepancy be resolved without disturbing the rest of the line.
Handle the not-yet-matchable case explicitly. An invoice waiting on a goods receipt needs a state of its own, so it is neither approved nor treated as an exception requiring investigation.
How Centime matches invoices to purchase orders
Centime runs PO matching inside its AP automation application, in the same flow that captures and codes the invoice. The behavior below reflects how the matching engine operates rather than a summary of features.
Match type is set globally and overridden per supplier. A company sets two-way, three-way, or no matching as its default, then overrides that for individual suppliers. Three-way matching is applied where a goods receipt genuinely exists, and expense-only suppliers run two-way, without one policy forcing exceptions on the other.
Three-way eligibility is resolved per item. Rather than applying three-way matching to every line on a supplier's invoice, Centime determines eligibility at the item level, so inventory and receivable items match against receipts while other lines on the same invoice do not.
Lines link through a four-pass sequence. The engine first scores every invoice line against every open PO line and links the exact matches immediately, on rate and quantity for item lines and on amount for expense lines. Lines that remain are matched on exact normalized descriptions. What is still unresolved goes to a similarity model that predicts the item or account a line corresponds to. The remaining candidates are then ranked and the best of them linked. Each pass narrows the set the next pass has to consider.
Received quantity, not ordered quantity, drives three-way matching. Centime reads goods receipt data against the PO line and matches on the unbilled received quantity, so partial deliveries match correctly and a quantity already consumed by an earlier invoice is not billed twice.
Tolerance results are distinguished from mismatches. Rate, quantity, and amount each carry their own status, and a variance that falls inside the configured threshold is recorded as a threshold match rather than a mismatch. A line where every dimension passes within tolerance is recorded as a full threshold match, which is a different outcome from a line that matched exactly.
Each discrepancy is resolved on the line. An AP approver can accept, reject, or dispute a rate or quantity discrepancy independently, mark a line as awaiting receipt when the invoice arrived first, unlink a line that was matched incorrectly, or recall a decision already made. New lines on the invoice that were never on the PO are actioned the same way.
PO revisions are reflected. When a purchase order changes, invoice lines linked to removed PO lines are unlinked rather than left pointing at a document that no longer exists.
Matching runs inside NetSuite, QuickBooks, Sage Intacct, and Microsoft Dynamics. It reads the purchase orders and goods receipts already recorded in the ERP rather than a synchronized copy of them, and the approved bill posts back to the same system.
What to look for in PO matching software
Evaluations tend to center on whether a system supports three-way matching. Nearly all of them claim to. These criteria separate them.
- Line-level matching, not header totals. Ask to see a partially delivered PO matched across two invoices.
- Different logic for item and expense lines. Confirm expense lines are compared on amount rather than on a unit price they do not have.
- Per-supplier match type. A single global setting forces the wrong rule onto part of the supplier base.
- Tolerance handling that is visible. Confirm a within-tolerance pass is recorded distinctly from an exact match and from a mismatch.
- Per-dimension resolution. Check that a rate discrepancy can be accepted while a quantity discrepancy on the same line stays open.
- An explicit awaiting-receipt state. Invoices that arrive before deliveries should not sit in the same queue as genuine exceptions.
- Description matching beyond exact strings. Supplier descriptions rarely match buyer item names, so ask how the system links them.
- Native ERP posting. Purchase orders and receipts already live in the ERP, and matching should read them there rather than through a synchronized copy.
What automation changes
The gains from PO matching automation appear as AP hours rather than as a line item. The published customer results below cover AP automation broadly, of which matching is one part, so they should be read as the outcome of the whole workflow rather than of matching alone.
Erdman Holdings, a commercial real estate company processing hundreds of invoices a month, recovered more than 20 hours a week on accounts payable compared with its previous manual process. Nickie Hanson, the company's Controller, attributes that to replacing manual handling across the AP workflow. Synergy HomeCare, running more than 100 invoices a month across 400 territories, recovered more than 40 hours a month after automating payables.
The mechanism behind both is the same. When the straightforward matches link automatically and only genuine discrepancies reach a person, the AP team spends its time on the exceptions that carry real financial risk.
Centime matches invoice lines to purchase order lines and goods receipts inside Oracle NetSuite, Intuit QuickBooks, Sage Intacct, and Microsoft Dynamics 365 Business Central, with per-supplier match rules and tolerances your team sets. See PO matching software running in your ERP, or book a 30-minute demo to see it run against your own purchase orders.