---
metadata:
  - name: generator
    content: Diplodoc Platform v5.70.0
vcsPath: >-
  motorway/magacg/support/docs/src/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md
alternate:
  - href: >-
      https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md
    type: text/markdown
    title: Markdown version
  - href: https://yamagistrali.ru/docs/ru-x-ai/llms.txt
    rel: describedby
---
<div class="openapi">

# Получить изменения заказов заказчика

<!-- markdownlint-disable-file -->

[Порядок работы для агента](https://yamagistrali.ru/docs/ru-x-ai/concepts/agent-workflow.md) · [Методы API и схема OpenAPI](https://yamagistrali.ru/docs/ru-x-ai/methods/index.md).

## Назначение

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

> **Метод:** `POST /api/orders/changesForForwarders/get/v0`

## Доступ

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

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

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

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

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

`lastId` — исключающая нижняя граница. В ответ попадают только изменения с `id > lastId`. Если параметр опущен, используется `0`.

`limit` задаёт максимальный размер одной порции. Значение по умолчанию — 100. Значения выше 1000 ограничиваются 1000.

## Результат

Обрабатывайте записи в порядке возрастания `id`. После успешной обработки всей порции сохраните последний `changes[].id` как следующий `lastId`. Для курсора нужен идентификатор изменения. Ответ не содержит общего числа записей или отдельного признака следующей страницы.

Успешный ответ с `changes: []` означает, что после курсора в выбранной области нет новых записей. Сохраните текущий курсор для следующего вызова.

`changes[].updatedAt` — время изменения.

`changes[].forwarderId` — идентификатор организации, связанной с изменением.

`changes[].orderId` — идентификатор изменившегося заказа. Выберите нужные идентификаторы и передайте их как `exactOrderIds` в `POST /api/orders/v0/transferOrder/getFlatForCustomer`. Перед запросом можно убрать повторы, чтобы уменьшить его размер. Описывайте статус, маршрут, груз и участников по ответу метода деталей.

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

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

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

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

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

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

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

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

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

**Следующая порция изменений** · _синтетический пример_

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

**Запрос**

```json
{
  "data": {
    "forwarderId": "example-forwarder-org",
    "lastId": 1001,
    "limit": 2
  }
}
```

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

```json
{
  "data": {
    "changes": [
      {
        "id": 1002,
        "updatedAt": "2030-01-15T12:01:00Z",
        "forwarderId": "example-forwarder-org",
        "orderId": "0-example-0000-00-00-001"
      },
      {
        "id": 1003,
        "updatedAt": "2030-01-15T12:02:00Z",
        "forwarderId": "example-forwarder-org",
        "orderId": "0-example-0000-00-00-002"
      }
    ]
  }
}
```

Ответ при отсутствии новых изменений.

```json
{
  "data": {
    "changes": []
  }
}
```

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

## Request

<div class="openapi__requests">

<div class="openapi__request__wrapper" style="--method: var(--dc-openapi-methods-post);margin-bottom: 12px">

<div class="openapi__request">

POST {.openapi__method}
```text translate=no
https://partner-test-yamagistrali.ru/api/orders/changesForForwarders/get/v0
```

</div>

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

</div>

</div>

<div class="openapi-entity">

### Body

{% cut "application/json" %}

```json translate=no
{
  "data": {
    "forwarderId": "example",
    "lastId": 0,
    "limit": 0
  }
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_data_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: [OrdersChangesForForwardersGetV0Request](https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md#entity-OrdersChangesForForwardersGetV0Request)

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "forwarderId": "example",
  "lastId": 0,
  "limit": 0
}
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

</div>

<div class="openapi-entity">

### OrdersChangesForForwardersGetV0Request {#entity-OrdersChangesForForwardersGetV0Request}

#|
|| **Name** | **Description** ||
||

_forwarderId_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string &#124; null

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_lastId_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: integer &#124; null
{.table-cell}
||
||

_limit_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: integer &#124; null
{.table-cell}
||
|#{.json-schema-properties}

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "forwarderId": "example",
  "lastId": 0,
  "limit": 0
}
```

{% endcut %}

</div>

## Responses

<div class="openapi__response__code__200">

## 200 OK

OK

<div class="openapi-entity">

### Body

{% cut "application/json" %}

```json translate=no
{
  "data": {
    "changes": [
      {
        "forwarderId": "example",
        "id": 0,
        "orderId": "example",
        "updatedAt": "2025-07-22T20:21:19.773333823Z"
      }
    ]
  }
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_data_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: [OrdersChangesForForwardersGetV0Response](https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md#entity-OrdersChangesForForwardersGetV0Response)

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "changes": [
    {
      "forwarderId": "example",
      "id": 0,
      "orderId": "example",
      "updatedAt": "2025-07-22T20:21:19.773333823Z"
    }
  ]
}
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

</div>

<div class="openapi-entity">

### OrdersChangesForForwardersGetV0ChangesForForwarderItem {#entity-OrdersChangesForForwardersGetV0ChangesForForwarderItem}

#|
|| **Name** | **Description** ||
||

_forwarderId_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: string

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_id_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: integer
{.table-cell}
||
||

_orderId_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: string

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_updatedAt_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: string

_Example:_{.json-schema-reset .json-schema-example} `2025-07-22T20:21:19.773333823Z`
{.table-cell}
||
|#{.json-schema-properties}

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "forwarderId": "example",
  "id": 0,
  "orderId": "example",
  "updatedAt": "2025-07-22T20:21:19.773333823Z"
}
```

{% endcut %}

</div>

<div class="openapi-entity">

### OrdersChangesForForwardersGetV0Response {#entity-OrdersChangesForForwardersGetV0Response}

#|
|| **Name** | **Description** ||
||

_changes_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: [OrdersChangesForForwardersGetV0ChangesForForwarderItem](https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md#entity-OrdersChangesForForwardersGetV0ChangesForForwarderItem)[] &#124; null

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
[
  {
    "forwarderId": "example",
    "id": 0,
    "orderId": "example",
    "updatedAt": "2025-07-22T20:21:19.773333823Z"
  }
]
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "changes": [
    {
      "forwarderId": "example",
      "id": 0,
      "orderId": "example",
      "updatedAt": "2025-07-22T20:21:19.773333823Z"
    }
  ]
}
```

{% endcut %}

</div>

</div>

<div class="openapi__response__code__400">

## 400 Bad Request

Bad Request

<div class="openapi-entity">

### Body

{% cut "application/json" %}

```json translate=no
{
  "error": {
    "info": {},
    "message": "example",
    "message_code": "example"
  }
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_error_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: [Error](https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md#entity-Error)

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "info": {},
  "message": "example",
  "message_code": "example"
}
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

</div>

<div class="openapi-entity">

### Error {#entity-Error}

#|
|| **Name** | **Description** ||
||

_info_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: object

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{}
```

{% endcut %}
{.table-cell}
||
||

_message_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_message_code_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
|#{.json-schema-properties}

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "info": {},
  "message": "example",
  "message_code": "example"
}
```

{% endcut %}

</div>

</div>

<div class="openapi__response__code__403">

## 403 Forbidden

Forbidden

<div class="openapi-entity">

### Body

{% cut "application/json" %}

```json translate=no
{
  "error": {
    "info": {},
    "message": "example",
    "message_code": "example"
  }
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_error_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: [Error](https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md#entity-Error)

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "info": {},
  "message": "example",
  "message_code": "example"
}
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

</div>

</div>

<div class="openapi__response__code__500">

## 500 Internal Server Error

Internal Server Error

<div class="openapi-entity">

### Body

{% cut "application/json" %}

```json translate=no
{
  "error": {
    "info": {},
    "message": "example",
    "message_code": "example"
  }
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_error_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: [Error](https://yamagistrali.ru/docs/ru-x-ai/methods/orders.changes-for-forwarders.get.v0.md#entity-Error)

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "info": {},
  "message": "example",
  "message_code": "example"
}
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

</div>

</div>

</div>

[*Deprecated]: No longer supported, please use an alternative and newer version.