Получить изменения заказов исполнителя
Порядок работы для агента · Методы API и схема OpenAPI.
Назначение
Получите порцию изменений после сохранённого курсора. Для первого запроса выберите границу синхронизации и получите начальный курсор через POST /api/orders/changesForExecutors/getLastLogId/v0. Запись ленты сообщает об изменении. За актуальным состоянием заказа обращайтесь к методу деталей.
Метод:
POST /api/orders/changesForExecutors/get/v0
Доступ
| Аутентификация | Требуется |
| Роли организаций | exec |
| Права пользователя | view_all_orders_exec |
| Область доступа | Организации-исполнители, доступные текущему пользователю |
Нужны роль exec и право view_all_orders_exec. В выборку входят только доступные организации-исполнители.
| Эффект | Только чтение |
| Повтор вызова | Безопасно повторять |
| Повтор после ошибки | Только после временных ошибок |
| Автоматизация | Требуется подтверждение |
| Чувствительность данных | Содержит чувствительные данные |
Входные данные
Укажите executorId, если нужна одна доступная организация. Если поле опущено, метод проверяет все доступные организации-исполнители. Параметр может только сузить область доступа.
lastId — исключающая нижняя граница. В ответ попадают только изменения с id > lastId. Если параметр опущен, используется 0.
Если право чтения есть в другой организации, запрос с недоступным executorId может вернуть пустой список. При отсутствии права во всех организациях метод возвращает 403.
limit задаёт максимальный размер одной порции. Значение по умолчанию — 100. Значения выше 1000 ограничиваются 1000.
Результат
Обрабатывайте записи в порядке возрастания id. После успешной обработки всей порции сохраните последний changes[].id как следующий lastId. Для курсора нужен идентификатор изменения. Ответ не содержит общего числа записей или отдельного признака следующей страницы.
Успешный ответ с changes: [] или допустимым по схеме changes: null не содержит записей. Сохраните текущий курсор для следующего вызова. Если ключ changes отсутствует, проверьте ответ перед продолжением.
changes[].updatedAt — время изменения.
changes[].executorId — идентификатор организации, связанной с изменением.
changes[].orderId — идентификатор изменившегося заказа. Выберите нужные идентификаторы и передайте их как exactOrderIds в POST /api/orders/v0/transferOrder/getFlatForExecutor. Перед запросом можно убрать повторы, чтобы уменьшить его размер. Описывайте статус, маршрут, груз и участников по ответу метода деталей.
Повтор запроса
Метод только читает данные. Повторяйте запрос после временных сетевых ошибок и ошибок сервера. При ошибке доступа сначала устраните её причину.
Работа с чувствительными данными
Выбирайте только идентификаторы, нужные для задачи. Передавайте исходные значения в ответ пользователю, контекст ИИ или внешнюю систему только по явному запросу, при подтверждённой необходимости и с действующим доступом. Исключите исходные значения из журналов, трассировок, метрик и диагностики. Используйте синтетические идентификаторы в примерах.
| Поле | Класс данных | Субъект | По умолчанию | Ограничения |
|---|---|---|---|---|
request.data.executorId |
Внутренний идентификатор | Организация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
| Поле | Класс данных | Субъект | По умолчанию | Ограничения |
|---|---|---|---|---|
request.data.lastId |
Внутренний идентификатор | Коммерческие данные | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
| Поле | Класс данных | Субъект | По умолчанию | Ограничения |
|---|---|---|---|---|
response.data.changes[].executorId |
Внутренний идентификатор | Организация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.changes[].id |
Внутренний идентификатор | Коммерческие данные | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
response.data.changes[].orderId |
Внутренний идентификатор | Коммерческие данные | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
Проверенные примеры
Пример содержит синтетические данные. Для проверки документации используйте его без вызова рабочего сервиса.
Следующая порция изменений · синтетический пример
Две синтетические записи показывают порядок и продолжение чтения по курсору.
Запрос
{
"data": {
"executorId": "executor-example",
"lastId": 42000,
"limit": 2
}
}
Сокращённый ответ
{
"data": {
"changes": [
{
"id": 42001,
"updatedAt": "2000-01-02T00:01:00Z",
"executorId": "executor-example",
"orderId": "0-example-0000-00-00-001"
},
{
"id": 42002,
"updatedAt": "2000-01-02T00:02:00Z",
"executorId": "executor-example",
"orderId": "0-example-0000-00-00-002"
}
]
}
}
Ответ при отсутствии новых изменений.
{
"data": {
"changes": []
}
}
Блоки запроса и ответов ниже сгенерированы из OpenAPI. Подстановки вроде
exampleпоказывают структуру JSON. Для вызова возьмите значения из сценария, справочников или предыдущих ответов API.
Request
POST
https://partner-test-yamagistrali.ru/api/orders/changesForExecutors/get/v0
Тестовый стенд
Body
application/json
{
"data": {
"executorId": "example",
"lastId": 0,
"limit": 0
}
}
|
Name |
Description |
|
data |
Type: OrdersChangesForExecutorsGetV0Request Example
|
OrdersChangesForExecutorsGetV0Request
|
Name |
Description |
|
executorId |
Type: string | null Example: |
|
lastId |
Type: integer | null |
|
limit |
Type: integer | null |
Example
{
"executorId": "example",
"lastId": 0,
"limit": 0
}
Responses
200 OK
OK
Body
application/json
{
"data": {
"changes": [
{
"executorId": "example",
"id": 0,
"orderId": "example",
"updatedAt": "2025-07-22T20:21:19.773333823Z"
}
]
}
}
|
Name |
Description |
|
data |
Type: OrdersChangesForExecutorsGetV0Response Example
|
OrdersChangesForExecutorsGetV0ChangeItems
|
Name |
Description |
|
executorId |
Type: string Example: |
|
id |
Type: integer |
|
orderId |
Type: string Example: |
|
updatedAt |
Type: string Example: |
Example
{
"executorId": "example",
"id": 0,
"orderId": "example",
"updatedAt": "2025-07-22T20:21:19.773333823Z"
}
OrdersChangesForExecutorsGetV0Response
|
Name |
Description |
|
changes |
Type: OrdersChangesForExecutorsGetV0ChangeItems[] | null Example
|
Example
{
"changes": [
{
"executorId": "example",
"id": 0,
"orderId": "example",
"updatedAt": "2025-07-22T20:21:19.773333823Z"
}
]
}
400 Bad Request
Bad Request
Body
application/json
{
"error": {
"info": {},
"message": "example",
"message_code": "example"
}
}
|
Name |
Description |
|
error |
Type: Error Example
|
Error
|
Name |
Description |
|
info |
Type: object Example
|
|
message |
Type: string Example: |
|
message_code |
Type: string Example: |
Example
{
"info": {},
"message": "example",
"message_code": "example"
}
403 Forbidden
Forbidden
Body
application/json
{
"error": {
"info": {},
"message": "example",
"message_code": "example"
}
}
|
Name |
Description |
|
error |
Type: Error Example
|
500 Internal Server Error
Internal Server Error
Body
application/json
{
"error": {
"info": {},
"message": "example",
"message_code": "example"
}
}
|
Name |
Description |
|
error |
Type: Error Example
|