Skip to main content

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
}
FieldConstraints
tracking_interval_sec10–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.