Sent when a shipment's tracking changes: new carrier movements, a new current_state, or tracking starting or finishing. details.tracking is the full, current snapshot: the TrackingResult that GET /tracking/timelines/{resource_id} returns under data, but with the whole timeline in one document rather than paged. Replace your copy rather than reconstructing it from differences.
Delivered at least once: the same event may arrive more than once, so dedupe on id, and ignore any sequence lower than the highest you have applied.
Headers on every delivery
| Header | Value |
|---|---|
Content-Type |
application/json; charset=utf-8 |
User-Agent |
shipwell-webhooks |
X-Shipwell-Timestamp |
ISO-8601 time the request was signed |
X-Shipwell-Signature |
hex HMAC-SHA256 of "{X-Shipwell-Timestamp};{raw body}", keyed with your secret |
Answer with any 2xx within 10 seconds. Timeouts, network errors, 408, 429 and 5xx are
retried after 30s, 2m, 10m, 30m, 1h, 3h, 6h, 12h and 24h: 10 attempts over about 47 hours. A
redirect (3xx) or any other 4xx is not retried, and 410 Gone disables the webhook. Delivery
is at least once: ignore an id you have already processed.
Accepted. Any 2xx stops retries.
{- "id": "string",
- "occurred_at": "2019-08-24T14:15:22Z",
- "webhook_id": "string",
- "source": {
- "publishing_system": "genesis",
- "company_id": "string",
- "environment": "string"
}, - "custom_data": null,
- "event_name": "tracking.updated",
- "sequence": 0,
- "details": {
- "resource_id": "string",
- "tracking": {
- "carrier_name": "R+L Carriers",
- "carrier_scac": "RLCA",
- "current_state": "IN_TRANSIT",
- "current_state_at": "2026-08-21T22:14:00Z",
- "events": [
- {
- "carrier_status_code": "PKP",
- "description": "Shipment picked up",
- "id": "01KBZD4Q6W0000000000000001",
- "latitude": 35.22709,
- "location": {
- "city": "CHARLOTTE",
- "country": "US",
- "postal_code": "28202",
- "state": "NC"
}, - "longitude": -80.84313,
- "occurred_at": "2026-08-20T14:05:00Z",
- "provider_code": "RLC",
- "recorded_at": "2026-08-20T14:31:02.118Z",
- "shipment_state": "AT_PICKUP"
}, - {
- "carrier_status_code": "DEP",
- "description": "Departed GREENSBORO, NC in route to destination terminal",
- "id": "01KBZD4Q6W0000000000000002",
- "location": {
- "city": "GREENSBORO",
- "country": "US",
- "state": "NC"
}, - "occurred_at": "2026-08-21T22:14:00Z",
- "provider_code": "RLC",
- "recorded_at": "2026-08-21T22:47:19.004Z",
- "shipment_state": "IN_TRANSIT"
}, - {
- "carrier_status_code": "WTR",
- "description": "Delayed by weather",
- "id": "01KBZD4Q6W0000000000000003",
- "provider_code": "RLC",
- "recorded_at": "2026-08-22T09:12:44.005Z"
}
], - "is_terminal": false,
- "provider_code": "RLC",
- "resource_id": "9f2c1b84-6d3a-4c17-9b0e-2f5a7c48d31e",
- "resource_type": "tracking",
- "tracking_reference": "123456789",
- "tracking_reference_kind": "PRO_NUMBER",
- "tracking_status": "TRACKING"
}
}
}