# Warehouse Shipments _(Realtime-enabled)_

`GET` _(Table: Warehouse Shipment Header)_

```
eOne/core/v1.0/warehouseShipments
```

Warehouse shipments and their lines. Read the document to track picking and shipping, and post it when the goods leave.

> **Caution:** You do not create a warehouse shipment by POSTing here. Its lines are pulled from released source documents, not authored. Create one with the `createWarehouseShipment` action on a [sales order](https://eonesolutions.github.io/eone-bc-integration/core-salesOrders.md).

## How a shipment is created

Release the sales order, then call the action. The order's **location must have Require Shipment enabled**. Otherwise there is nothing to hand to the warehouse and the call errors:

```
POST /salesOrders(<id>)/Microsoft.NAV.release
POST /salesOrders(<id>)/Microsoft.NAV.createWarehouseShipment
```

The response redirects to the newly created `warehouseShipment`, so you get its `id` and `number` back without a search. From there, GET the shipment and `$expand=warehouseShipmentLines` to follow picking and shipping.

## A shipment as a vehicle load

For own-fleet dispatch a warehouse shipment doubles as **one van's delivery load**: `createDeliveryLoad` on [salesOrders](https://eonesolutions.github.io/eone-bc-integration/core-salesOrders.md) assembles a single shipment from several released orders, stamping the external planner's route id onto `integrationId`, the vehicle onto `shippingAgentCode` / `shippingAgentServiceCode`, and the route date onto `shipmentDate`. The planner then writes the ordered drops back as [routeStops](https://eonesolutions.github.io/eone-bc-integration/core-routeStops.md), readable inline here via `$expand=routeStops`, and shown to the warehouse on the Business Central shipment page as the loading sequence. The inbound mirror (a pickup load) is a [warehouse receipt](https://eonesolutions.github.io/eone-bc-integration/core-warehouseReceipts.md).

## Consignment weight and volume

`totalWeight` and `totalVolume` roll the whole document up for you: they sum the shipment lines' weight and cubage, so a carrier-rating call can read one header instead of summing lines client-side.

Both are **unitless numbers**. Business Central stores no unit alongside them. The values are in whatever mass and length/volume units the company works in, exactly as the item cards were set up. Convert them to the unit the carrier expects in the map; do not assume kilograms or cubic metres.

> **Note:** The rollup is only as good as the item master. A line whose item carries no unit weight or unit volume contributes nothing to the total, so a shipment can legitimately report a total of zero.

## Posting the shipment

The `post` bound action ships the whole document (basic warehousing. No separate pick step). It returns `204` rather than redirecting, because one shipment can post several source documents:

```
POST /warehouseShipments(<id>)/Microsoft.NAV.post
```

> **Note:** A fully shipped shipment is removed by Business Central after posting. Confirm the posted result through the sales shipment reports.

`$expand=warehouseShipmentLines` to follow the individual lines and trace each back to its source order. See [Warehouse Shipment Lines](https://eonesolutions.github.io/eone-bc-integration/core-warehouseShipmentLines.md).

## Warehouse Shipments fields

_API column → BC field._

**Legend**

- _(req)_ required on create
- _(res)_ resolver
- _(cur)_ currency-translated
- _(ro)_ read-only
- _(ext)_ added to this endpoint by another extension (BC field name shown; its API column name is not known here)

| API | BC field | Notes |
| --- | --- | --- |
| `id` | SystemId | BC record GUID. _(ro)_ |
| `bcCompanyId` | bcCompanyId | The company this row belongs to - the same GUID that appears in the request URL. Present on every endpoint so a store pooling several companies can keep them apart without relying on which URL it called. _(ro)_ |
| `bcCompanyName` | bcCompanyName | The name of the company this row belongs to. _(ro)_ |
| `number` | No. | Warehouse shipment number. _(ro)_ |
| `integrationId` | EONE Integration Id | eOne integration external identifier. For a delivery/route load this carries the external planner's route or trip id. _(ro)_ |
| `locationCode` | Location Code | Location the items ship from. _(ro)_ |
| `zoneCode` | Zone Code | _(ro)_ |
| `binCode` | Bin Code | _(ro)_ |
| `documentStatus` | Document Status | Open / Partially Picked / Completely Picked / Partially Shipped / Completely Shipped. _(ro)_ |
| `assignedUserId` | Assigned User ID | Warehouse employee responsible. _(ro)_ |
| `postingDate` | Posting Date | _(ro)_ |
| `shipmentDate` | Shipment Date | _(ro)_ |
| `externalDocumentNumber` | External Document No. | _(ro)_ |
| `shippingAgentCode` | Shipping Agent Code | _(ro)_ |
| `shippingAgentServiceCode` | Shipping Agent Service Code | _(ro)_ |
| `shipmentMethodCode` | Shipment Method Code | _(ro)_ |
| `totalWeight` | EONE Total Weight | Sum of the warehouse shipment lines' weight, in the company's mass unit (e.g. kg or lb). No unit is carried on the value — map it to the carrier's expected unit. Used for carrier rating. _(ro)_ |
| `totalVolume` | EONE Total Volume | Sum of the warehouse shipment lines' cubage, in the company's volume unit (e.g. m3 or ft3). No unit is carried on the value — map it to the carrier's expected unit. Used for carrier rating alongside totalWeight. _(ro)_ |
| `shipFromName` | shipFromName | Origin (location) name the goods ship from. _(ro)_ |
| `shipFromAddressLine1` | shipFromAddressLine1 | Origin address the goods ship from. _(ro)_ |
| `shipFromAddressLine2` | shipFromAddressLine2 | _(ro)_ |
| `shipFromCity` | shipFromCity | _(ro)_ |
| `shipFromCounty` | shipFromCounty | _(ro)_ |
| `shipFromPostCode` | shipFromPostCode | _(ro)_ |
| `shipFromCountryRegionCode` | shipFromCountryRegionCode | Origin country/region the goods ship from. _(ro)_ |
| `completelyPicked` | Completely Picked | All lines picked. _(ro)_ |
| `createdDateTime` | SystemCreatedAt | _(ro)_ |
| `lastModifiedDateTime` | SystemModifiedAt | _(ro)_ |

## Related pages

Collections nested under this endpoint:

- [Warehouse Shipment Lines](https://eonesolutions.github.io/eone-bc-integration/core-warehouseShipmentLines.md)
- [Route Stops](https://eonesolutions.github.io/eone-bc-integration/core-routeStops.md)
