Обработка событий документооборота
В жизненном цикле документооборота по заказу возникают события, которые необходимо обрабатывать магазином (например: расхождения данных, подписание или отклонение документов).
Такие события отправляются в формате 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
}
]
}
}