3-Way PO Matching Explained (and How to Automate It)
Every accounts payable team eventually runs into the same question: how do you know an invoice is actually legitimate before you pay it? The standard answer is matching — checking the invoice against other documents in the purchase cycle before money moves. The most common version of this is 3-way matching, and it's one of the highest-leverage places to automate in the entire AP process.
This post explains what 3-way matching actually is, how it compares to 2-way and 4-way matching, why it's usually done badly by hand, and how document extraction makes it practical to automate.
What Is a Purchase Order, and Why Does Matching Start There?
A purchase order is the buyer's formal record of what was ordered, from whom, at what price, and in what quantity — created before the goods or services arrive. It's the anchor document for matching because it represents what was actually authorized, independent of whatever shows up later on an invoice.
Matching exists because an invoice alone is just a claim. The vendor is asserting "you owe us this amount for this delivery" — and without something to check that claim against, AP teams are trusting the invoice at face value.
2-Way vs. 3-Way vs. 4-Way Matching
Matching comes in a few standard levels, each adding one more document to check against:
| Type | Documents compared | What it catches |
|---|---|---|
| 2-way match | Purchase Order + Invoice | Price and quantity discrepancies between what was ordered and what was billed |
| 3-way match | Purchase Order + Invoice + Goods Receipt/Delivery Note | Everything 2-way catches, plus confirmation that the goods or services were actually received |
| 4-way match | PO + Invoice + Goods Receipt + Inspection/Quality Report | Everything 3-way catches, plus confirmation the goods passed a quality or inspection check |
3-way matching is the industry standard for most mid-size and larger organizations, because it closes the biggest gap in 2-way matching: a vendor can send a valid-looking invoice for goods that were never actually delivered, and 2-way matching alone wouldn't catch it. 4-way matching adds real value in industries with strict quality requirements (manufacturing, pharma, regulated goods) but is overkill for most general AP workflows.
How 3-Way Matching Actually Works
The process compares three fields across three documents:
Quantity — does the invoice quantity match what the PO authorized and what the goods receipt confirms was actually received?
Price — does the invoice's unit price match the price agreed on the PO?
Vendor and item details — is this the same vendor, the same item or service, referencing the same PO number?
If all three align within an acceptable tolerance (some AP teams allow a small variance threshold for rounding or minor pricing adjustments), the invoice is cleared for payment automatically. If anything doesn't line up, it gets flagged as an exception for a human to review before payment is released.
Why Manual 3-Way Matching Breaks Down
On paper, 3-way matching sounds simple. In practice, done manually, it's one of the slowest and most error-prone parts of AP:
It requires pulling three separate documents — often from three different systems or inboxes — and manually cross-checking fields by eye.
Partial deliveries and partial invoices are common, meaning a single PO might need matching against multiple invoices and multiple delivery notes over time, which manual trackers handle poorly.
Exception volume is high. Even a modest mismatch rate across POs, invoices, and receipts compounds into a meaningful chunk of every AP team's week, and manual investigation typically costs 20–30 minutes per exception. (See the full cost breakdown of manual invoice processing →)
It's a bottleneck on payment timing. Manual matching is a major contributor to the multi-day cycle times common in AP teams that haven't automated — and slow cycle times mean missed early-payment discounts and strained vendor relationships.
What Automating 3-Way Matching Actually Requires
Automated matching isn't a single feature — it's the output of three things working together, and this is where AP automation platforms and standalone extraction tools diverge:
Structured extraction from all three document types. You can't match what you haven't extracted. That means reliable field-level extraction from purchase orders, invoices, and delivery notes/goods receipts — not just invoices, which is where a lot of "invoice OCR" tools stop short.
A shared key to link documents together. PO number is the common thread that ties an invoice and a delivery note back to the original purchase order — extraction needs to reliably capture that reference field, or automated matching has nothing to match on.
Tolerance logic and exception routing. Matching isn't binary in practice — a system needs configurable thresholds for acceptable variance, and a clear path for anything outside that threshold to land in front of a human instead of silently passing or silently blocking.
The extraction accuracy of the underlying OCR layer matters more here than almost anywhere else in AP, because a matching system is only as reliable as the fields it's comparing. A total-amount field that's wrong 10% of the time doesn't just produce one bad data point — it produces false-positive exceptions (real matches flagged as mismatches) and false negatives (real mismatches that slip through), both of which erode trust in the automation and send work back to manual review. (See how field-level accuracy varies by document type →)
Where DoxTract Fits
DoxTract's extraction API covers all three document types in the matching chain — purchase orders, invoices, and delivery notes — through the same template-based extraction engine, which means the PO number, quantities, and pricing fields you need to match against are captured with the same consistent, auditable approach across every document type, not a patchwork of different tools for each.
Because the underlying extraction is template-driven rather than model-inferred, it's also deterministic on stable, recurring vendor formats — the same layout characteristic that makes 3-way matching reliable in the first place. Build a template once for a vendor's PO, invoice, and delivery note format, and every future match against that vendor runs on the same consistent field mapping, without needing to design and maintain each of three separate parsers.
Getting Started
If you're evaluating automation for 3-way matching, start narrow:
Pick your highest-volume vendor — the one generating the most invoices and the most manual matching effort today.
Template that vendor's PO, invoice, and delivery note formats.
Run matching in parallel with your existing manual process for a few cycles to validate accuracy before turning off the manual check.
Expand vendor by vendor, prioritizing by volume and how much manual time each currently costs.
Try DoxTract free — 200 pages a month and 20 lifetime templates is enough to template your top vendor's full document set and see how the matching data holds up before committing further.
