Our controller once held a supplier's invoice for two weeks because it failed the three-way match. Nothing was wrong with the purchase order or the invoice. The receipt was in a stack on my desk, waiting for someone to key it in, and the someone was me. The supplier called the plant manager, the plant manager called me, and that was the last time receipts waited on my desk.
The match did exactly what it is built to do. It would not pay for goods the system said had not arrived. A three-way match compares three documents before a supplier invoice gets paid. Two of them come from a desk: purchasing types up the purchase order, and the supplier sends the invoice. The receipt gets made at the receiving dock, by whoever is standing next to the pallet.
I started out on that side, as a receiving clerk. The receipt is the leg of the match I know best, and the first one I check.
What is a three-way match?
A three-way match is a check accounts payable runs before paying a supplier invoice. AP compares the invoice with the purchase order and with the receiving record, and approves payment when the items and quantities agree across all three and the billed price matches the PO. The point is to pay only for goods the business authorized and actually received.
You will also see it written as "3-way match" or "three-way matching". AccountingTools' definition calls it a payment verification technique.
The three documents in a three-way match
| Document | Who creates it | Where it usually lives | What it proves |
|---|---|---|---|
| Purchase order | Purchasing | The ERP | What you agreed to buy, how many, at what price |
| Receiving record (receiving report, or receipt) | The receiving dock | Posted to the ERP from the dock, or on paper until someone keys it in | What actually arrived, how many, and in what condition |
| Supplier invoice | The supplier | Accounts payable | What the supplier is billing you for |
The PO and the receipt come from different people on purpose. Steven Bragg makes the case in a 2019 AccountingTools podcast on receiving controls: keep purchasing and receiving separate, so the person who orders goods is not the person who signs for them. Otherwise one person can order something, collect it at the dock and take it home.
At the smaller places I have worked, the buyer sometimes signed for the truck anyway, and then someone else did the count.
How a three-way match works, step by step
The match starts in purchasing and ends in AP, with the dock in the middle.
- Purchasing issues the purchase order in the ERP, where the receiving dock can see it.
- When the shipment arrives, receiving finds the PO from the number on the shipment, then counts and inspects the delivery against it.
- Receiving records what came in, how many, its condition, and any shortage, damage or discrepancy.
- When the supplier's invoice arrives, accounts payable compares it with the PO to check the price, and with the receipt to check the quantity.
- If all three agree, AP pays. If they don't, AP contacts the supplier, and the fix may be a revised invoice or a credit memo.
The match doesn't always have to be exact. Some businesses let AP approve an invoice that lands within a few percent of the PO, according to AccountingTools.
I always knew month-end was close, because that was when our controller came out to the dock asking about receipts. Accounting may use receipts that have no invoice yet to accrue for bills that have not arrived, so a receipt that never got entered can throw off the close.
Two-way vs three-way match
| Match | Documents compared | What it confirms | Weak spot |
|---|---|---|---|
| Two-way | Invoice and purchase order | The billed price | Paying for a quantity the supplier billed incorrectly, because nothing checks what arrived |
| Three-way | Invoice, purchase order and receiving record | The price, plus the quantity and condition received | Slower, and it stalls when the receipt is missing |
The third leg is what makes the three-way match slower, and it is also the leg that goes missing. On the matches I have chased, the PO and the invoice were usually in the system already, and the receipt was still on a clipboard somewhere.
Common three-way match errors on the receiving side
When an invoice won't match, I look at the receipt first. Here is how I have seen receipts go wrong.
A late receipt
A late receipt is the one from my desk. The count is done, on paper, and it gets keyed in hours or days later, so AP is holding an invoice for goods already on the shelf. Suppliers get annoyed, and AccountingTools adds that delays like this can cost the business its early payment discounts. Enter the receipt the day the truck comes, or better still, scan it at the dock.
A receipt copied from the packing slip
At the metal parts plant where I started, the PO printout was always in someone's truck, so I learned to receive off the packing slip. It took me a year to figure out I was copying the supplier's mistakes into our system. A receipt copied from the packing slip agrees with the supplier's paperwork by design, so the match passes on a number nobody counted.
I count first now and check the packing slip after.
A receipt posted against the wrong line or the wrong PO
Two open POs carry the same item, or the shipping mark carries the wrong PO number, and the receipt gets posted to a line the invoice is not billed against. Our post on GS1 lot and serial tracking shows a carton that arrived labeled with the wrong PO. Receive against the PO line, not just the PO number.
A receipt that is silent on shortages and damage
If nothing on the receipt says three cases arrived crushed, AP has nothing to dispute with the supplier.
The quieter version is a partial shipment received as complete. We did that once to clear the dock. The backorder showed up a week later with nowhere to go in the system, AP saw two invoices against one closed line, and they stopped paying that vendor while we sorted it out. Write the damage on the receipt. A partial is a partial: record it that way and leave the line open for the rest.
Goods stored before they are logged
Bragg's podcast puts the rule in one line: "tagging and logging come before storage." Goods put away without a record are on the shelf and missing from the system, and the invoice for them has nothing to match against.
Most of the unmatched invoices I have chased started at the dock, and the problem doesn't stay there. The same bad receipt turns up again later as a mispick, because picking can only be as accurate as what receiving put on the shelf.
What a good receiving record contains
Call it a receiving report, a receipt or a receiving record; it is the dock's half of the match. AccountingTools lists what a receiving report should include. I use that list plus one line:
- The date and time the delivery arrived
- The carrier that delivered it
- The purchase order number it was received against
- Each item, and the quantity actually counted
- The condition of the goods, including any shortage, damage or discrepancy
- Who received it
The extra line is the last one, who received it. When a count gets questioned a week later, a name saves a good deal of walking around asking.
AP matches against that record, and the buyer needs it when a supplier disputes a shortage. Number the reports in sequence, as AccountingTools suggests, and a missing one stands out.
On a scanned dock, the label ties the carton to that record. Our post on barcode basics lists what the record captures: the item, the purchase order, the supplier, the lot or serial number where you track it, and the date it landed. If you hold foods on the FDA's Food Traceability List, you have one more reason to get it right: under FSMA 204, receiving is a Critical Tracking Event, covered in our post on receiving under FSMA 204.
Receiving against the purchase order at the dock
On most of the docks I have worked, the warehouse receiving process started on paper: a printed copy of the PO, a count, a signature, and a stack of receipts keyed in later by whoever had time. Whoever keyed them at the end of the shift was usually reading someone else's handwriting. A 7 that looks like a 1 goes in as a 1.
Bragg comes at it from the finance side and lands in the same place: get receiving data entered as soon as possible. The best approach he names is scanning barcodes on the delivery.
With scanning, the receiver scans the PO first, or the advance ship notice where the supplier sends one. An advance ship notice (ASN) is the supplier's message, sent ahead of the truck, listing what is on it. Then the receiver scans each item or pallet, and the system checks each scan against the PO and, if there is one, the ASN. A problem can be caught at the dock while the carton is still there.
When a scan doesn't match, set the goods to one side, note the problem on the receipt and contact the buyer before anything is put away. If it is a shortage, I also write it on the driver's paperwork before he pulls out.
Once the receipt is recorded, the system tells the operator where to put each item, so the record exists before the goods reach a shelf. If you are comparing how warehouse software connects to your ERP, ask whether each receipt posts as it is scanned or waits for a scheduled sync. That gap is how far your ERP runs behind the dock.
Endpoint Cloud checks each receipt against the PO and the advance ship notice, then sends the data back to your financial system. Purchasing still happens in your ERP, and the invoice match happens in your ERP or AP software. The warehouse system's job is getting the receipt right.
Three-way match FAQ
What if goods arrive without a purchase order?
Whether to accept the delivery depends on your policy. In a 2019 AccountingTools podcast on receiving controls, Steven Bragg says receiving staff should be authorized to reject a delivery that no PO covers. He also names the catch: a rush order authorized verbally looks just like an unauthorized one. So a receiving manager may try to track down whoever ordered it before turning the delivery away.
Does every invoice need a three-way match?
No. AccountingTools notes that businesses often exclude small-dollar and recurring invoices, and that some purchases can move to procurement cards, which have no purchase order at all. Where I have worked, the full match ran on what came across the receiving dock. The monthly service bills got a two-way check.
How do you resolve a three-way match discrepancy?
Start with the receiving record. Was the delivery counted, or copied from the packing slip? Was it posted against the right PO line, and does it note any shortage or damage? If the receipt holds up, AP contacts the supplier, and the fix may be a revised invoice or a credit memo.
Can a three-way match be automated?
Yes, with limits. AccountingTools notes that automated matching solutions require a fully integrated ERP system, and that even these kick out some transactions for a person to investigate. The software also only compares the receipt it is given. If the count was copied from the packing slip or keyed against the wrong line, the software will match that wrong number too.


