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 TMSShipmentCreateUrl
…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 changeShipmentStatusUpdateUrl
…the shipment's GPS location updatesShipmentLocationUpdateUrl

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 ShipmentStatusUpdateUrl fires, ShipmentDetailUpdateUrl also 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 ShipmentDetailUpdateUrl but NOT ShipmentCreateUrl, new shipments will still be delivered — the creation event falls through to ShipmentDetailUpdateUrl with the same payload shape.
  • Status is broader than "status changes." ShipmentStatusUpdateUrl also fires on stop date/time edits — not only on actual status transitions. See its page for the full trigger list.
  • Location is throttled. ShipmentLocationUpdateUrl fires 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, ShipmentStatusUpdateUrl deliver the full ShipmentDetails record.
  • ShipmentLocationUpdateUrl delivers a trimmed LocationShipmentDetails focused 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.


Did this page help you?