# Внешние идентификаторы заказов

Внешний идентификатор заказа — это идентификатор заказа в системе клиента (например, номер заказа в CMS или учетной системе). Внешние идентификаторы выгружаются отдельным датасетом `exports.ProcessingOrders.ExternalIds` и связываются с заказами [`exports.ProcessingOrders.Orders`](https://developers.mindbox.ru/docs/customer-orders) по полю `orderId`.

:::warning{title="Значение зашифровано"}
Поле `value` (сам внешний идентификатор) выгружается в зашифрованном виде, так как может содержать персональные данные. Оно расшифровывается ключом шифрования из настроек интеграции «Данные для аналитики» — см. раздел [«Зашифрованные данные»](https://developers.mindbox.ru/docs/how-to-read-data).
:::

## `exports.ProcessingOrders.ExternalIds`

| Поле | Тип | Описание | Пример |
| --- | --- | --- | --- |
| `id` | long | Внутренний идентификатор записи внешнего идентификатора (RE-CFV) | `3587191` |
| `orderId` | string | Внутренний идентификатор заказа, которому принадлежит внешний идентификатор. Связь с `exports.ProcessingOrders.Orders.id` | `3890` |
| `customFieldKindInternalId` | string | Внутренний идентификатор кайнда (типа внешнего идентификатора) | a4fb2db8-7681-493c-89f2-e7c450598041 |
| `value` | string (nullable) | Сам внешний идентификатор заказа, **зашифрован**. Расшифровывается ключом шифрования из настроек интеграции | `Cg8K...=` (base64) |
| `_isDeleted` | bool (nullable) | Признак удаления записи: `true`, если запись удалена. У действующих записей — `false` или `NULL` | `true` |
| `_rowversion_ts` | datetime | Версия изменения (UTC) | `2026-06-16 09:13:56.299` |

:::note
Датасет содержит историю изменений (change feed): каждое изменение записи приходит отдельной строкой. Чтобы получить актуальное состояние:

1. Сгруппируйте строки по `id` — это идентификатор записи, он одинаковый у всех её версий, включая удаление. Не группируйте по `orderId` и `customFieldKindInternalId`: в части строк удаления эти поля пустые.
2. В каждой группе возьмите строку с максимальным `_rowversion_ts`. Если таких строк несколько, берите ту, где `_isDeleted = true`.
3. Если в выбранной строке `_isDeleted = true`, запись удалена. Проверяйте через `coalesce(_isDeleted, false)`: у действующих записей бывает `NULL`, и условие `NOT _isDeleted` их отбросит.
:::
