# Get Sales Order Shipment

`GET /accounting/sales-order-shipments/{id}`

Group: Accounting › Sales Order Shipments · Operation ID: `getSalesOrderShipment`

Returns the sales order shipment with the given identifier, including its shipped lines.

inventoryShipmentId links to the shipment document in inventory, which owns it. items[].unshippedQty is orderedQty minus shippedQty. While a shipment is still 'pendingShipment', every shippedQty is 0, because inventory fills the quantities in when it commits the shipment.

[Open in the interactive reference](https://docs.api.lensing.ai/?op=getSalesOrderShipment)

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | `"v1"` | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |
| `id` | path | string | yes | The unique identifier for the sales order shipment to return. |

## Response

`200` Success

Under `data` (getSalesOrderShipmentOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the sales order shipment. |
| `salesOrderId` | string | yes | The sales order this shipment fulfills. See id on GET accounting/sales-orders/:id. |
| `inventoryShipmentId` | number | no | The numeric identifier of the shipment document in inventory, which owns the shipment. Absent only on legacy rows written before the mirroring existed. |
| `shipmentNumber` | string | no | The shipment document number, assigned by inventory. Absent until inventory has issued one. |
| `status` | string | no | The lifecycle status of the shipment. Possible values: 'pendingShipment', 'shipped', 'cancelled'. 'pendingShipment' is drafted in inventory but not yet dispatched, 'shipped' is dispatched, and 'cancelled' means the inventory shipment was deleted and this mirror was soft-cancelled. |
| `trackingId` | string | no | The carrier tracking number or tracking URL, when one has been recorded. |
| `carrier` | string | no | The name of the carrier handling the shipment. |
| `incoterm` | string | no | The incoterm governing shipping responsibility for this shipment. For example 'DAP' or 'EXW'. |
| `warehouseId` | string | no | The warehouse location the shipment is dispatched from. See id on GET inventory/warehouses/:id. |
| `shipToContactEmail` | string | no | The email of the contact who receives this shipment. |
| `customerRequestDate` | string (date) | no | The date the customer asked for delivery. Format YYYY-MM-DD. |
| `shipDate` | string (date) | no | The date the shipment was dispatched. Format YYYY-MM-DD. Absent while the shipment is still pending. |
| `deliveryDate` | string (date) | no | The date the shipment was, or is expected to be, delivered. Format YYYY-MM-DD. |
| `lastModifiedDate` | string (date-time) | yes | The date and time the shipment last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `items` | array of object | yes | The shipped lines, oldest first. An empty array when the shipment has no lines. |
| `items[].id` | string | yes | The unique identifier for the shipment line. PATCH matches updateItems and deleteItems on it. |
| `items[].salesOrderProductItemId` | string | yes | The sales order product item this line ships. There is no endpoint for it. |
| `items[].shippedQty` | string (decimal) | yes | The quantity shipped on this line, as a count of units. |
| `items[].orderedQty` | string (decimal) | yes | The total quantity ordered for the underlying sales order product item, as a count of units. |
| `items[].unshippedQty` | string (decimal) | yes | The quantity still outstanding on this line, as a count of units: orderedQty minus shippedQty. |

## Errors

| Code | Status |
| --- | --- |
| `NOT_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — Missing or invalid access token
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests
- `500` — Internal server error
