---
title: "Update Status"
method: PUT
path: "/v4/shipments/status"
tags: ["Shipments"]
---

# Update Status

`PUT /v4/shipments/status`

Modify the current status of one or more shipments in the system. With this endpoint, you can update the status of specified shipments, such as placing them on hold, cancelling them, releasing them for delivery, or marking them as picked.

## Request body

- UpdateStatusRequest — Update Status Request
  - `Status` 'Hold' | 'Cancel' | 'Release' | 'Picked', required — A field indicating one of the following statuses to assign to the specified shipments. <br /><ul><li><b>Hold</b>: Temporarily pauses the shipment, preventing it from proceeding until further action is taken. Before putting the shipment on hold, make sure of the following: <br /><ul><li>You can only put the shipments on hold for up to 28 days.</li><li>Shipments that are held for longer than 28 days will be cancelled.</li><li>A shipment on hold will not be included in an closeouts/manifests, but instead will remain in its current state.</li><li>You can only put shipments on hold that are in the **LabelPrinted** status, as only shipments with this status are included in the manifests.</li></ul></li><li><b>Cancel</b>: Marks the shipment as cancelled, indicating it will no longer be processed or delivered. This can only be used before a shipment has been confirmed by being manifested.</li><li><b>Release</b>: Changes the shipment status to indicate it is cleared for delivery or further processing. Used to release shipments that were held for less than 24 hours. Once released, the shipment is included in the next manifest.</li><li><b>Picked</b>: Indicates that the shipment has been picked up and is being prepared for delivery. This means this shipment will only be manifested if you choose to manifest the 'Picked' shipments.</li></ul>
  - `Reason` string, nullable — A string providing the reason for the status update. Depending on the shipment's current status, specify why a shipment's status is being changed, adding context and aiding in future audits and management. <br /> <br />If the status you are updating to is **Hold**, then you must provide the reason using one of the following values: <br />• Awaiting Dispatch <br />• Awaiting Payment <br />• Awaiting Stock <br />• Awaiting Customer Response <br />• Held for Shipping Day <br />• Weight Consolidation <br />• Warehouse Processing <br /> <br />If the status you are updating to is **Cancel**, then you must provide the reason using one of the following values: <br />• Order Cancelled <br />• Packed in Error <br />• Repacked
  - `ShipmentIds` string[], required — An array of unique identifiers for the shipments that are being updated. This field specifies to which shipments the new status will apply, allowing for batch processing of multiple shipments in a single request. <br /> <br />***Note**: There must be at least one shipment and a maximum of 99. This value can be an ID or a tracking/barcode number. However, for consignment shipments, only the consignment-level tracking/barcode number can be used.*

## Response `200`

All shipments were updated successfully.

## Other responses

- `400` — Invalid request response.
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error

---

[API](https://skmtc.dev/proshipping/apis/pro-shipping-core-api.md) · [All operations](https://skmtc.dev/proshipping/apis/pro-shipping-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/proshipping/pro-shipping-core-api/revisions/ae5fc5e90109/schema)
