Обработка событий документооборота
В жизненном цикле документооборота по заказу возникают события, которые необходимо обрабатывать магазином (например: расхождения данных, подписание или отклонение документов).
Такие события отправляются в формате JSON на URL
, предоставленный магазином.
Формат объекта события
Каждое событие содержит общую структуру:
{
"eventName": "название_события",
"eventData": { ... } // Данные, специфичные для типа события
}
Поле | Тип | Обязательность | Описание |
---|---|---|---|
eventName | string | Да | Тип события (см. ниже возможные значения). |
eventData | object | Да | Объект с данными, зависящими от типа события. |
Типы событий
1. Документ подписан (document_signed
)
Уведомление о успешном подписании документа (например, счета или акта).
Структура eventData
:
{
"documentType": "invoice",
"documentId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
Поле | Тип | Обязательность | Описание | Пример значения |
---|---|---|---|---|
documentType | string | Да | Тип документа: invoice , act , order . | "invoice" |
documentId | string | Да | UUID документа. | "6ba7b810-9dad-11d1-80b4-00c04fd430c8" |
2. Документ отклонен (document_rejected
)
Уведомление об отклонении документа (например, из-за ошибок или несогласия сторон).
Структура eventData
:
{
"documentType": "invoice",
"documentId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
}
Поле | Тип | Обязательность | Описание | Пример значения |
---|---|---|---|---|
documentType | string | Да | Тип документа: invoice , act , order . | "invoice" |
documentId | string | Да | UUID документа. | "6ba7b810-9dad-11d1-80b4-00c04fd430c8" |
rejectReason | string | Да | Причина отклонения. | "Несоответствие данных в счете" |
3. Расхождение данных (data_mismatch
)
Уведомление о несоответствии данных между заказом/отгрузкой и документом ЭДО.
Структура eventData
:
{
"sourceType": "shipment",
"sourceId": "550e8400-e29b-41d4-a716-446655440000",
"compareType": "edo",
"compareId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "mismatch",
"details": [
{
"type": "value",
"field": "quantity",
"sku": "product_123",
"sourceValue": 2,
"compareValue": 3
}
]
}
Поле | Тип | Обязательность | Описание |
---|---|---|---|
sourceType | string | Да | Тип источника: order , shipment , refund . |
sourceId | string | Да | UUID источника (например, отгрузки). |
compareType | string | Да | Тип сравнения: только edo . |
compareId | string | Да | UUID документа ЭДО. |
status | string | Да | Статус: только mismatch . |
details | array | Да | Массив расхождений (см. таблицу ниже). |
Поля объектов в массиве details
:
Поле | Тип | Обязательность | Описание |
---|---|---|---|
type | string | Да | Тип расхождения: value , missing , extra . |
field | string | Условно | Поле (для type: value ): quantity , price , vatRate . |
sku | string | Да | SKU товара. |
sourceValue | number | Условно | Значение из источника (для type: value ). |
compareValue | number | Условно | Значение из ЭДО (для type: value ). |
Пример полного события
{
"eventName": "data_mismatch",
"eventData": {
"sourceType": "shipment",
"sourceId": "550e8400-e29b-41d4-a716-446655440000",
"compareType": "edo",
"compareId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "mismatch",
"details": [
{
"type": "missing",
"sku": "product_456",
"sourceValue": null,
"compareValue": null
}
]
}
}