Shipment Events
Shipment webhooks fire on the full lifecycle of a shipment — from creation through pickup, transit, and delivery. They're the highest-volume webhooks in the TMS and the most commonly integrated.
Which webhook do I subscribe to?
| I want to know when… | Subscribe to |
|---|---|
| …a shipment is first created in the TMS | ShipmentCreateUrl |
| …anything on a shipment changes (stops, commodities, carrier, references, etc.) | ShipmentDetailUpdateUrl |
| …the shipment's status transitions (Quote → Committed → InTransit → Delivered) or a stop's dates change | ShipmentStatusUpdateUrl |
| …the shipment's GPS location updates | ShipmentLocationUpdateUrl |
Each webhook has a distinct payload shape and delivery frequency, so pick the ones that match what your downstream system actually needs.
Delivery model
All four shipment webhooks are dispatched via a background queue with a ~1-minute delay after the triggering event. Multiple edits to the same shipment within that window coalesce into a single delivery — the timer resets on each new change and fires ~1 minute after the last change is saved. This prevents duplicate webhooks when users make several edits in quick succession.
How the events interact
- Status + Detail co-fire. Whenever
ShipmentStatusUpdateUrlfires,ShipmentDetailUpdateUrlalso fires from the same handler if subscribed. If you subscribe to both, expect paired deliveries on every status change and every stop-date edit. - Create + Detail fallback. If you subscribe to
ShipmentDetailUpdateUrlbut NOTShipmentCreateUrl, new shipments will still be delivered — the creation event falls through toShipmentDetailUpdateUrlwith the same payload shape. - Status is broader than "status changes."
ShipmentStatusUpdateUrlalso fires on stop date/time edits — not only on actual status transitions. See its page for the full trigger list. - Location is throttled.
ShipmentLocationUpdateUrlfires at most once every 15 minutes per shipment. High-frequency GPS pings within the window are dropped from the webhook but stored in the TMS.
Payload shape
The four shipment webhooks share a common payload shape:
ShipmentCreateUrl,ShipmentDetailUpdateUrl,ShipmentStatusUpdateUrldeliver the fullShipmentDetailsrecord.ShipmentLocationUpdateUrldelivers a trimmedLocationShipmentDetailsfocused on GPS fields.
Status labels vary by the Version source setting parameter — see Versioning in the Overview.
Common patterns
Full shipment tracking in a downstream system
Subscribe to ShipmentCreateUrl + ShipmentDetailUpdateUrl. Ignore ShipmentLocationUpdateUrl unless you specifically need GPS pings — status transitions to Delivered are usually a better signal for downstream reconciliation.
GPS/tracking mirror only
Subscribe to ShipmentLocationUpdateUrl. The 15-minute throttle keeps traffic reasonable and the trimmed payload avoids the cost of parsing the full shipment.
Status-only integration (Ex: EDI)
Subscribe to just ShipmentStatusUpdateUrl. Remember it also fires on stop-date edits, so filter by comparing the new status against your local last-known state if you only care about transitions.
Updated 5 days ago
