Структура пакетов
Все сообщения DataHUB передаются в едином JSON-формате. Конверт (envelope) — внешняя обёртка с метаданными сообщения. Тело (body) — прикладные данные конкретного класса сообщения.
Конверт
{
"Id": "b3d2af76-e80a-44cc-bae7-fa95f49cd75a",
"Type": "DATA",
"ClassId": "Catalog_Контрагенты",
"CreationTime": "2026-02-15T12:34:02",
"Properties": "",
"Source": "e7b6294f-e4e1-4151-988d-0806e8922507",
"Body": { ... }
}
| Поле | Тип | Описание |
|---|---|---|
Id |
UUID | Уникальный идентификатор сообщения; используется как ackId при подтверждении |
Type |
String | Тип сообщения; в текущей версии всегда "DATA" |
ClassId |
String | Класс сообщения, определяет схему тела и маршрутизацию |
CreationTime |
String | Момент формирования в ISO 8601: "2026-02-15T12:34:02" |
Properties |
String | Зарезервировано; передаётся как пустая строка |
Source |
UUID | SystemID системы-отправителя в DataHUB |
Body |
Object | Прикладные данные; структура определяется классом сообщения |
Тело сообщения
Тело не имеет фиксированной схемы — её задаёт класс сообщения. Обязательный элемент тела — массив Id, содержащий идентификаторы объекта во всех известных системах.
{
"Id": [
{
"SystemID": "85c5fa29-fb01-11f0-a12b-000c291cb18c",
"SystemName": "ERP",
"EntityID": "aadc15df-7b9a-11ee-a113-000c291cb18c"
},
{
"SystemID": "4b56c685-fbb2-11f0-9fb7-387a0ea57fd4",
"SystemName": "Bitrix:CRM",
"EntityID": "3905ab28-fc66-11f0-9fb7-387a0ea57fd4"
}
],
"Наименование": "ООО Ромашка",
"ИНН": "7700000000"
}
Каждый элемент массива Id:
| Поле | Описание |
|---|---|
SystemID |
UUID системы в DataHUB; используется для поиска в таблице идентификаторов |
SystemName |
Имя системы (для диагностики) |
EntityID |
Внутренний идентификатор объекта в этой системе |
Правила формирования
Id сообщения генерируется системой-отправителем как UUID v4. Уникальность гарантируется отправителем.
CreationTime — момент формирования конверта, не момент изменения бизнес-объекта.
Source — SystemID из справочника «Интегрируемые системы» для записи «Эта база». Шина использует его для маршрутизации и исключения доставки сообщения обратно отправителю.
Body.Id формируется из таблицы идентификаторов: включает все известные пары (система → EntityID) для данного объекта. Чем больше систем участвовало в обмене, тем длиннее массив.
Ссылки на другие объекты
Поля тела, содержащие ссылку на связанный объект, передаются как вложенный массив идентификаторов той же структуры:
{
"Id": [...],
"Наименование": "Заказ №123",
"Контрагент": [
{
"SystemID": "85c5fa29-...",
"SystemName": "ERP",
"EntityID": "aadc15df-..."
}
]
}
Получатель разрешает ссылку через таблицу идентификаторов так же, как основной объект.
Типы данных
| Тип | Формат в JSON |
|---|---|
| Дата/Время | Строка ISO 8601: "2026-02-15T12:34:02" |
| UUID | Строка в формате "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" |
| Булево | true / false |
| Число | Число JSON |
| Строка | Строка JSON |
| Ссылка на объект | Массив [{SystemID, SystemName, EntityID}] |