Перерывы в работе курьера
Перерывы в работе курьера можно задавать не только при планировании, но и после передачи маршрутов в Мониторинг и даже в процессе выполнения маршрута. На карте перерывы не отображаются, но учитываются при расчете ETA.
Добавить перерыв
Чтобы добавить курьеру перерывы в маршрут, отправьте POST-запрос к ресурсу work_breaks.
В запросе укажите company_id и route_id — ID компании и ID маршрута.
В теле запроса укажите:
rest_duration_s— длительность перерыва в секундах (минимальное значение: 1);work_time_range_till_rest— время работы до отдыха, формат: [D.]HH[:MM[:SS]] - [D.]HH[:MM[:SS]].
Запрос
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X POST -d @<Путь_до_файла_в_кодировке_UTF-8> https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/work_breaks
Файл
{
"work_time_range_till_rest": "01:00:00-01:30:00",
"rest_duration_s": 3600
},
{
"work_time_range_till_rest": "02:30:00-03:00:00",
"rest_duration_s": 1800
}
Результат
{
"break_id": 1,
"sequence_pos": 0,
"work_time_range_till_rest": "01:00:00 - 01:30:00",
"rest_duration_s": 1800
},
{
"break_id": 2,
"sequence_pos": 1,
"work_time_range_till_rest": "02:30:00 - 03:00:00",
"rest_duration_s": 1800
}
Получить информацию о перерывах
Чтобы получить информацию о перерывах курьера на маршруте, отправьте GET-запрос к ресурсу work_breaks. Возможны следующие статусы перерывов:
planned— запланирован;started— начался;finished— завершился.
Запрос
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X GET -d https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/work_breaks
Результат
{
"id": 1,
"sequence_pos": 0,
"work_time_range_till_rest": "01:00:00 - 01:30:00",
"rest_duration_s": 3600,
"status": "planned",
"start_at": 1769743980
},
{
"id": 2,
"sequence_pos": 1,
"work_time_range_till_rest": "02:30:00 - 03:00:00",
"rest_duration_s": 1800,
"status": "planned",
"start_at": 1769802180
}
Удалить перерыв
Чтобы удалить перерыв, отправьте DELETE-запрос к ресурсу work_breaks.
Запрос
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X DELETE -d https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/routes/<id-маршрута>/work_breaks/<id-перерыва>
Результат
{
"id": 1,
"sequence_pos": 0
}
Пример бизнес-кейса
Что требуется сделать
Нужно добавить несколько перерывов курьеру после того, как он начал движение по маршруту, и отследить, как это повлияет на ожидаемое время прибытия estimated_service_time (ETA) по заказам.
Как реализовать сценарий
-
Чтобы получить актуальную информацию о маршруте, отправьте запрос к ресурсу route-info. Для заказа с
id=410522528ETA составляет 16:38.Пример запроса
cURL
curl -H "Content-Type: application/json" -H "Authorization: OAuth <ваш-токен>" -X GET -d https://courier.yandex.ru/api/v1/companies/<id-вашей-компании>/route-info?route_id=<id-маршрута>Пример ответа
{ "meta": { "id": "44868252", "number": "1-1-2026-02-02", "company_id": "1556", "date": "2026-02-02", "routing_mode": "driving", "total_transit_distance_m": 0.0, "last_update_info": { "courier_position": { "lat": 55.733974, "lon": 37.587094, "time": { "value": 1770036960, "text": "2026-02-02 15:56:00+03:00" } }, "update_time": { "value": 1770037109, "text": "2026-02-02 15:58:29+03:00" } }, "courier_position": { "node": { "prev": null, "next": 0 } }, "planning_area": { "type": "depot", "id": "44238", "time_zone": "Europe/Istanbul" }, "courier": { "id": "5677443", "number": "1", "name": "Courier 1", "deleted": false }, "route_options": { "avoid_tolls": false, "avoid_unpaved": false, "avoid_poor_condition": false } }, "nodes": [ { "type": "depot", "types": [ "depot" ], "value": { "node_id": "455098220", "id": "44238", "estimated_distance_left_m": 0, "number": "101", "estimated_service_time": { "start": { "value": 1770037112, "text": "2026-02-02 15:58:32+03:00" }, "end": { "value": 1770037112, "text": "2026-02-02 15:58:32+03:00" } }, "related_orders": [ { "id": "410522526", "action": "pickup" }, { "id": "410522527", "action": "pickup" }, { "id": "410522528", "action": "pickup" } ], "point": { "lat": 55.733974, "lon": 37.587093 } } }, { "type": "order", "types": [ "order", "delivery" ], "value": { "node_id": "455098221", "id": "410522526", "status": "confirmed", "estimated_distance_left_m": 5215, "number": "10302022026", "time_windows": [ { "start": { "value": 1770030000, "text": "2026-02-02 14:00:00+03:00" }, "end": { "value": 1770051600, "text": "2026-02-02 20:00:00+03:00" } } ], "estimated_service_time": { "start": { "value": 1770038076, "text": "2026-02-02 16:14:36+03:00" }, "end": { "value": 1770038076, "text": "2026-02-02 16:14:36+03:00" } }, "point": { "lat": 55.757247, "lon": 37.612856 }, "time_zone": "Europe/Moscow" } }, { "type": "order", "types": [ "order", "delivery" ], "value": { "node_id": "455098222", "id": "410522527", "status": "confirmed", "estimated_distance_left_m": 8740, "number": "10202022026", "time_windows": [ { "start": { "value": 1770030000, "text": "2026-02-02 14:00:00+03:00" }, "end": { "value": 1770051600, "text": "2026-02-02 20:00:00+03:00" } } ], "estimated_service_time": { "start": { "value": 1770039000, "text": "2026-02-02 16:30:00+03:00" }, "end": { "value": 1770039000, "text": "2026-02-02 16:30:00+03:00" } }, "point": { "lat": 55.749582, "lon": 37.598277 }, "time_zone": "Europe/Moscow" } }, { "type": "order", "types": [ "order", "delivery" ], "value": { "node_id": "455098223", "id": "410522528", "status": "confirmed", "estimated_distance_left_m": 10924, "number": "10102022026", "time_windows": [ { "start": { "value": 1770030000, "text": "2026-02-02 14:00:00+03:00" }, "end": { "value": 1770051600, "text": "2026-02-02 20:00:00+03:00" } } ], "estimated_service_time": { "start": { "value": 1770039497, "text": "2026-02-02 16:38:17+03:00" }, "end": { "value": 1770039497, "text": "2026-02-02 16:38:17+03:00" } }, "point": { "lat": 55.738799, "lon": 37.593866 }, "time_zone": "Europe/Moscow" } }, { "type": "depot", "types": [ "depot" ], "value": { "node_id": "455098224", "id": "44238", "estimated_distance_left_m": 12207, "number": "101", "estimated_service_time": { "start": { "value": 1770039749, "text": "2026-02-02 16:42:29+03:00" }, "end": { "value": 1770039749, "text": "2026-02-02 16:42:29+03:00" } }, "point": { "lat": 55.733974, "lon": 37.587093 } } } ] } -
Запланируйте два перерыва по 10 минут:
- первый — не позднее чем через 40 минут работы;
- второй — не позднее чем через 70 минут работы.
Для этого отправьте запрос к ресурсу work_breaks и задайте время работы до отдыха и длительность перерывов (в секундах).
Пример запроса
{ "work_time_range_till_rest": "00:30:00-00:40:00", "rest_duration_s": 600 }, { "work_time_range_till_rest": "01:00:00-01:10:00", "rest_duration_s": 600 }Пример ответа
{ "id": 4974223, "sequence_pos": 0 }, { "id": 4974224, "sequence_pos": 1 } -
Чтобы увидеть, как изменилось ожидаемое время прибытия, повторно отправьте запрос к ресурсу route-info. Для заказа
id=410522528новое ETA — 16:50 (заказ будет доставлен после перерыва).Пример ответа
{ "meta": { "id": "44868252", "number": "1-1-2026-02-02", "company_id": "1556", "date": "2026-02-02", "routing_mode": "driving", "total_transit_distance_m": 0.0, "last_update_info": { "courier_position": { "lat": 55.733974, "lon": 37.587094, "time": { "value": 1770036960, "text": "2026-02-02 15:56:00+03:00" } }, "update_time": { "value": 1770037109, "text": "2026-02-02 15:58:29+03:00" } }, "courier_position": { "node": { "prev": null, "next": 0 } }, "planning_area": { "type": "depot", "id": "44238", "time_zone": "Europe/Istanbul" }, "courier": { "id": "5677443", "number": "1", "name": "Courier 1", "deleted": false }, "route_options": { "avoid_tolls": false, "avoid_unpaved": false, "avoid_poor_condition": false } }, "nodes": [ { "type": "depot", "types": [ "depot" ], "value": { "node_id": "455098220", "id": "44238", "estimated_distance_left_m": 0, "number": "101", "estimated_service_time": { "start": { "value": 1770037262, "text": "2026-02-02 16:01:02+03:00" }, "end": { "value": 1770037262, "text": "2026-02-02 16:01:02+03:00" } }, "related_orders": [ { "id": "410522526", "action": "pickup" }, { "id": "410522527", "action": "pickup" }, { "id": "410522528", "action": "pickup" } ], "point": { "lat": 55.733974, "lon": 37.587093 } } }, { "type": "order", "types": [ "order", "delivery" ], "value": { "node_id": "455098221", "id": "410522526", "status": "confirmed", "estimated_distance_left_m": 5215, "number": "10302022026", "time_windows": [ { "start": { "value": 1770030000, "text": "2026-02-02 14:00:00+03:00" }, "end": { "value": 1770051600, "text": "2026-02-02 20:00:00+03:00" } } ], "estimated_service_time": { "start": { "value": 1770038226, "text": "2026-02-02 16:17:06+03:00" }, "end": { "value": 1770038226, "text": "2026-02-02 16:17:06+03:00" } }, "point": { "lat": 55.757247, "lon": 37.612856 }, "time_zone": "Europe/Moscow" } }, { "type": "order", "types": [ "order", "delivery" ], "value": { "node_id": "455098222", "id": "410522527", "status": "confirmed", "estimated_distance_left_m": 8740, "number": "10202022026", "time_windows": [ { "start": { "value": 1770030000, "text": "2026-02-02 14:00:00+03:00" }, "end": { "value": 1770051600, "text": "2026-02-02 20:00:00+03:00" } } ], "estimated_service_time": { "start": { "value": 1770039150, "text": "2026-02-02 16:32:30+03:00" }, "end": { "value": 1770039150, "text": "2026-02-02 16:32:30+03:00" } }, "point": { "lat": 55.749582, "lon": 37.598277 }, "time_zone": "Europe/Moscow" } }, { "type": "order", "types": [ "order", "delivery" ], "value": { "node_id": "455098223", "id": "410522528", "status": "confirmed", "estimated_distance_left_m": 10924, "number": "10102022026", "time_windows": [ { "start": { "value": 1770030000, "text": "2026-02-02 14:00:00+03:00" }, "end": { "value": 1770051600, "text": "2026-02-02 20:00:00+03:00" } } ], "estimated_service_time": { "start": { "value": 1770040247, "text": "2026-02-02 16:50:47+03:00" }, "end": { "value": 1770040247, "text": "2026-02-02 16:50:47+03:00" } }, "point": { "lat": 55.738799, "lon": 37.593866 }, "time_zone": "Europe/Moscow" } }, { "type": "depot", "types": [ "depot" ], "value": { "node_id": "455098224", "id": "44238", "estimated_distance_left_m": 12207, "number": "101", "estimated_service_time": { "start": { "value": 1770040499, "text": "2026-02-02 16:54:59+03:00" }, "end": { "value": 1770040499, "text": "2026-02-02 16:54:59+03:00" } }, "point": { "lat": 55.733974, "lon": 37.587093 } } } ] } -
Для проверки текущего статуса перерывов отправьте запрос к ресурсу work_breaks.
Пример ответа
{ "id": 4974223, "sequence_pos": 0, "work_time_range_till_rest": "00:30:00 - 00:40:00", "rest_duration_s": 600, "status": "started", "start_at": 1770039360 }, { "id": 4974224, "sequence_pos": 1, "work_time_range_till_rest": "01:00:00 - 01:10:00", "rest_duration_s": 600, "status": "planned", "start_at": 1770044160 }