Purchasing & Supplier Management
Three-way matching when your invoice arrives before your inventory does.
Handling a supplier invoice that arrives before the inventory does.
Last updated September 16, 2026
The invoice is not a receipt. FOB China, the factory bills when goods leave the gate. Title often moves that day. Your 3PL will not goods-receive that carton for six to eight weeks. Do not pay the full commercial invoice against a missing receipt.
The GRC file is your receipt
Three-way still needs the PO, the receipt, and the commercial invoice. The receipt may never be your dock scan. The factory ASN is a plan. The 3PL GRC file is the receipt. Until that file posts, park the bill as invoiced-not-received and accrue it. Do not clear AP. Do not invent a dummy receive so the match turns green.
Keep the clearing buckets apart
Received-not-invoiced is the other pile: units you have, no bill yet. Keep them apart. One clearing bucket will hide a boat you paid for and a dock you have not been billed for. Age invoiced-not-received by factory-gate date, not by the AP due date. A bill can be due and still unmatched. Due is a cash question. Matched is a quantity question.
Why a proforma is not the match
A proforma is not the match document. It is a quote or a deposit request. Matching a proforma to the PO so AP can pay invents a receipt you do not have. Pay a deposit as prepaid on that PO. That cash is not this three-way. Three-way the commercial invoice when it arrives, against the GRC that arrives later.
Pay what the GRC counted
Partials are normal. Forty of one hundred cartons land this week. Match and pay the forty. Hold the rest of the invoice against open inbound qty. When the 3PL counts 980 of 1,000, AP honors 980. The short is a credit or a claim, not a close-enough click. Do not override the 3PL count because the factory PDF says 1,000. Do not book a dummy receipt to complete the match and take an early-pay discount. The discount is not worth a quantity lie. Leave the PO line open for the missing units. How that line stays open is a receiving question. Here the rule is pay what the GRC counted.
The physical match lives at the 3PL. You still own the three-way. Wait for their GRC, match qty to that file, then release cash for what landed. Freight and duty bills are a different clock. They true-up landed cost after GRC. They do not unlock the goods invoice, and they are not a reason to skip the park.
This is the invoice-first clock, not the generic match. Quantity and price still have to agree once the GRC exists. Until then: park. Accrue. Wait. Then match. Then pay what landed.
Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.
You are AP for a brand that is billed FOB China weeks before the 3PL receives. Here is: po_id, sku, po_qty, invoice_id, invoice_type (proforma/commercial), invoice_qty, invoice_date, factory_gate_date, 3pl_grc_qty, 3pl_grc_date, paid_qty, paid_amount, parked_inr (y/n), dummy_receipt (y/n). [paste] Produce: 1. Invoices paid (or cleared) with no 3PL GRC, or matched to a proforma or a factory ASN. 2. Partials that should pay landed qty only and hold the rest against open inbound. 3. 3PL count shorts (GRC < invoice) that AP must honor, not override. 4. Dummy receipts or early-pay discounts used to fake a three-way. The GRC file is the receipt. Freight/duty is a different clock. Do not pay for units still on the water.
Explore this in Fulfil
More on Purchasing & Supplier Management
How do I forecast demand and build a purchase plan for a seasonal Shopify brand?
Building a purchase plan for a seasonal brand from a week-by-week demand forecast.
What is three-way matching and how do I do it for ecommerce purchase orders?
What three-way matching is and how to run it on your ecommerce purchase orders.
Handling partial receipts and short-shipments cleanly.
Keeping a PO clean when a supplier ships part of the order or comes up short.
See it run on
your data.
Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.