Quotes, zones & slots
Price and ETA before the order, a price that holds for 10 minutes, delivery zones and time slots.
Quote
POST /v1/quotes prices a delivery without creating anything:
{
"pickup": { "point_id": "0192e8a0-11aa-7b3c-9d4e-6f7a8b9c0d1e" },
"dropoff": { "address": "Алматы, Жандосова 58", "latitude": 43.214, "longitude": 76.88 },
"cargo": { "places": 1, "weight_kg": 2.5, "size": "M" },
"type": "asap"
}{
"quote_id": "0192f1b0-2a11-7c55-8e0d-3f6a9b7c1d20",
"price": { "amount": 145000, "currency": "KZT" },
"breakdown": [
{ "code": "base", "title": "Базовая цена", "amount": { "amount": 80000, "currency": "KZT" } },
{ "code": "distance", "title": "Расстояние 4.3 км", "amount": { "amount": 65000, "currency": "KZT" } }
],
"eta_minutes": 38,
"zone": "alm-center",
"valid_until": "2026-10-24T09:20:00Z",
"livemode": true
}- The price holds for 10 minutes. An order created with
quote_idbeforevalid_untilgets exactly this price, even if the tariff changed in between. Later it is refused with422 quote_expired— ask for a new quote. breakdownadds up toprice; codes are stable (base,distance,cod,size_l…), titles are for people.- Cash on delivery and size
Ladd surcharges — passcodandcargoto get the real price. eta_minutesis an estimate from now; the order'setais updated while it moves.
Zones
Deliveries are possible inside our delivery zones in Almaty. A pickup or drop-off outside them is refused with
422 out_of_zone — both for quotes and orders. zone in the quote is the code of the drop-off's zone.
Send coordinates whenever you have them. A text-only address that cannot be geocoded precisely is refused with
422 address_ambiguous.
Delivery types
type | Meaning | scheduled_at |
|---|---|---|
asap (default) | as soon as possible | — |
scheduled | by a given time | required, the delivery time |
slot | in a time slot | required, from of the slot |
A missing or past scheduled_at or one outside working hours is 422 window_invalid.
Slots
GET /v1/slots?point_id=…&date=2026-10-24 lists the slots of a pickup point for a local date:
[
{ "from": "2026-10-24T10:00:00Z", "to": "2026-10-24T12:00:00Z", "available": false },
{ "from": "2026-10-24T12:00:00Z", "to": "2026-10-24T14:00:00Z", "available": true }
]Create the order with type: "slot" and scheduled_at = from of an available slot. A slot that filled up
meanwhile is 409 slot_full. In the sandbox every pickup point has two-hour slots from 10:00 to 22:00.
Pickup points
GET /v1/pickup-points returns your organization's points (managed in the cabinet): address, coordinates, working
hours, assembly norm. Use id as pickup.point_id — live orders require it; the sandbox also accepts a plain
address with coordinates.