# Receive goods (/docs/purchasing/receive-goods)

Receiving puts a delivery into stock. Every line is received on its own goods receipt note (GRN) and
its own lot. The default role is Store (Farah Hanim). Open **Inventory > Goods receipts**.

```mermaid
%% title: Receiving a delivery
flowchart LR
  A[Issued purchase order] --> B[Quality sample check]
  B -->|Accepted| C[Quantity check]
  B -->|Rejected| X[Lot rejected, not booked into stock]
  C --> D[Scan the bin]
  D --> E[Issue GRN and store]
```

## Receive a delivery from the receiving panel [#receive-a-delivery-from-the-receiving-panel]

The receiving panel has three steps: **Quality · sample check**, **Quantity check** and **Issue GRN
& store**.

<Steps>
<Step>

Wait for Incoming QC to accept the delivery. The panel says "Quantity check and goods receipt open
once Incoming QC accepts a delivery against an issued purchase order." A line still waiting shows
**Awaiting Incoming QC**. Rejected lots are not booked into stock. See
[Inspect incoming material](/docs/purchasing/incoming-inspection).

</Step>
<Step>

In **Step 2 · Quantity check**, weigh or count each lot against the delivery order. Enter the
quantity in **Counted**. The **Result** column shows `Match`, `Short {n}` or `Over {n}`. For a
weighed item, choose the **Scale**.

</Step>
<Step>

Enter the supplier lot of each line. The panel asks for it with "Enter the supplier lot of each line
before issuing the GRN." If the pack shows them, also pick the **Manufactured** date and the
**Supplier expiry** date.

</Step>
<Step>

In **Step 3 · Issue GRN & store**, scan the QR label on each store bin. The button **Scan \{bin\}**
confirms the put-away place. If you scan the wrong bin, the panel says "Scanned \{scanned\}. This line
goes to \{expected\}."

</Step>
<Step>

When every line matches and every bin is scanned, choose **Sign · Issue \{grn\} & store**. Each lot is
booked into its bin.

</Step>
</Steps>

If the count does not match, the panel says "Counted quantity does not match the delivery order.
Recount, or raise a discrepancy with Purchasing before issuing the GRN."

<GuideStep
  title="Goods receipts on the desktop"
  description="Deliveries waiting for the quantity check, and receipts already posted."
  src="/guide/receive-goods/1.png"
  alt="Inventory goods receipts screen on desktop with the receiving panel and posted goods receipt notes"
  width={1440}
  height={1000}
  callouts={[
    { x: 50, y: 22, caption: "Step 1 to 3 of the receiving panel." },
    { x: 50, y: 40, caption: "Counted quantity and result for each lot." },
    { x: 50, y: 70, caption: "Posted goods receipt notes." },
  ]}
/>

<GuideStep
  title="Goods receipts on the phone"
  description="The same panel on a 375 px screen, used at the dock."
  src="/guide/receive-goods/2.png"
  alt="Inventory goods receipts screen on mobile with the receiving panel"
  width={375}
  height={812}
  callouts={[
    { x: 50, y: 15, caption: "Receiving panel with the step you are on." },
    { x: 50, y: 50, caption: "Lot, item and counted quantity." },
    { x: 50, y: 90, caption: "Scan the bin, then issue the GRN." },
  ]}
/>

## Receive against a purchase order [#receive-against-a-purchase-order]

You can also receive one line from the order itself.

<Steps>
<Step>

Open an **Issued** or **Partially received** order, for example `PO-2026-0514`, and choose
**Receive goods**.

</Step>
<Step>

For the line, enter **Qty** (for example `25 kg`), **Vendor delivery order**, **Lot**, **Bin**,
**Scale** (weighed items) and **Received** (the date). Add the supplier's **Supplier batch**,
**Manufactured** date and **Supplier expiry** from the pack or the certificate of analysis. The table shows **Ordered**, **Received**
and **Outstanding**.

</Step>
<Step>

Choose **Sign · Receive**. The lot goes into quarantine and an incoming inspection is queued. If
Incoming QC already accepted the dock sample, the lot is released into stock.

</Step>
</Steps>

You can receive less than the outstanding quantity. The order becomes **Partially received**.
When everything has arrived it becomes **Received**.

<GuideStep
  title="A partially received order"
  description="The order shows what was ordered, received and is still outstanding."
  src="/guide/receive-goods/3.png"
  alt="Purchase order PO-2026-0514 on desktop with status Partially received and the Receive goods button"
  width={1440}
  height={1000}
  callouts={[
    { x: 80, y: 14, caption: "Receive goods books the next delivery." },
    { x: 50, y: 40, caption: "Ordered, received and outstanding quantity." },
    { x: 50, y: 70, caption: "Goods receipt notes already posted against this order." },
  ]}
/>

## Lots, locations and storage conditions [#lots-locations-and-storage-conditions]

- A new lot waits in **quarantine** until Incoming QC accepts it. Stock waiting for inspection
  cannot be issued to production.
- Goods go to a bin that exists. If the item needs a storage condition and the bin has another, the
  receipt is refused.
- The lot's expiry is the supplier expiry or the receipt date plus the item's shelf life, whichever
  is earlier. The supplier batch and manufacturing date stay on the receipt and the lot, and the
  trace and the device history record show the supplier batch.
- A delivery can join an existing lot only while that lot is still in quarantine in the same bin.
- A posted receipt cannot be edited or deleted. To send goods back to the supplier, raise a
  nonconforming stock disposition. See
  [Inspect incoming material](/docs/purchasing/incoming-inspection#nonconforming-stock).

## If the system refuses [#if-the-system-refuses]

The messages for receiving are in
[Receiving refusals](/docs/purchasing/receiving-refusals#receive-goods). Examples:

- `{po} is {status}. Goods are received against an issued purchase order.`
- `{item} has {qty} outstanding on {po}. Receive that or less, or ask Purchasing to amend the order.`
- `{name} is not on the approved supplier list. Receive from an approved supplier.`

<NextSteps>

<NextStep href="/docs/purchasing/incoming-inspection" title="Inspect incoming material" description="Accept or reject the lot that arrived." />

<NextStep href="/docs/purchasing/purchase-orders" title="Issue a purchase order" description="Where the delivery starts." />

<NextStep href="/docs/purchasing/receiving-refusals" title="Receiving refusals" description="Every message and what to do." />

</NextSteps>
