***

title: Packing Lists
description: How packing lists work — creating them, adding items, and moving them through the shipping lifecycle.
---------------------

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/packing-lists/llms.txt. For full documentation content, see https://docs.esoapp.co.uk/guides/movements/packing-lists/llms-full.txt.

A **Packing List** is a document that groups one or more inventory items together for a specific pickup and delivery. It tracks the full journey from preparation through to final delivery and proof-of-delivery (POD).

## Packing list code

Every packing list is automatically assigned a unique code when it is created. The code is derived from its project: `{PROJECT_CODE}-{NNNN}`, where `NNNN` is a zero-padded sequence number per project (e.g. `EU-Q2-0001`, `EU-Q2-0002`, …).

## Lifecycle statuses

Packing lists move through a defined set of statuses:

```
created → packing → shipped → delivered → closed
```

| Status      | Meaning                                                                                                 |
| ----------- | ------------------------------------------------------------------------------------------------------- |
| `created`   | The packing list has been created but packing has not yet started. Items can still be added or removed. |
| `packing`   | Items are being picked and packed. Edits are still allowed.                                             |
| `shipped`   | The list has been finalised and the goods have left the warehouse. No further item edits are allowed.   |
| `delivered` | Goods have been delivered to the destination.                                                           |
| `closed`    | The movement is fully complete.                                                                         |

You can **revert** a packing list one step backwards if you need to correct a mistake. All status changes are recorded in an audit log.

## Creating a packing list

1. Navigate to **Movements → Packing Lists** and click **New Packing List**.
2. Select the **project** this packing list belongs to.
3. Optionally set a **scheduled pickup date**.
4. Save — the packing list is created with status `created` and assigned its code.

***

## Adding inventory items

While the packing list is in `created` or `packing` status you can add items:

1. Open the packing list detail page.
2. Click **Add Item** and search for an inventory item within the same project.
3. Enter the **quantity** to include.
4. If the item has barcodes, you can select specific barcode IDs to include (serialised tracking).
   The system validates that:

* The requested quantity does not exceed available on-hand stock.
* No barcode is assigned to two packing lists simultaneously.

***

## Check-in

When the truck arrives at the warehouse:

1. Click **Check In** to record the truck's arrival, including truck number, company, and driver email.

***

## Finalising a shipment

Click **Ship** to move the packing list from `packing` to `shipped`. This records the check-out timestamp and prevents further item edits.
**Photo requirement:** Your organisation can require a minimum number of checkout photos before finalisation is allowed. This is configured in [Settings → General](https://app.esoapp.co.uk/settings).

***

## Delivery

When the truck arrives at the destination:

1. Once goods are confirmed received, click **Deliver** to advance the status to `delivered` and record the delivery timestamp.

***

## Proof of Delivery (POD)

Attachments on a packing list can be categorised as `general` or `pod`. The POD status (`pending`, `awaiting`, `provided`) tracks whether a proof-of-delivery document has been uploaded. Upload PDFs or images via the **Attachments** tab on the packing list detail page.

## Truck broker assignment

A packing list can be assigned to a **Truck Broker** company. Once assigned:

* Users with the truck broker role who are linked to that company can see the packing list.
* The broker assignment is visible on the packing list detail and in the movements list.

***

## Audit history

Every status change is recorded automatically with the user, timestamp, and (for reversions) the reason. Click **View History** on the packing list detail page to see the full audit trail.

## Attachments

You can attach photos, PDFs, and other files to a packing list. Up to 10 files can be uploaded at once. Files are stored securely and can be downloaded individually or in bulk (bulk download returns a ZIP archive).

## Filtering and search

The packing lists page supports filtering by:

* Status
* Project
* Client
* Free-text search (packing list code or project name/code)
* Custom inventory field value (e.g. filter to packing lists containing items where `colour = red`)