---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/support/delivery-profile/ru/api/rover/software.md
  - href: ru/api/rover/software.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/support/delivery-profile/ru/llms.txt

# Доработка программного обеспечения

Чтобы подключить тарифы **«robot»** и **«robot_d2d»**, доработайте свое программное обеспечение. В этом разделе описаны необходимые изменения.

## Опции доставки роботом {#delivery-options}

### Проверка доступности тарифа {#check-availability}

Перед [созданием заказа](#create-order) проверьте доступность тарифов «robot» или «robot_d2d» для торговой точки.

Проверку доступности выполняйте через [метод](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2OfferCalculate.md#entity-CalculatedOffer) [`IntegrationV2OfferCalculate`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2OfferCalculate.md#entity-CalculatedOffer).

- Получив в ответе `taxi_class: robot`, отобразите в приложении опцию **«Доставка роботом»**. Клиент должен явно подтвердить согласие спуститься к роботу для получения заказа.
- Получив в ответе `taxi_class: robot_d2d`, отображать опцию выбора для клиента необязательно: тариф предполагает доставку курьером на последней миле, спускаться к роботу не потребуется.

Партнер может самостоятельно принять решение о выборе тарифа.

Если маршрут заказа не обслуживается роботами, либо свободных роботов в наличии нет, предложение по тарифу не появится.

### Создание заказа {#create-order}

Для создания заказа используйте [метод](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsCreate.md#entity-ClientRequirements) [`IntegrationV2ClaimsCreate`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsCreate.md#entity-ClientRequirements). Установите параметр `taxi_class` в значение `robot` или `robot_d2d`.

Обязательные параметры для создания заказа роботом:

- `ClientRequirements.taxi_class:` — `robot` или `robot_d2d`;
- `assign_robot: true` — передавайте на том же уровне, что и `taxi_class`;
- `skip_confirmation: true` — исключает требование SMS-подтверждения. В будущем параметр будет игнорироваться для роботов.

{% note info %}

Существует возможность создания черновика заказа сразу через [метод](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsCreate.md) [`IntegrationV2ClaimsCreate`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsCreate.md), пропустив проверку доступности тарифов [методом](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2OfferCalculate.md#entity-CalculatedOffer) [`IntegrationV2OfferCalculate`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2OfferCalculate.md#entity-CalculatedOffer).

Если роботы недоступны, создание черновика завершится ошибкой.

Перед созданием черновика заказа рекомендуем [проверить доступность тарифа](#check-availability) через запрос вариантов доставки.

{% endnote %}

### Обработка информации о заявке {#process-claim-info}

В ответе [метода](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsInfo.md) [`IntegrationV2ClaimsInfo`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsInfo.md) для заказа, который выполняет робот:

- `PerformerInfo.transport_type` будет равно `robot` или `robot_d2d`;
- `PerformerInfo.courier_name` указан номер робота.

При поломке робота в пути сервис автоматически переназначает заказ на курьера. Если переназначить заказ не удалось, заказ отменяется, а в поле `performer_cancel_reasons` будет указана причина отмены. Возможные значения:

- `rover_technical_problem` — техническая проблема с роботом;
- `rover_no_road` — нет маршрута для робота;
- `restaurant_closed` — точка погрузки (ресторан) закрыта;
- `rover_empty` — робот пуст (заказ не был погружен);
- `rover_incident` — инцидент с роботом (например, столкновение);
- `rover_full_cancel` — полная отмена по инициативе робота.

Также для заказа роботом:

- `ClientRequirements.taxi_class` и `MatchedCar.client_taxi_class` будут равны `robot` или `robot_d2d`;
- `V2ResponseCargoPoint.handover_status` может принимать значения `pending`, `initialized`, `complete`, `skipped`.

### Оповещение сотрудников и управление крышкой {#notify-and-control}

Настройте систему оповещения сотрудников о прибытии робота для погрузки или выгрузки. Реализуйте интерфейс для открытия крышки робота с помощью методов [`IntegrationV1RobotHandoverInitialize`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverInitialize.md) и [`IntegrationV1RobotHandoverInfo`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverInfo.md).

Крышка закрывается автоматически, если на точке погрузки настроено подтверждение размещения заказа. Если подтверждение не настроено, крышку можно закрыть только механически — нажав кнопку **«Закрыть крышку»** на корпусе робота или надавив на крышку.

### Получение заказа клиентом {#client-receipt}

Для тарифа `robot`: предупредите клиента, что нужно спуститься к роботу. Для открытия крышки используйте [метод](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverInitialize.md) [`IntegrationV1RobotHandoverInitialize`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverInitialize.md). Вызывается, когда точка маршрута в статусе `arrived`. После получения заказа клиент закрывает крышку механически — нажав кнопку **«Закрыть крышку»** на корпусе робота или надавив на крышку. Подтверждение получения заказа на точке выгрузки не предусмотрено.

Для тарифа `robot_d2d`: процесс получения заказа клиентом аналогичен стандартному сценарию курьерской доставки после передачи заказа от робота курьеру. Дополнительно можно реализовать в клиентском приложении отображение этапов доставки с участием робота и курьера, включая статусы передачи заказа между ними.

## Типовой сценарий использования {#typical-scenario}

1. **Проверка доступности**.

   Запросите варианты доставки через [`IntegrationV2OfferCalculate`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2OfferCalculate.md).
2. **Создание заказа**.

    Создайте заказ через [`IntegrationV2ClaimsCreate`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsCreate.md) с параметрами робота.
3. **Отслеживание статуса**.

   Получите информацию о заказе через методы [`IntegrationV2ClaimsInfo`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV2ClaimsInfo.md) и [`IntegrationV1RobotHandoverInfo`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverInfo.md).
4. **Управление крышкой**.

   Откройте крышку робота с помощью [`IntegrationV1RobotHandoverInitialize`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverInitialize.md). Подтвердите завершение обмена с роботом методом [`IntegrationV1RobotHandoverConfirm`](https://yandex.com/support/delivery-profile/ru/api/express/openapi/IntegrationV1RobotHandoverConfirm.md).
5. **Обработка инцидентов**.

   При возникновении проблем следуйте инструкциям из раздела [Возможные проблемы](https://yandex.com/support/delivery-profile/ru/api/rover/common.md#problem-scenarios).
6. **Завершение доставки**.

   Доставка считается завершенной в момент закрытия крышки — после вручения заказа клиенту или при возврате заказа.
