Skip to content

Procurement Software | 3-Way Matching

PO + GRN + Invoice matched at the line. 97% auto-match. Variance triage built in.

Every B2B bill matched to its PO and GRN at the line level. Configurable tolerance per line. Exact matches release for payment without intervention. Variances surface as a triage queue with the three documents side by side.

Three Way Matching

How most teams do 3-way match today

3-way match: the manual chase that holds up payments.

A vendor bill arrives. Before payment can release, it has to match a PO and a GRN. The current pattern in most teams:

  • AP team opens the bill, the PO and the GRN in three tabs. Eyeballs the match. Misses fractional quantity differences.
  • GRN was posted in the accounting system; the PO was raised in a procurement spreadsheet. The two don't talk to each other. Manual cross-reference.
  • Variance discovered. AP team emails procurement. Procurement emails the warehouse. Warehouse pulls the photo from a folder. Two days lost.
  • Bill payment delayed. Vendor follows up. Relationship damaged over a two-unit quantity mismatch nobody looked at.

The 3-way match is a control, not a chore. But the tooling makes it a chore at scale.

What the system does

Capability, input, output.

  • Match engine

    Input
    Bill line + PO line + GRN line
    Output
    Match status with tolerance
  • Tolerance config

    Input
    Amount, qty, % per category
    Output
    Auto-clear within / hold above
  • Variance queue

    Input
    Held bills
    Output
    Triage queue with PO/GRN/Invoice side-by-side
  • Photo evidence

    Input
    GRN photos
    Output
    Surfaced at variance triage
  • Auto-release

    Input
    Full-match bills
    Output
    Payment scheduler queue entry
  • Match rate analytics

    Input
    Historical match data
    Output
    Rate per vendor, category, period

Compliance + integrations

3-way match as internal control.

The 3-way match is the procurement-to-payment control, and no statute here mandates it, which is exactly why it gets skipped. The reason to run it is that it is the only check standing between an approved bill and a payment for goods nobody confirmed arriving.

Regulations we work within

  • Internal controls

    The match is the control between an approved bill and a payment, evidenced per line.

  • Audit trail

    Every variance, override and its reason retained against the bill.

Connects to

  • Xero PO + GRN + bill sync
  • SAP Business One Native connector

3-Way Matching FAQ

What buyers ask.

What tolerance should we set?

Default tolerance is a small absolute amount plus 0.5% relative, with a quantity tolerance of one unit. Strategic high-volume vendors get tighter, long-tail vendors looser, configurable per category and per vendor. Worth setting deliberately: too tight and your AP team reviews rounding, too loose and the tolerance becomes the leak.

A vendor short-shipped 2% but invoiced for full. What happens?

The match flags a quantity variance (received < ordered). The bill holds; the variance triage surfaces the PO line, the GRN line and the invoice line. The AP team contacts the vendor for a credit note for the under-supplied quantity. The bill releases for the received amount.

No PO, just an invoice. How is that handled?

A bill without a PO is flagged as "missing-PO". Configurable per category (some categories like utilities don't use POs). For PO-required categories, the bill holds with a "create retroactive PO or reject" action.

How does the auto-match rate scale?

Mature procurement teams typically reach 95-97% auto-match. The remaining 3-5% is genuine variance (short ships, price revisions, partial delivery) that needs human judgement. The triage queue keeps that small.

Run last quarter's bills through the 3-way match.

Connect one entity, free. Upload last quarter's POs, GRNs and bills. The auto-match rate, the variance queue and the payment release path show up before any sales call.