Получить начальный курсор изменений заказов заказчика
Порядок работы для агента · Методы API и схема OpenAPI.
Назначение
Получите начальный курсор для выбранной границы синхронизации. Вызывайте метод при отсутствии сохранённого курсора. Для следующих порций используйте POST /api/orders/changesForForwarders/get/v0 и передавайте сохранённый курсор в lastId.
Метод:
POST /api/orders/changesForForwarders/getLastLogId/v0
Доступ
| Аутентификация | Требуется |
| Роли организаций | exp |
| Права пользователя | view_all_orders_exp |
| Область доступа | Организации с ролью заказчика, доступные текущему пользователю |
Доступ к ленте и доступ к карточкам заказа проверяются отдельно. Перед запросом с чувствительными данными получите подтверждение пользователя. В выборку входят только доступные организации с ролью заказчика.
| Эффект | Только чтение |
| Повтор вызова | Безопасно повторять |
| Повтор после ошибки | Только после временных ошибок |
| Автоматизация | Требуется подтверждение |
| Чувствительность данных | Содержит чувствительные данные |
Входные данные
Укажите forwarderId, если нужна одна доступная организация. Если поле опущено, метод проверяет все доступные организации с ролью заказчика. Параметр может только сузить область доступа.
toTime — исключающая граница в формате RFC 3339. Метод ищет последнее изменение строго до указанного времени. Если параметр опущен, граница устанавливается за 32 дня до обработки запроса.
Результат
id — курсор журнала изменений. Передайте его как lastId в POST /api/orders/changesForForwarders/get/v0. Метод ленты возвращает изменения с большим идентификатором. Для деталей выберите orderId из записей ленты и передайте их как exactOrderIds в POST /api/orders/v0/transferOrder/getFlatForCustomer. Перед запросом деталей можно убрать повторяющиеся идентификаторы. Описывайте заказ по ответу метода деталей.
Успешный ответ с id: 0 означает, что до границы в выбранной области нет изменений. Используйте 0 как начальный lastId.
Повтор запроса
Метод только читает данные. Повторяйте запрос после временных ошибок сервера. При ошибке доступа сначала устраните её причину.
Работа с чувствительными данными
Выбирайте только идентификаторы, нужные для задачи. Передавайте исходные значения в ответ пользователю, контекст ИИ или внешнюю систему только по явному запросу, при подтверждённой необходимости и с действующим доступом. Исключите исходные значения из журналов, трассировок, метрик и диагностики. Используйте синтетические идентификаторы в примерах.
| Поле | Класс данных | Субъект | По умолчанию | Ограничения |
|---|---|---|---|---|
request.data.forwarderId |
Внутренний идентификатор | Организация | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
| Поле | Класс данных | Субъект | По умолчанию | Ограничения |
|---|---|---|---|---|
response.data.id |
Внутренний идентификатор | Коммерческие данные | Не показывать | Пользователю: только при явной подтверждённой необходимости; в AI-контекст: только при явной подтверждённой необходимости; во внешние системы: только при явной подтверждённой необходимости; в журналы, трассировки и метрики: не передавать исходное значение; примеры: только синтетические значения |
Проверенные примеры
Пример содержит синтетические данные. Для проверки документации используйте его без вызова рабочего сервиса.
Начальный курсор для одной организации · синтетический пример
Синтетический пример запрашивает последний идентификатор изменения перед явно заданным моментом времени.
Запрос
{
"data": {
"forwarderId": "example-forwarder-org",
"toTime": "2030-01-15T12:00:00Z"
}
}
Сокращённый ответ
{
"data": {
"id": 1001
}
}
Ответ при отсутствии более раннего изменения.
{
"data": {
"id": 0
}
}
Блоки запроса и ответов ниже сгенерированы из OpenAPI. Подстановки вроде
exampleпоказывают структуру JSON. Для вызова возьмите значения из сценария, справочников или предыдущих ответов API.
Request
POST
https://partner-test-yamagistrali.ru/api/orders/changesForForwarders/getLastLogId/v0
Тестовый стенд
Body
application/json
{
"data": {
"forwarderId": "example",
"toTime": "2025-07-22T20:21:19.773333823Z"
}
}
|
Name |
Description |
|
data |
Type: OrdersChangesForForwardersGetLastLogIdV0Request Example
|
OrdersChangesForForwardersGetLastLogIdV0Request
|
Name |
Description |
|
forwarderId |
Type: string | null Example: |
|
toTime |
Type: string | null Example: |
Example
{
"forwarderId": "example",
"toTime": "2025-07-22T20:21:19.773333823Z"
}
Responses
200 OK
OK
Body
application/json
{
"data": {
"id": 0
}
}
|
Name |
Description |
|
data |
Type: OrdersChangesForForwardersGetLastLogIdV0Response Example
|
OrdersChangesForForwardersGetLastLogIdV0Response
|
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
|
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
|