---
title: "Receive deliveries"
description: "Receive goods against a purchase order by scanning serial numbers, record partial deliveries and backorders, and reverse a receipt that was wrong."
url: "https://support.outpostplatform.com/procurement/receiving/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "Receive against a purchase order: scan one serial per line with a live count, duplicates and serials already in stock refused, quantities for unserialized lines. Partial receipts leave the rest due; backorders show on the order. Serialized units become assets. Drop-ship receipts stock nothing. Reversal needs a reason and is refused once a unit left stock."
availability:
  plans: ["home-lab", "essentials", "enterprise", "msp"]
  permission: "procurement:receive"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/procurement/receiving.md"
license: "CC BY 4.0"
---

# Receive deliveries

Receiving records what arrived against a purchase order. It puts the goods
into a stock location, captures every serial number, and turns each
serialized unit into an asset. This page covers receiving with a barcode
scanner, partial deliveries and backorders, drop-ship deliveries, and
reversing a receipt.

## Before you begin

- Receiving and reversing receipts needs `procurement:receive`.
- The purchase order has been sent by email or submitted to a distributor.
  An approved order that was never ordered cannot be received.
- A USB or Bluetooth barcode scanner that types like a keyboard and ends each
  scan with Enter works without setup. You can also type serial numbers.

## Receive a delivery

1. Open the purchase order from **Procurement** > **Purchase orders**, and
   select **Receive**.
2. In **Into location**, choose where the goods go. The **Default receiving
   location** from **Procurement** > **Settings** is chosen for you.
3. Optionally, enter the **Packing slip** number.
4. For each line that tracks serial numbers, scan each unit into **Serial
   numbers**. Each scan lands on its own line, and the count under the box
   shows how many you have scanned of how many are still due.
5. For each line that does not track serial numbers, enter the **Quantity
   received**.
6. Select **Receive everything**, or **Receive these, leave the rest due**
   when only part of the order arrived.

When a distributor has already reported serial numbers for a shipment,
they are filled in for you. Check them against the boxes before you receive.
Serials already received on an earlier receipt are left out.

Freight and fee lines are not received.

### Serial number rules

| Rule | What happens |
| --- | --- |
| One serial per unit | A serialized line's quantity is the number of serials you scan, always a whole number. |
| More than is still due | Refused: **Only** followed by the quantity still due. |
| The same serial scanned twice | Refused before anything is posted: **Scanned twice:** followed by the serial. |
| A serial already in stock | Refused: **One of these serial numbers is already in stock.** |
| Spaces and letter case | Leading and trailing spaces are trimmed, and serials are compared without regard to case. |

A line that does not track serial numbers can still record serials, as many
as the quantity, but they create no assets.

## What receiving does

Each receipt gets a number, such as `RCV-1001`, and appears under
**Receipts** on the purchase order.

- The stock on hand at the location goes up, at the line's unit cost. The
  item's average cost is updated. See
  [Inventory](/procurement/inventory/#how-stock-is-costed).
- Each serialized unit becomes an asset **In stock** at that location, with
  its serial number, cost, and purchase order. When an endpoint reports the
  same serial number, the asset links itself to it. See
  [Assets](/procurement/assets/#how-assets-link-to-endpoints).
- The purchase order moves to **Partly received** or **Received**.

## Partial deliveries and backorders

A receipt can be any part of what is due. The rest stays on the order as
**Still due**, and you receive it when it arrives.

When a distributor reports a line as backordered, the purchase order shows it
under **Backorders**, with the expected date when the distributor gives one.

To stop waiting for the rest, select **Close** on the purchase order. Closing
cancels what is still due and clears the backorders.

## Drop-ship deliveries

A purchase order that drop ships to a client stocks nothing. The receive page
says so, and has no **Into location**. Record the units and serials as usual.
They become assets in your register until the sales order delivers them, when
they move into the client's register as **Deployed** and the delivery is
invoiced. The receipt shows **Waiting for the sales order to deliver** until
then, and **Delivered to the client** after.

## Reverse a receipt

Reverse a receipt that was recorded against the wrong order, location, or
quantity.

1. Open the receipt from the purchase order's **Receipts** card.
2. Select **Reverse**.
3. In **Why**, enter the reason. It is kept on the receipt.
4. Select **Reverse the receipt**.

The stock comes back off the shelf, and the assets the receipt created are
removed. The purchase order's received quantities go back down.

A reversal is refused when:

| Message | Cause |
| --- | --- |
| **An asset from this receipt has already left stock, so it cannot be reversed.** | A unit was delivered, deployed, or otherwise moved out of stock. |
| **There is not enough stock on hand to do that.** | Taking the stock back out would leave less than zero at the location. |
| **This receipt has already been reversed.** | It was reversed before. |

Each receipt can be reversed once. Receive the delivery again afterwards if
it was right but recorded wrongly.

## Verify

- The purchase order shows the new receipt and the received quantities.
- **Inventory** > **Stock levels** shows the new stock at the location.
- **Assets** lists each serialized unit as **In stock**.

## Next steps

- [Supplier bills and the 3-way match](/procurement/supplier-bills/)
- [Deliver a sales order](/msp/sales-orders/#deliver-the-goods)
