---
metadata:
  - name: generator
    content: Diplodoc Platform v5.19.6
alternate:
  - https://yandex.ru/dev/sdg-robot/en/quick-start.md
  - https://yandex.ru/dev/sdg-robot/ru/quick-start.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/sdg-robot/ru/llms.txt

# Основной сценарий

{% note info "" %}

В этом разделе описан самый простой сценарий: сервис автоматически подбирает робота-исполнителя, робот забирает груз в точке погрузки и отвозит в точку доставки. Подробнее о других вариантах см. [Популярные сценарии](https://yandex.ru/dev/sdg-robot/ru/use-cases.md).

{% endnote %}

#|
|| **Шаг** | **Кто выполняет** | **Действие** ||
|| 1 | Партнер | [Создает заказ](https://yandex.ru/dev/sdg-robot/ru/ref/claims/create_handler_claims_create_post) на доставку груза клиенту. 

В теле запроса в массиве `route_points` укажите точку погрузки `type` = `source` и точку доставки `type` = `destination`. Порядок посещения указывается для каждой точки в поле `visit_order`, нумерация начинается с 0. 

В блоке `conditions` можно указать параметр `maximum_first_point_eta` — тогда при подборе исполнителя будут рассатриваться только те роботы, которые смогут прибыть в точку погрузки не позднее указанного времени.

Сервис ожидает дату и время с указанием часового пояса. Примеры форматов:
- 2026-01-11 17:26:27.704301+00:00
- 2026-01-11T19:18:43Z

Если часовой пояс не указан, сервис считает, что это UTC+0.

{% cut "Запрос" %} 

```bash
POST /claims/create?idempotency_key=<your_idempotency_key>
```

```json
{
"route_points": [
    {
    "address": {
        "coordinates": [
            55.733989, 
            37.588116
        ]
    },
    "point_id": "0",
    "type": "source",
    "visit_order": 0
    },
    {
    "address": {
        "coordinates": [
            55.735120, 
            37.642817
        ]
    },
    "point_id": "1",
    "type": "destination",
    "visit_order": 1
    }
],
"external_order_id": "Order #1",
"conditions": {}
}
```

{% endcut %}

В ответе возвращается идентификатор созданного заказа `id`.

{% cut "Ответ" %}

```json
{
    "created_at": "2025-01-29T18:02:01Z",
    "updated_at": "2025-01-29T18:02:01Z",
    "id": "5555",
    "route_points": [
        {
            "address": {
                "coordinates": [
                    55.733989, 
                    37.588116
                ]
            },
            "id": "0",
            "visit_order": 0
        },
        {
            "address": {
                "coordinates": [
                    55.735120, 
                    37.642817
                ]
            },
            "id": "1",
            "visit_order": 0
        }
    ],
    "status": "new",
    "eta": 100,
    "user_request_revision": "0"
}
```

{% endcut %}

<!-- Дополнительный сценарий: 

- В заказе [несколько точек погрузки и доставки](https://yandex.ru/dev/sdg-robot/ru/use-cases.md#multi-order). -->

||
|| 2 | Сервис | Оценивает заказ, это занимает около 1 секунды. Заказ автоматически одобряется, рассчитывается ожидаемое время доставки заказа клиенту (ETA). Для заказа подбирается робот-исполнитель, заказ передается на выполнение и получает статус `performer_found`.  

Дополнительные сценарии:

- [Нет свободных роботов](https://yandex.ru/dev/sdg-robot/ru/use-cases.md#no-free-courier) для выполнения заказа.  

- Самостоятельный [выбор робота-исполнителя](https://yandex.ru/dev/sdg-robot/ru/use-cases.md#select-performer) для заказа.

||
|| 3 | Партнер | [Запрашивает статус заказа](https://yandex.ru/dev/sdg-robot/ru/ref/claims/info_handler_claims_info_post), используя идентификатор заказа `id`, который он получил на шаге 1. Этот же запрос используется на протяжении всего маршрута для контроля текущего статуса заказа и ETA, см. [Статусная модель](https://yandex.ru/dev/sdg-robot/ru/statuses.md).

{% cut "Запрос" %} 
    
```bash
POST /claims/info?claim_id=<your_claim_id>
```

{% endcut %}

Для одобренного заказа `status` = `accepted`. Планируемое время доставки возвращается в поле `eta`.

{% cut "Ответ" %}

```json
{
    "created_at": "2025-01-29T18:02:01Z",
    "updated_at": "2025-01-29T18:02:01Z",
    "id": "5555",
    "route_points": [
        {
            "address": {
                "coordinates": [
                    55.733989, 
                    37.588116
                ]
            },
            "id": "0",
            "visit_order": 0
        },
        {
            "address": {
                "coordinates": [
                    55.735120, 
                    37.642817
                ]
            },
            "id": "1",
            "visit_order": 0
        }
    ],
    "status": "new",
    "eta": 100,
    "user_request_revision": "0"
}
```

{% endcut %} 

||
|| 4 | Робот | Прибывает в точку, где должен забрать груз. Статус заказа — `pickup_arrived`. 
||
|| 5 | Партнер | [Открывает крышку](https://yandex.ru/dev/sdg-robot/ru/ref/claims/open_hatch_handler_claims_open_hatch_post), чтобы положить груз.

{% cut "Запрос" %} 
   
```bash
POST /claims/open_hatch?claim_id=<your_claim_id>&idempotency_key=<your_idempotency_key>
```

{% endcut %}

||
|| 6 | Партнер | Когда груз погружен, [подтверждает](https://yandex.ru/dev/sdg-robot/ru/ref/claims/confirm_exchange_handler_claims_confirm_exchange_post) факт погрузки груза.  При подтверждении автоматически выполняется закрытие крышки робота, отдельно этот запрос выполнять не обязательно.

{% cut "Запрос" %} 

```bash
POST /claims/confirm_exchange?claim_id=<your_claim_id>&idempotency_key=<your_idempotency_key>
```

{% endcut %}

||
|| 7 | Робот | Отвозит груз в точку доставки. Статус заказа — `delivery_arrived`.  
||
|| 8 | [Клиент](*app) | [Открывает крышку](https://yandex.ru/dev/sdg-robot/ru/ref/claims/open_hatch_handler_claims_open_hatch_post), чтобы забрать груз.

{% cut "Запрос" %} 
    
```bash
POST /claims/open_hatch?claim_id=<your_claim_id>&idempotency_key=<your_idempotency_key>
``` 

{% endcut %}

Дополнительный сценарий: 

- Клиент [не забрал заказ](https://yandex.ru/dev/sdg-robot/ru/use-cases.md#missed).

||
|| 9 | [Клиент](*app) | Когда груз получен, [подтверждает](https://yandex.ru/dev/sdg-robot/ru/ref/claims/confirm_exchange_handler_claims_confirm_exchange_post) факт получения груза. При подтверждении автоматически выполняется закрытие крышки робота, отдельно этот запрос выполнять не обязательно.

{% cut "Запрос" %} 

```bash
POST /claims/confirm_exchange?claim_id=<your_claim_id>&idempotency_key=<your_idempotency_key>
```

{% endcut %}

Дополнительный сценарий: 

- Клиент [вернул заказ](https://yandex.ru/dev/sdg-robot/ru/use-cases.md#returned).

||
|#

{#a} 

Заказ получает статус `delivered`. Выполнение заказа завершено. 

{% include notitle [feedback](_includes/feedback-96015e8dc7c1.md) %} 


[*app]: Клиент использует мобильное приложение партнера.
