3-way matching

3-way invoice matching with AI, line by line

Check every supplier invoice against the purchase order and the goods receipt, line by line, before it is paid.

A 92-second product tour of InvoiceIQ by Analytos: reading a supplier invoice, matching it, and posting it to the ERP.

The question: How do I automate invoice matching against the PO and the goods receipt?

The short answer

3-way matching checks a supplier invoice against the purchase order and the goods receipt before it is paid: the right supplier, the agreed price, and no more than was received. InvoiceIQ AP by Analytos automates it line by line with your tolerances, composes the bill from the receipt so over-billing is impossible, and holds anything unproven with a plain-English reason.

Match report3-way · pass
Purchase orderPO-2026-0412
Item receiptIR-9931
Vendor invoiceGX-88412
  • PO exists
  • Vendor identity
  • Price within 2%
  • Quantity ≤ received
  • Not already billed
Illustrative screen with demo data

How it works

  1. Step 1

    Find the order

    The PO number read from the invoice is normalised and looked up live in the ERP.

  2. Step 2

    Check the order

    The order must exist, be billable, belong to the same vendor, and not already be fully billed.

  3. Step 3

    Pair the lines

    Invoice lines are paired to order lines on description, quantity, rate and part number.

  4. Step 4

    Check price

    Each invoice rate is compared to the order rate within your tolerance.

  5. Step 5

    Check the receipt

    Billed quantity may not exceed what was received, line by line.

  6. Step 6

    Decide

    Blocked beats review beats warn beats pass. The verdict and every reason go on the match report.

The checks, in plain English

CheckWhat it asks
PO existsDoes the PO number on the invoice resolve to a real order?
Reference is plausibleIs it actually a PO number, not a receipt, invoice or sales-order code?
Vendor identityIs the invoice from the vendor on the order?
Price agreementIs each line rate within tolerance of the order rate?
Line identityWhich order line does each invoice line belong to?
Order is billableIs the order approved and not blocked, with prepayments cleared first?
Not fully billedHas this order already been billed in full?
Goods receivedIs there a receipt for the lines being billed?
Quantity ≤ receivedIs the billed quantity within what actually arrived?

Where manual matching breaks, and what changes

  • Partial receipts: the bill is composed from the receipt, so only received goods are billed.
  • Late receipts: the bill waits in Pending Receipt and advances itself when the receipt is logged.
  • Price drift: a line above tolerance is flagged as a variance instead of being paid.
  • Freight and tax: placed by rule on the right sublist and kept out of the received-goods ceiling.

Exceptions, and what happens to each

SituationWhat InvoiceIQ does
Price above toleranceFlagged as a variance; the bill goes to review with the rate difference stated.
Goods not yet receivedHeld in Pending Receipt; advanced automatically once received.
PO already fully billedRaised as a possible duplicate; never billed a second time.
Wrong vendor on the POBlocked with the mismatch named.
PO number unreadableRepaired against the invoice’s own printed text where possible; otherwise sent to review.

Controls

  • Every check has its own tolerance and severity: block, review or warn
  • A switched-off check still appears on the report, marked not judged
  • The match report is stored permanently and written onto the posted bill in the ERP
  • The composed bill must equal the invoice or it does not post

Is this a fit?

A good fit when

  • You receive physical goods against purchase orders
  • Receipts are recorded in the ERP
  • You want tolerances set per vendor or company-wide

Not the right tool when

  • Services and subscriptions with nothing to receive (use 2-way)
  • Invoices with no purchase order (use the non-PO tier)

Evidence

  • CapabilityNine named checks, tolerances you set, and a stored match report on every attempt.
  • CapabilityThe bill is composed from the receipt, consuming its lines.

How we label claims: evidence and claims policy.

Frequently asked questions

  • 2-way compares the invoice with the purchase order. 3-way adds the goods receipt, so you only pay for what arrived.

  • Yes. Policies resolve in order: the choice made at posting, then the vendor default, then the company default, then the system default of 3-way.

  • The bill waits in Pending Receipt. A nightly job advances it once the receipt is logged.

  • No. AI reads the document. The matching decision is made by named checks with your tolerances, the same way every time.

  • Yes. The match report is written onto the posted bill, so both systems show the same exceptions.

See InvoiceIQ AP on your own documents

InvoiceIQ AP by Analytos: ai accounts payable automation. A walkthrough starts with your real supplier invoices, purchase orders and receipts.