Three-way matching explained: what it is and whether you actually need it

Quick summary

  • Three-way matching checks that the purchase order, the goods receipt, and the vendor invoice all agree on quantity and price before a bill is approved for payment.
  • It catches overbilling, short shipments billed at full quantity, and price changes that were never authorized. Most AP teams that adopt it find their first-month match rate is under 70%, which tells you how often invoices were wrong before anyone was checking.
  • Companies under roughly $2M in annual vendor spend, or without a formal receiving process, usually get more overhead than value from full three-way matching. Two-way matching (PO to invoice) covers most of the risk at a fraction of the friction.
  • Software that supports three-way matching includes BILL (on higher tiers), Tipalti, Stampli, and AvidXchange. QuickBooks and most SMB accounting tools do not support it natively.

Three-way matching sounds like standard accounting hygiene, and in a sense it is. But most small businesses have never implemented it, and a fair number of the ones that do implement it are adding a control they don’t actually need yet.

Here’s what it does, what it costs in process overhead, and how to tell which side of the line your company is on.

What gets matched

Three-way matching compares three documents before an invoice is approved for payment:

  1. The purchase order — what you agreed to buy, at what price, in what quantity.
  2. The goods receipt — what actually arrived, confirmed by whoever received the shipment or the completed service.
  3. The vendor invoice — what the vendor is billing you for.

If quantity and price match across all three documents (usually within a small tolerance, like 2-5%), the invoice auto-approves for payment. If any of the three disagree, the invoice routes to a human for review instead of getting paid automatically.

Two-way matching is the simpler version: it only compares the PO to the invoice, skipping the receipt step. It catches price discrepancies but misses quantity fraud, since there’s no confirmation that what was ordered actually arrived.

What it actually catches

The value of three-way matching becomes obvious the first time you run it against real invoices. Finance teams that turn it on for the first time typically see 20-30% of invoices fail to match cleanly in month one. The most common causes, in roughly descending order of frequency:

Quantity billed exceeds quantity received. A vendor ships 80 units against a PO for 100, but bills for 100 anyway. Without a receipt check, this gets paid in full. This is the single most common finding when companies implement three-way matching for the first time, and it is rarely intentional fraud. It’s usually a shipping error or a billing system that doesn’t reconcile against the actual shipment.

Unauthorized price changes. The invoice price is higher than the PO price, sometimes because of a supplier price increase that was never communicated, sometimes because the wrong price list was used internally.

Duplicate invoices. The same invoice, or a near-duplicate with a slightly different invoice number, gets submitted twice. This is a separate problem from matching, but a matching system with duplicate-detection logic catches it as a side effect.

Invoices for goods that were never received. Rare, but it happens, especially with drop-shipped goods or multi-location deliveries where the receiving confirmation gets missed.

Where the friction comes from

Three-way matching only works if receiving is a real, tracked process. Someone has to log what arrived, in what quantity, against which PO, at the time it arrives. If your receiving process today is “the invoice shows up and someone pays it,” you don’t have the input data three-way matching needs, and turning it on will mean building a receiving workflow from scratch.

This is the actual cost of three-way matching, and it’s underestimated constantly. The software part (comparing three documents and flagging mismatches) is the easy part. The organizational part (getting warehouse staff, project managers, or whoever receives goods and services to log receipts consistently, every time) is where implementations stall.

For service-based businesses, “receipt” is even fuzzier. There’s no physical delivery to log. Some companies substitute a project milestone sign-off or a manager’s confirmation that the work was completed as scoped. This works, but it adds an approval step that didn’t exist before.

When to use two-way matching instead

Two-way matching (PO to invoice, no receipt check) is the right call for most companies under roughly $2M in annual vendor spend, and for any company without a formal receiving process already in place.

It still catches unauthorized price increases and prevents payment on invoices with no corresponding PO at all, which stops a meaningful share of billing errors and outright fraud. What it misses is quantity discrepancies: if the invoice says 100 units at the agreed price and the PO says 100 units at the agreed price, it matches, whether or not 100 units actually showed up.

For companies where the dollar risk of a short shipment is low, or where the same handful of trusted vendors account for most of spend, this gap is tolerable. For companies with high-volume physical goods, drop-shipping arrangements, or vendors they don’t have a long track record with, it’s a real exposure.

Software that supports it

Not every AP tool offers three-way matching, and among those that do, the depth varies.

BILL supports three-way matching on its higher-tier plans, with PO creation and receipt tracking built in. On the base plan, it only does two-way matching.

Tipalti supports three-way matching as a standard feature, aimed at mid-market and larger companies with more complex procurement.

Stampli supports it with a workflow-heavy approach: mismatches route into the invoice’s own comment thread, so approvers can see exactly which line item is in question without leaving the platform.

AvidXchange supports three-way matching with particular strength in construction and real estate, where PO-based procurement is standard and matching against job-cost codes matters.

QuickBooks Online, on its own, does not support three-way matching. It can track POs, but reconciling them against receipts and invoices requires a bolt-on AP automation tool. See our BILL review and Tipalti review for a closer look at how each platform handles matching in practice, or our purchase order software guide if you’re still building out the PO side of this workflow.

Frequently asked questions

What tolerance should we set for quantity and price mismatches? Most companies start at 2-5% tolerance on price (to absorb minor rounding or unit conversion differences) and zero tolerance on quantity, meaning any quantity mismatch routes for review. Loosening the quantity tolerance defeats much of the point, since quantity discrepancies are the most common and highest-value finding.

We don’t have a formal receiving process. Where do we start? Start by having whoever physically takes delivery, or whoever confirms a service was completed, log the received quantity against the PO number in a shared spreadsheet or your AP tool’s receiving module. This doesn’t need to be sophisticated at first. The goal is just to create the data point that three-way matching needs to compare against. Most companies can get a workable version running in 2-4 weeks.

Does three-way matching slow down payment? For invoices that match cleanly, no. They auto-approve exactly as fast as two-way matching would. The slowdown only happens for invoices that fail to match, which route for manual review instead of paying automatically. Since 20-30% of invoices commonly fail on first implementation, expect a temporary increase in manual review volume that decreases as vendors adjust to the tighter checking.

Is three-way matching worth it if we only have 5-10 vendors? Usually not, unless those vendors ship high volumes of physical goods with meaningful per-unit value. With a small, trusted vendor base, the more efficient control is a periodic spot-check (reviewing a sample of invoices against receipts quarterly) rather than building a full matching workflow for every single invoice.