Free Tool

3-Way Match Checker: PO vs Invoice

Upload a purchase order and your draft invoice. See exactly which fields and line items match before you send it, so a mismatch doesn't get your invoice bounced.

Upload the PO and invoice for an AI 2-way match, or add goods-receipt quantities below for a full 3-way match.

Zero file storageBoth files are processed in memory and never written to disk or saved on our servers.
One check, no signupUpload both documents and get a field-by-field comparison immediately - 2 free checks a day, no account.

Purchase Order

PDF, PNG, JPEG, or WEBP - up to 10MB

Invoice

PDF, PNG, JPEG, or WEBP - up to 10MB

2 free checks a day, no email needed - 5 a day once you share your email.

Manual 3-way match: PO, goods receipt, and invoice

Enter what was ordered, what was received, and what was billed. Each line is checked against your quantity and price tolerances, and you see how much of the invoice is safe to approve and how much to hold.

Documents

Line items

ItemPO qtyPO priceReceivedInv qtyInv priceResult
✓ Match
Billed 30, received 25
Price 5.0% above PO

Result

Verdict

Hold for review

2 exceptions, 0 warnings

Invoice total

$11,900.00

Safe to approve

$11,120.00

Received, ordered, and at PO price

Hold / dispute

$780.00

Ask for a credit note or corrected invoice

Building the invoice from a PO for the first time? Try PO to Invoice, or build one from scratch with the Invoice Generator.

What a 3-way match checks

A 3-way match compares three documents before an invoice is paid: the purchase order (what the buyer agreed to buy and at what price), the goods receipt (what actually arrived), and the supplier's invoice (what the supplier is asking to be paid). The invoice is approved only when quantity and price agree across all three, within the tolerances the buyer's AP team has set.

For a supplier, this is the check your invoice goes through inside the customer's ERP. Running it yourself before sending is the cheapest way to avoid a rejected invoice and a 30-day delay while it is corrected.

MatchDocuments comparedTypically used for
2-wayPO and invoiceServices, subscriptions, anything with no physical delivery
3-wayPO, goods receipt, and invoicePhysical goods or measurable deliverables
4-wayPO, goods receipt, inspection report, and invoiceRegulated or quality-checked goods (manufacturing, pharma)

Worked example: what gets approved and what gets held

PO 4500012345 with three lines, a 0% quantity tolerance and a 2% price tolerance. The invoice total is $4,315.00. This is the same rule the manual checker above applies: pay for no more than was both ordered and received, at no more than the PO price plus tolerance.

LinePOReceivedInvoicedResultApproveHold
Widgets100 x $10.0095100 x $10.00Billed 5 more than received$950.00$50.00
Brackets20 x $50.002020 x $50.75Price 1.5% above PO, within tolerance$1,015.00$0.00
Motors10 x $200.001010 x $230.00Price 15% above PO$2,040.00$260.00

$4,005.00 can be approved and $310.00 is held. The widgets line is capped at the 95 units received. The motors line is paid at the PO price plus 2% ($204.00 a unit) until the supplier sends a credit note or the buyer approves the new price. In most ERPs the whole invoice is blocked until both lines are resolved, which is why one wrong line delays payment on all of it.

Setting tolerances

Tolerances decide how strict the match is. Quantity tolerance is usually 0% for discrete items and a few percent for goods sold by weight or volume, where the delivered amount naturally varies. Price tolerance is often 1 to 5%, sometimes with an absolute cap (for example 2% or $50, whichever is lower) so a small percentage on a large line does not let a big overcharge through. ERPs such as SAP store these as tolerance keys per company code, so the same supplier can be held to different limits by different customers.

As a supplier, assume a tight tolerance. Bill exactly the PO price, bill only what has been delivered (or what the customer has receipted), and quote the PO number and line numbers exactly as they appear on the PO.

Why invoices fail the match

The usual causes are an invoice raised before the goods receipt is posted, a price increase that was agreed by email but never added to the PO, a partial delivery billed in full, a missing or mistyped PO number, and line descriptions that do not map to PO lines. Each one is cheap to catch before sending and slow to fix after the customer's AP team has rejected the invoice. For how this fits the wider process, see the order and contract stage and how to convert a quote into an invoice.

Frequently asked questions

What does this catch that I might miss manually?

A mismatched PO number, a different buyer or vendor name, a quantity or unit price that changed between the PO and the invoice, or a line item on one document that is missing from the other. These are the most common reasons a client’s AP department rejects or delays an invoice.

Is this a 3-way match tool?

Yes. Upload the PO and your invoice for an AI 2-way check of PO number, names, quantities, and prices. For a full 3-way match, add the goods-receipt quantities in the manual checker further down the page, which applies your quantity and price tolerances line by line.

Does this replace checking the invoice manually?

No - treat it as a fast first pass. Line items are matched by description or SKU, which can occasionally mismatch wording that a human would read as the same item. Always review flagged rows yourself before sending.

Is this check free?

Yes, 2 free checks a day with no signup, 5 a day once you share your email. No credit card.

Is my PO or invoice data stored anywhere?

No. Both files are sent for extraction and are not stored - nothing about them (image or extracted data) is saved on our servers. Only anonymous usage metadata (timestamp, file types) is logged to enforce the daily limit.

© 2026 RevExOS
All ToolsBlogContact