Sapa Moto

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_code to 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:

MomentDefault
order created — linkoff
order picked up — link, ETA, codeon
courier arrivedon
ETA moved by 15+ minuteson
not delivered — reasonon
delivered — please rateoff

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 / longitude are null.
  • At most once per 10 seconds per order — otherwise 429.
  • The position is never sent by webhooks; order.eta_changed tells you when the ETA moves.

These docs are built from the platform's OpenAPI specification. Download OpenAPI