Shipping & Fulfillment

The Goods Receipt (Receiving) Process: A Step-by-Step Guide

7 min readBy Inventoros Team
The Goods Receipt (Receiving) Process: A Step-by-Step Guide

Every unit you sell starts with a unit you received correctly. Get the goods receipt (receiving) process wrong and the damage shows up everywhere later: phantom stock, oversells, unpaid supplier claims, and a count that nobody trusts. This is the guide to doing it right, with the exact steps, a worked example, and the checks that stop bad stock from entering your system in the first place.

What the goods receipt (receiving) process is

The goods receipt process is everything that happens between a delivery truck arriving and that stock being live, counted, and sellable. It is the moment inbound goods become part of your on-hand inventory.

It sounds simple. Boxes arrive, you put them away. But the job is really verification. You are confirming that what the supplier shipped matches what you ordered, what you agreed to pay for, and what condition you can actually sell. Skip that confirmation and you are just trusting a stranger's packing list, which is how shrinkage and billing disputes quietly eat your margin.

Why getting it right pays off

Receiving is the cheapest place to catch an error. A short shipment caught at the dock is a two-minute note to your supplier. The same short shipment caught three weeks later, after a customer ordered the missing units, is a refund, an apology, and an afternoon of detective work.

Here is the rough cost curve most operations feel:

  • Caught at receiving: minutes. You reject or flag it on the spot.
  • Caught at a cycle count: hours. You investigate, adjust, and guess at the cause.
  • Caught by a customer: a lost sale, a support ticket, and eroded trust.

Accurate receiving is also the foundation for every downstream number. Your reorder points, your available-to-sell figures, and your supplier scorecards are all only as good as the receipt that fed them.

The goods receipt process, step by step

Here is the sequence that works across most warehouses, from a single stockroom to multi-location operations.

  1. Match against the purchase order. Before anything is touched, pull up the PO. Every receipt should tie back to an expected order. If a delivery shows up with no matching PO, that is a red flag, not a bonus.
  2. Verify the delivery at the dock. Check the carrier's paperwork, count the cartons, and inspect for obvious external damage before you sign. Signing "received in good condition" on a crushed pallet hands the carrier a free pass.
  3. Count the actual units. Open and count what is inside, not just the number of boxes. Compare the physical count to the PO quantity line by line.
  4. Inspect quality. Check for damage, wrong variants, expired or short-dated goods, and correct specs. Sellable and delivered are two different tests.
  5. Record discrepancies immediately. Over-shipments, short-shipments, damage, and substitutions all get logged now, while the evidence is in front of you. This note is your leverage with the supplier.
  6. Put away and assign a location. Move stock to its bin or shelf and record where it went. In a multi-location setup, the receipt has to say which site and which bin, or you have created findable-nowhere inventory.
  7. Update inventory records. Post the goods receipt so on-hand quantities go up. This is the step that makes the stock real and sellable in your system.
  8. Close the loop on the PO. Mark the order fully or partially received, and flag anything still outstanding so a backorder does not vanish.

A worked example

Say you run a PO for 500 units of a product at $4 each, a $2,000 order.

The truck arrives with 12 cartons. Your paperwork says the order ships as 10 cartons of 50. Two extra cartons is your first signal to slow down.

You count and find:

  • 480 units of the correct product.
  • 20 units of a wrong variant you did not order.
  • 8 of the 480 are water-damaged and not sellable.

Here is what a clean receipt records versus what a lazy one does:

Field Lazy receipt Correct receipt
Quantity received 500 (matched to PO) 472 sellable
Damaged not noted 8 flagged, photographed
Wrong variant put on shelf 20 rejected, return started
Invoice you approve $2,000 $1,888

The lazy version overstates on-hand by 28 units and pays $112 for goods you cannot sell. The correct version bills the supplier only for the 472 good units, kicks off a return for the wrong variant, and gives you a paper trail if they push back. Same delivery, very different month-end.

Blind receiving vs open receiving

There are two schools on how much to show the receiver.

Open receiving puts the expected PO quantities in front of the person counting. It is fast, and it is fine for trusted suppliers and low-value goods.

Blind receiving hides the expected quantity. The receiver counts what is physically there, and the system compares afterward. It is slower, but it removes the temptation to "confirm" the expected number instead of counting for real. For high-value stock or suppliers with a history of errors, blind receiving catches discrepancies that open receiving rubber-stamps right past.

Most mature operations run open receiving as the default and switch specific suppliers or high-value SKUs to blind counts. You do not need one rule for everything.

Common ways receiving goes wrong

  • Counting cartons, not units. Ten sealed boxes can hide a short pick inside.
  • Posting the receipt before inspection. Now damaged goods are "sellable" in your system.
  • No location on putaway. Stock exists on paper but nobody can find it.
  • Discrepancies logged later, or never. By the time you notice, the supplier's window to make it right has closed.
  • Manual re-keying into three systems. Every hand-copy is a fresh chance to fat-finger a number.

Where Inventoros fits

Inventoros handles the goods receipt process out of the box: receive against purchase orders, record partial and over/short receipts, assign stock to specific bins across multiple locations, and post it all to live on-hand in one pass. It is free, open source, and self-hosted, so the data stays on your own server, and its REST and GraphQL API lets you receive stock programmatically from a scanner app or a supplier feed instead of re-keying by hand. The documentation walks through the full purchase-order and receiving flow.

FAQ

What is the difference between a goods receipt and a purchase order? A purchase order is what you ask for: the supplier, the items, the quantities, and the agreed price, sent before anything ships. A goods receipt is what you actually got, recorded when the delivery arrives. The receipt is checked against the PO, and the gap between the two is exactly what you want to catch.

Can I receive a partial shipment? Yes, and you should record it as partial rather than forcing it to match the PO. Post the quantity that actually arrived, keep the purchase order open for the balance, and track the outstanding units as a backorder so nothing gets forgotten.

What should I do when the delivery does not match the order? Log the discrepancy at the dock, while the goods and paperwork are in front of you. Photograph damage, note short or over shipments line by line, and only approve the supplier invoice for the sellable units you actually received. That record is your leverage if the supplier disputes a credit later.

How long should the receiving process take? For a routine, matching delivery, a few minutes per PO once you have a repeatable checklist. High-value or blind-count receipts take longer because you are counting every unit rather than trusting the carton labels. Consistency matters more than raw speed: a slightly slower receipt that is always accurate beats a fast one you have to reconcile later.