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

Порядок работы для агента · Методы API и схема OpenAPI.

Назначение

Получите начальный курсор для выбранной границы синхронизации. Вызывайте метод при отсутствии сохранённого курсора. Для следующих порций используйте POST /api/orders/changesForExecutors/get/v0 и передавайте сохранённый курсор в lastId.

Метод: POST /api/orders/changesForExecutors/getLastLogId/v0

Доступ

Аутентификация Требуется
Роли организаций exec
Права пользователя view_all_orders_exec
Область доступа Организации-исполнители, доступные текущему пользователю

Нужны роль exec и право view_all_orders_exec. В выборку входят только доступные организации-исполнители.

Эффект Только чтение
Повтор вызова Безопасно повторять
Повтор после ошибки Только после временных ошибок
Автоматизация Требуется подтверждение
Чувствительность данных Содержит чувствительные данные

Входные данные

Укажите executorId, если нужна одна доступная организация. Если поле опущено, метод проверяет все доступные организации-исполнители. Параметр может только сузить область доступа.

toTime — исключающая граница в формате RFC 3339. Метод ищет последнее изменение строго до указанного времени. Если параметр опущен, граница устанавливается за 32 дня до обработки запроса.

Результат

id — курсор журнала изменений. Передайте его как lastId в POST /api/orders/changesForExecutors/get/v0. Метод ленты возвращает изменения с большим идентификатором. Для деталей выберите orderId из записей ленты и передайте их как exactOrderIds в POST /api/orders/v0/transferOrder/getFlatForExecutor. Перед запросом деталей можно убрать повторяющиеся идентификаторы. Описывайте заказ по ответу метода деталей.

Успешный ответ с id: 0 означает, что до границы в выбранной области нет изменений. Используйте 0 как начальный lastId.

Повтор запроса

Метод только читает данные. Повторяйте запрос после временных сетевых ошибок и ошибок сервера. При ошибке доступа сначала устраните её причину.

Работа с чувствительными данными

Выбирайте только идентификаторы, нужные для задачи. Передавайте исходные значения в ответ пользователю, контекст ИИ или внешнюю систему только по явному запросу, при подтверждённой необходимости и с действующим доступом. Исключите исходные значения из журналов, трассировок, метрик и диагностики. Используйте синтетические идентификаторы в примерах.

Поле Класс данных Субъект По умолчанию Ограничения
request.data.executorId Внутренний идентификатор Организация Не показывать Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения
Поле Класс данных Субъект По умолчанию Ограничения
response.data.id Внутренний идентификатор Коммерческие данные Не показывать Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения

Проверенные примеры

Пример содержит синтетические данные. Для проверки документации используйте его без вызова рабочего сервиса.

Курсор перед заданным моментом · синтетический пример

Все идентификаторы и значения в примере синтетические.

Запрос

{
  "data": {
    "executorId": "executor-example",
    "toTime": "2000-01-02T00:00:00Z"
  }
}

Сокращённый ответ

{
  "data": {
    "id": 42001
  }
}

Ответ при отсутствии более раннего изменения.

{
  "data": {
    "id": 0
  }
}

Блоки запроса и ответов ниже сгенерированы из OpenAPI. Подстановки вроде example показывают структуру JSON. Для вызова возьмите значения из сценария, справочников или предыдущих ответов API.

Request

POST

https://partner-test-yamagistrali.ru/api/orders/changesForExecutors/getLastLogId/v0

Тестовый стенд

Body

application/json
{
  "data": {
    "executorId": "example",
    "toTime": "2025-07-22T20:21:19.773333823Z"
  }
}

Name

Description

data

Type: OrdersChangesForExecutorsGetLastLogIdV0Request

Example
{
  "executorId": "example",
  "toTime": "2025-07-22T20:21:19.773333823Z"
}

OrdersChangesForExecutorsGetLastLogIdV0Request

Name

Description

executorId

Type: string | null

Example: example

toTime

Type: string | null

Example: 2025-07-22T20:21:19.773333823Z

Example
{
  "executorId": "example",
  "toTime": "2025-07-22T20:21:19.773333823Z"
}

Responses

200 OK

OK

Body

application/json
{
  "data": {
    "id": 0
  }
}

Name

Description

data

Type: OrdersChangesForExecutorsGetLastLogIdV0Response

Example
{
  "id": 0
}

OrdersChangesForExecutorsGetLastLogIdV0Response

Name

Description

id

Type: integer

Example
{
  "id": 0
}

400 Bad Request

Bad Request

Body

application/json
{
  "error": {
    "info": {},
    "message": "example",
    "message_code": "example"
  }
}

Name

Description

error

Type: Error

Example
{
  "info": {},
  "message": "example",
  "message_code": "example"
}

Error

Name

Description

info

Type: object

Example
{}

message

Type: string

Example: example

message_code

Type: string

Example: 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
{
  "info": {},
  "message": "example",
  "message_code": "example"
}

500 Internal Server Error

Internal Server Error

Body

application/json
{
  "error": {
    "info": {},
    "message": "example",
    "message_code": "example"
  }
}

Name

Description

error

Type: Error

Example
{
  "info": {},
  "message": "example",
  "message_code": "example"
}