Skip to main content

Receiving and put-away

Inventory accuracy is won or lost at the door. The inbound flow has three separated stages — shipment (it’s coming), receipt (it’s here, counted), put-away (it’s on a shelf, findable) — and the separation exists because each stage can disagree with the last.

1 — Track the inbound shipment

Status moves with POST /api/v1/inbound-shipments/{id}/in-transit and /{id}/arrived. The shipment is the expectation — what the supplier says is on the truck.

2 — Receive against a receipt

The receipt records what was actually in the boxes — 480, not the 500 the PO ordered. Item by item, condition included. Completing the receipt is what updates on-hand inventory and feeds the three-way match on the supplier’s bill.
Never “receive to the PO” — entering ordered quantities instead of counting. It feels faster and it poisons everything downstream: on-hand shows units that never arrived, picks come up short, and the three-way match approves a bill for goods you don’t have. The count at the dock is the only count that’s cheap.
Lot-tracked or serialized items get their lot/serial recorded at this step — see traceability. Damaged goods take "condition": "damaged" and go to quarantine or back to the vendor, not onto a sellable shelf.

3 — Put away

Received-but-not-put-away stock is real but unfindable — it exists in totals and not on any shelf a picker visits. The put-away task closes that gap and stamps the location (GET /api/v1/warehouse-locations/{id}/inventory shows what’s where). Watch the age of open put-aways; a dock full of completed receipts is inventory you own and cannot sell.

When the count is wrong

Two tools, different jobs:
Cycle counts are the habit that replaces the annual full-count nightmare: a few locations a day, biased toward fast movers and recent discrepancies. adjust is for the moment you’re holding the broken item — always with a reason, because a pattern of “shrinkage” adjustments at one location is a finding, not noise.