***

title: Inbound Movements
description: Track incoming shipments, receive expected inventory, and log unexpected arrivals.
---------------------

For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.esoapp.co.uk/guides/movements/inbound/llms.txt. For full documentation content, see https://docs.esoapp.co.uk/guides/movements/inbound/llms-full.txt.

# Inbound Movements

Inbound Movements allow you to manage the "Receipt" side of your logistics. This feature tracks trucks as they arrive at your facility and provides a streamlined way to transition items from `expected` to `received` status.

To access this area, navigate to **Movements** in the main sidebar and click the **Inbound** toggle at the top of the page.

***

## 1. Creating a New Inbound Movement

When a truck arrives with a shipment, you start by creating a movement record to track the vehicle and its contents.

### Step 1: Vehicle & Reference Details

Enter the core tracking information for the arrival:

* **Truck Number & Company:** Identifying information for the carrier.
* **Reference/BOL Number:** The primary tracking number from the supplier's paperwork.
* **Received At:** The date and time the vehicle arrived (defaults to current time).
* **Location:** Select the specific warehouse or yard receiving the goods.

### Step 2: Selecting Items

You can add items to a movement in two ways:

1. **Receive Expected Items:** Select from inventory already in the system with an `expected` status. This is ideal for shipments previously logged via CSV upload or API.
2. **Add New Inventory:** If a truck arrives with items not yet in the system, you can create new inventory records on the fly. You will be prompted to enter the description, part number, and any [Custom Fields](/guides/inventory-fields) required by your organization.

***

## 2. Managing the Inbound Lifecycle

Inbound movements move through a specific set of statuses to track both the **Truck** and the **Inventory**.

### Truck Statuses

* **Arrived:** The truck is at the gate or dock.
* **Unloading:** The physical process of moving goods into the facility is underway.
* **Unloaded:** All cargo has been removed from the vehicle.
* **Departed:** The vehicle has left the facility.

### Inventory Statuses

* **Received:** Items have been offloaded but are still sitting in the receiving area.
* **Put Away:** Items have been moved to their final storage location and are ready for outbound Packing Lists.

***

## Permissions for Inbound

Access to Inbound Movements is governed by specific permission keys. If a user cannot see the Inbound toggle, ensure their role or [overrides](/guides/permissions) include:

* `inbound_movements.read`: View the list of inbound shipments.
* `inbound_movements.create`: Start new inbound records.
* `inbound_movements.update`: Change truck statuses or add items to an existing movement.

***

<Callout intent="info">
  **Pro-Tip:** When receiving "Expected" items, the system automatically creates an **Inventory
  Transaction** record. This provides a full audit trail of exactly when your "On-Hand" counts
  increased.
</Callout>

<Callout intent="warning">
  **Duplicate Prevention:** The system checks for duplicate Reference Numbers within the same
  24-hour window to help prevent accidental double-entry of the same shipment.
</Callout>