Перерывы в работе курьера

Перерывы в работе курьера можно задавать не только при планировании, но и после передачи маршрутов в Мониторинг и даже в процессе выполнения маршрута. На карте перерывы не отображаются, но учитываются при расчете 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) по заказам.

Как реализовать сценарий

  1. Чтобы получить актуальную информацию о маршруте, отправьте запрос к ресурсу route-info. Для заказа с id = 410522528 ETA составляет 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-маршрута>
    
  2. Запланируйте два перерыва по 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
    }
    
  3. Чтобы увидеть, как изменилось ожидаемое время прибытия, повторно отправьте запрос к ресурсу route-info. Для заказа id = 410522528 новое ETA — 16:50 (заказ будет доставлен после перерыва).

  4. Для проверки текущего статуса перерывов отправьте запрос к ресурсу 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
    }
    
Написать в службу поддержки