---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.kz/routing/doc/ru/oob/guidelines/simple.md
  - href: ru/oob/guidelines/simple.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
title: Яндекс Маршрутизация — экспресс-доставка — упрощенный сценарий работы с API
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/ru/llms.txt


# Упрощенный сценарий работы с API

## Шаг 1. Построение маршрута

Отправьте запрос на создание маршрута и передайте в нем следующую информацию:

* список доступных на складе курьеров со сменами и настройками назначения курьера в очередь;

* список заказов, готовых к доставке;

* пресеты (опционально).

Подробнее см. в [спецификации](https://yandex.ru/routing/doc/ru/oob/redoc/index.html#/paths/~1api~1integration~1v1~1ondemand~1routes~1create/post).

Cервис Экспресс-доставки обработает запрос и запланирует маршрут.

{% cut "Пример запроса" %}

```json
POST /api/integration/v1/routes/create?company_id={company_id}

Authorization: Oauth <token>
Accept-Language: en
X-Idempotency-Token: build-routes-000
Content-Type: application/json

{
  "region_id": "string",
  "planning_time_info": {
    "current_planning_time": "2025-08-13T07:00:00.000Z",
    "next_planning_time": "2025-08-13T07:00:00.000Z"
  },
  "courier_list": [
    {
      "client_courier_id": "string",
      "courier_info": {
        "home_region_id": "string",
        "vehicle_type": "pedestrian",
        "carrying_capacity": {
          "weight_g": 0,
          "units_count": 0
        },
        "route_limits": {
          "stop_count_limit": 1,
          "distance_km_limit": 0
        },
        "courier_tag_list": [
          "string"
        ]
      },
      "shift": {
        "client_shift_id": "string",
        "shift_info": {
          "depot_id": "string",
          "planned_time_interval": {
            "from": "2025-08-13T07:00:00.000Z",
            "to": "2025-08-13T07:00:00.000Z"
          },
          "actual_started_ts": "2025-08-13T07:00:00.000Z",
          "actual_ended_ts": "2025-08-13T07:00:00.000Z",
          "break_time_interval_list": [
            {
              "from": "2025-08-13T07:00:00.000Z",
              "to": "2025-08-13T07:00:00.000Z"
            }
          ]
        },
        "assignment": {
          "type": "queue",
          "queue_id": "string",
          "rank": 0
        }
      }
    }
  ],
  "order_list": [
    {
      "client_order_id": "string",
      "status": "created",
      "client_order_status": "string",
      "location": {
        "address": {
          "country": "string",
          "city": "string",
          "street": "string",
          "house": 1,
          "building": 1,
          "floor": 4,
          "entrance": 4,
          "full_text": "string"
        },
        "coordinates": {
          "latitude": 0,
          "longitude": 0
        }
      },
      "delivery_policy": {
        "type": "time_interval",
        "time_interval": {
          "from": "2025-08-13T07:00:00.000Z",
          "to": "2025-08-13T07:00:00.000Z"
        }
      },
      "content": {
        "carrying_requirements": {
          "weight_g": 0,
          "units_count": 0
        },
        "verbose_item_list": [
          {
            "item_verbose_name": "пицца",
            "quantity": 1
          }
        ]
      },
      "required_tag_list": [
        "string"
      ],
      "order_priority": "standard",
      "depot_id": "string",
      "stage_durations": {
        "order_preparing_duration_s": 0,
        "source_order_exchange_service_duration_s": 0,
        "destination_order_exchange_service_duration_s": 0,
        "parking_service_durations": {
          "car_parking_duration_s": 0,
          "bike_parking_duration_s": 0
        }
      },
      "payment_info": {
        "payment_method": "string"
      },
      "recipient_info": {
        "recipient_id": "some_recipient_id"
      }
    }
  ],
  "solver_options_preset_id": "fast_delivery_preset"
}
```

{% endcut %}

{% cut "Пример ответа" %}

```json
{
  "id": "task-id-12345",
  "status": {
    "queued": 0,
    "started": 0,
    "completed": 0,
    "cancelled": 0,
    "estimate": 0
  },
  "message": "string"
}
```

{% endcut %}

## Шаг 2. Обновление маршрута

Чтобы актуализировать маршрут, отправьте повторный [POST-запрос](https://yandex.ru/routing/doc/ru/oob/redoc/index.html#/paths/~1api~1integration~1v1~1ondemand~1routes~1create/post). Сервис обновит данные и сформирует новый маршрут.

### Обновление заказов

Алгоритм сопоставляет заказы из полученного запроса с теми, что уже передавались в сервис, и обновляет данные:

1. Заказы, которые были переданы ранее, но отсутствуют в новом запросе, удаляются.

1. Заказы, которые не были переданы ранее, добавляются как новые.

1. Для заказов, которые были переданы ранее и присутствуют в новом запросе:

   * обновляются все поля (приоритет, адрес и др.), которые переданы в запросе;

   * остальные поля сохраняются без изменений.

### Обновление курьеров

Алгоритм сопоставляет курьеров из запроса с теми, что уже зарегистрированы в сервисе, и обновляет данные:

1. Курьеры, которые были переданы ранее, но отсутствуют в новом запросе, считаются временно недоступными.

1. Курьеры, которые не были переданы ранее, регистрируются в сервисе.

1. Для курьеров, которые которые были переданы ранее и присутствуют в новом запросе:

   * обновляются все поля (смена, настройки назначения и др.), которые переданы в запросе;

   * остальные поля сохраняются без изменений.

## Шаг 3. Запрос результата

Получите информацию о статусе задачи с помощью метода [FetchBuildRoutesResult](https://yandex.ru/routing/doc/ru/oob/redoc/index.html#/paths/~1api~1integration~1v1~1ondemand~1routes~1fetch-build-routes-result~1{task_id}/get), используя `task_id`, который вы получили на шаге 1.

<!-- source: ru/oob/_includes/feedback.md -->
<a href="feedback">
  <span class="button">Написать в службу поддержки</span>
</a>


<!-- endsource: ru/oob/_includes/feedback.md -->
