Review supplier-invoice differences before payment. Request a free first-invoice audit →
LineQueryGuides

Three-way matching explained

Three-Way Matching for Shopify: PO, Receiving, and Supplier Invoice

Three-way matching compares a supplier invoice with the purchase order and receiving record. For a Shopify retailer, the PO shows what the business agreed to buy, the linked inventory transfer shows what staff accepted or rejected, and the invoice shows what the supplier wants paid. Any unresolved difference should be reviewed before payment approval.

Shopify describes three-way matching as an invoice control and separates its current PO and receiving workflows in the same way. Sources: Shopify’s invoice process ↗, purchase orders ↗, and linked transfers ↗.

Two-way versus three-way matching

MethodRecords comparedWhat it can verifyWhat it can miss
Two-way matchPO and invoiceWhether billed item, quantity, and price agree with the orderWhether the goods arrived
Three-way matchPO, receiving record, and invoiceWhether billed terms agree with the order and recorded receiptPhysical receiving errors or undocumented commercial changes

Three-way matching is stronger for inventory purchases because a supplier can correctly invoice the PO quantity when only part of the shipment has arrived. It is not infallible: if receiving is wrong, the comparison will faithfully use a wrong source record.

Shopify recommends prompt shipment checks, documentation of damaged or missing goods, and detailed records. See Shopify’s receiving best practices ↗.

How the three records fit together

Purchase order: the commercial agreement

A Shopify PO can include supplier, destination, products, supplier SKUs, quantity, cost, tax, currency, payment terms, and adjustments. After supplier confirmation, the PO is marked Ordered.

Linked transfer: movement and receipt

Shopify creates a linked inventory transfer from the ordered PO. The transfer carries supplier, product, and quantity details into receiving. Staff can accept or reject quantities and receive multiple shipments.

Supplier invoice: the payment request

The supplier invoice normally arrives outside the Shopify PO record. It may refer to the PO but present lines, units, discounts, fees, and tax differently. It is the third record to compare, not proof that the first two agree.

A practical six-step matching sequence

1. Confirm document identity

Match supplier, PO reference, invoice number, currency, and relevant dates. Stop if several Shopify POs are plausible.

2. Match products

Prefer supplier or Shopify variant SKUs. Use description, pack size, unit, and other evidence only as needed. Keep the result uncertain if no line is uniquely supported.

3. Compare quantities

Compare invoice quantity with the accepted quantity for relevant shipments, not automatically with the full ordered quantity. Record partial, rejected, and remaining quantities separately.

4. Compare prices and adjustments

Check unit, currency, discount, freight, fee, duty, credit, and tax presentation. Confirm any change from the ordered PO with a separate approval record.

5. Recalculate totals

Independently calculate invoice line extensions and subtotal. Reconcile tax, shipping, fees, credits, rounding, and final total.

6. Review exceptions instead of forcing pass/fail

Use explicit exception types: quantity, unit price, tax, duplicate risk, and uncertain line match. Give the reviewer the relevant source lines and calculated difference.

Where spreadsheets fit

Shopify’s Stocky migration guidance ↗ describes building a custom report with ordered and received quantities, exporting it to CSV, and multiplying received quantities by invoice prices. That is a reasonable manual form of three-way matching.

The spreadsheet needs more rules when several receipts relate to one invoice, several invoices relate to one PO, supplier and Shopify SKUs differ, pack and each units differ, or an invoice includes freight, tax, fees, credits, substitutions, or a possible duplicate.

The goal is not to eliminate human review. It is to direct attention to the lines where judgment is required.

What LineQuery adds—and what it does not

LineQuery is being developed as a focused, read-only comparison of a supplier invoice, PO, and optional receiving record. It flags quantity, unit-price, tax, duplicate, and uncertain matches and shows the source line behind each result.

It does not approve or reject an invoice, pay a supplier, send email, alter a PO, correct receiving, or mutate Shopify inventory. The software presents discrepancies and evidence; an authorized person decides what to do.

Use the Shopify supplier-invoice reconciliation checklist to implement the process, or review common supplier-invoice discrepancies before deciding what needs attention.

Illustrative exampleOne line, three records, one review decision
Purchase order · line 424 × $18.00Agreed quantity and unit price
Receiving record · line 424 acceptedPhysical receipt recorded
Supplier invoice · line 424 × $22.00Unit price is $4.00 higher
Invented business details show how a reviewer can trace a unit-price discrepancy to the supporting source lines. LineQuery flags the difference; a person decides what happens next.

Frequently asked questions

What are the three documents in a three-way match?+

They are the supplier invoice, the purchase order, and the receiving record. The invoice requests payment, the PO records agreed terms, and the receipt records what arrived.

Can a small Shopify store use three-way matching?+

Yes. The process can be manual when volume is low: export or view the PO and receiving data, compare the supplier invoice line by line, and record exceptions. A focused checker becomes useful as formats and line volumes become harder to review consistently.

Is a packing slip the same as a receiving record?+

Not necessarily. A packing slip states what the supplier says was packed. A receiving record reflects what your staff counted and accepted or rejected. Keep the packing slip as evidence, but use the verified receipt for the match.

Does a three-way match approve payment?+

No. It is a verification control. A matching result can support an approval process, but an authorized person or system still makes the approval and payment decision.

What should happen when the three records disagree?+

Identify the exact source lines, classify the difference, and route it to the responsible person. Correct the inaccurate source through its normal workflow or obtain a revised invoice, credit, or documented commercial approval.