Tracking links
A branded tracking page for the recipient, and the courier position for your own screens.
The tracking page
Every order has a tracking_url (https://parcel.sapamoto.kz/t/<token>): a page for the recipient — no sign-up,
works on any phone. The token is random (256 bits), not your order number, so links cannot be guessed.
The page shows:
- your brand (name, logo, colour — set in the cabinet) and “delivered by Sapa Moto”;
- the status in simple words — preparing, looking for a courier, the courier is on the way, the courier is here, delivered — in Kazakh or Russian;
- the delivery window and, after pickup, the ETA rounded to 5 minutes;
- the map with the courier — only from pickup until handover, and only while your order is the courier's next stop;
- the courier's first name and transport (never the surname or the phone), a masked call button;
- the
delivery_codeto tell the courier, the cash-on-delivery amount; - details the recipient can fix (entrance, floor, intercom) until the courier arrives, and the rating after delivery.
Seven days after the final status the page only says that the delivery is finished.
Messages to the recipient
We send the link by WhatsApp (SMS as fallback) according to your settings in the cabinet:
| Moment | Default |
|---|---|
| order created — link | off |
| order picked up — link, ETA, code | on |
| courier arrived | on |
| ETA moved by 15+ minutes | on |
| not delivered — reason | on |
| delivered — please rate | off |
At most five messages per drop-off. You can also send tracking_url yourself — in your app, your SMS, your e-mail.
Courier position in your own UI
GET /v1/orders/{id}/track returns the last position and the ETA:
200 OK
{
"order_id": "0192f1b2-6d4e-7a10-b3c2-8e1f0d9a4c57",
"status": "to_dropoff",
"latitude": 43.2264,
"longitude": 76.9043,
"position_at": "2026-10-24T09:41:55Z",
"eta": "2026-10-24T09:52:00Z"
}- The position is shown while the courier carries the order; before pickup
latitude/longitudearenull. - At most once per 10 seconds per order — otherwise
429. - The position is never sent by webhooks;
order.eta_changedtells you when the ETA moves.