Live Order Location
Unlike the other Quick Commerce APIs, this is an outbound push from Shadowfax to the client — no request is made by the client. While an order is out for pickup/delivery, the assigned rider's live GPS position is periodically pushed to the client's registered webhook endpoint, enabling real-time order tracking on the client's app or dashboard.
| Attribute | Value |
|---|---|
| Method | POST (server-to-server push) |
| Direction | Shadowfax → Client webhook URL |
| Content-Type | application/json |
Location pushes are delivered to the webhook endpoint/credentials registered for your integration during onboarding. Share your webhook URL and expected auth headers with your Shadowfax integration POC if not already configured.
Note: This push only carries rider GPS coordinates — it does not signal order-status changes. See Order Status Callbacks for the separate webhook that fires on status transitions (created, out for delivery, arrived, etc).
Payload Schema
Each push contains a locations array. A single call may carry multiple GPS samples for one or more AWBs — clients must not assume exactly one sample per call.
Code
Field Reference
| Field | Type | Description |
|---|---|---|
awb_number | string | Shadowfax tracking number the location sample belongs to |
coid | string | Client order id (client_order_id) for the same shipment |
sfx_rider_id | integer | Shadowfax rider identifier |
rider_name | string | Assigned rider's name |
rider_latitude | float | Rider latitude at capture time |
rider_longitude | float | Rider longitude at capture time |
location_accuracy | float | GPS accuracy radius, in meters |
captured_time_epoch | integer | Epoch time in milliseconds when the location was captured on the rider's device |
Example Payload
Code
Best Practices
- Samples for the same AWB are pushed in capture order, but retries can cause repeats — treat
(awb_number, captured_time_epoch)as the dedupe key and ignore samples already recorded. - Return
200immediately and process asynchronously.