Tracking
Track active deliveries using webhook push (recommended at scale) and/or HTTP polling on the order resource.
Webhook push
Subscribe to tracking.courier_locations when creating or updating a webhook:
{
"url": "https://your-company.example.com/webhooks/lynq",
"event_filters": ["tracking.courier_locations"],
"tracking_interval_sec": 30
}
| Field | Constraints |
|---|---|
tracking_interval_sec | 10–300 seconds; default 30 |
Each batch envelope includes:
{
"type": "tracking.courier_locations",
"data": {
"object": {
"ts": 1715000030,
"locations": [
["01ORDERULID", "01COURIERULID", 24.7136, 46.6753, 90.0]
]
}
}
}
Each row is [order_ref, courier_ref, lat, lng, heading]. Verify X-Lynq-Signature exactly as for lifecycle events.
note
Tracking pushes are fire-and-forget from the tracking pusher — they do not use the transactional outbox. Design for gaps and duplicate batches.
Polling
GET /orders/{order_id} returns the latest status and may include courier fields when assigned. Polling complements webhooks but is not a substitute for high-frequency GPS updates.