---
title: "Shipment Updated"
method: POST
path: "shipment.updated"
tags: ["Shipments"]
---

# Shipment Updated

`POST shipment.updated` (webhook)

Sent when a shipment is updated

Required permissions:
 - `shipment:basic:read`
 - `payment:basic:read`
 - `webhook_receive:shipments`

## Headers

- `webhook-id` string, required — A unique identifier for this webhook request
- `webhook-signature` string, required — The signature of the webhook request with the webhook version prepended
- `webhook-timestamp` string, required — The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

## Payload

- object
  - `api_version` 'v1', required — The API version for this webhook
  - `api_version_date` string, nullable, required — The dated API version (Api-Version-Date) the payload is serialized to
  - `company_id` string, nullable — The account ID that this webhook event is associated with
  - `data` Shipment, required
    - `account_id` string, required — The account that owns this shipment, prefixed `biz_`.
    - `carrier` string, nullable, required — The shipping carrier detected for this shipment. Null until a tracking update identifies it.
    - `checkpoints` ShipmentCheckpoint[], required
      - `location` string, nullable, required — Where the carrier recorded the scan, such as `PHILADELPHIA, PA`. Null when the carrier sent none.
      - `message` string, nullable, required — Carrier's description of the scan, such as `Departed USPS Regional Facility`. Null when the carrier sent none.
      - `status` 'unknown' | 'pre_transit' | 'in_transit' | 'out_for_delivery' | 'delivered' | 'available_for_pickup' | 'return_to_sender' | 'failure' | 'cancelled' | 'error', required — Delivery status this carrier scan maps to.
      - `timestamp` string, nullable, required — When the carrier recorded the scan, as an ISO 8601 timestamp. Null when the carrier sent no scan time.
    - `created_at` string, required — The datetime the shipment was created (ISO 8601).
    - `id` string, required — Shipment ID, prefixed `ship_`.
    - `payment_id` string, required — The payment this shipment fulfills, prefixed `pay_`.
    - `status` 'unknown' | 'pre_transit' | 'in_transit' | 'out_for_delivery' | 'delivered' | 'available_for_pickup' | 'return_to_sender' | 'failure' | 'cancelled' | 'error', required — The current delivery status of this shipment.
    - `tracking_number` string, required — The carrier-assigned tracking number used to look up shipment progress.
    - `tracking_url` string, required — A customer-facing URL to track this shipment's progress.
    - `updated_at` string, required — The datetime the shipment was last updated (ISO 8601).
  - `id` string, required — A unique ID for every single webhook request
  - `timestamp` string, date-time, required — The timestamp in ISO 8601 format that the webhook was sent at on the server
  - `type` 'shipment.updated', required — The webhook event type

## Acknowledgement `200`

Return a 200 status to indicate that the data was received successfully

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/866821546d67/schema)
