Skip to content

Исходящие webhook-события

Исходящие webhook-события позволяют внешней системе получать уведомления о важных изменениях в SNABZHENETS+: создании сущностей, обновлении данных, смене статусов, архивировании и тестовой проверке доставки.

Короткий ответ

Подписка API/Webhooks отправляет HTTP-запрос во внешнюю систему, когда в SNABZHENETS+ происходит выбранное событие. Имя события передаётся в поле event тела webhook и в заголовке X-Snabplus-Event.

Если в подписке не выбран конкретный список событий, подписка получает все успешные бизнес-события audit trail, кроме внутренних событий управления webhook.

Где получить каталог

Актуальный список публичных событий доступен через API:

http
GET /api/v1/integration-api/meta

События находятся в поле events ответа.

http
GET /api/v1/integrations/api-webhooks/installations/:id/console

События находятся в поле eventCatalog ответа.

Сущности и события

СущностьСистемная сущностьСобытиеЧто означает
Закупкаprocurementintegration_api.procurement.createdСоздана новая закупка.
Закупкаprocurementintegration_api.procurement.updatedИзменены данные закупки без отдельного события смены статуса.
Закупкаprocurementintegration_api.procurement.status_changedУ закупки изменился статус.
Номенклатураcatalog_itemintegration_api.catalog_item.createdСоздана новая позиция номенклатуры.
Номенклатураcatalog_itemintegration_api.catalog_item.updatedИзменены данные позиции номенклатуры.
Номенклатураcatalog_itemintegration_api.catalog_item.deletedПозиция номенклатуры удалена или архивирована.
Контрагентcounterpartyintegration_api.counterparty.createdСоздан новый контрагент.
Контрагентcounterpartyintegration_api.counterparty.updatedИзменены данные контрагента.
Контрагентcounterpartyintegration_api.counterparty.status_changedУ контрагента изменился статус.
Контрагентcounterpartyintegration_api.counterparty.deletedКонтрагент удалён или архивирован.
Складwarehouseintegration_api.warehouse.createdСоздан новый склад.
Складwarehouseintegration_api.warehouse.updatedИзменены данные склада.
Складwarehouseintegration_api.warehouse.deletedСклад удалён или архивирован.
Прайс-листprice_listintegration_api.price_list.createdСоздан новый прайс-лист.
Прайс-листprice_listintegration_api.price_list.updatedИзменены данные прайс-листа.
Прайс-листprice_listintegration_api.price_list.status_changedУ прайс-листа изменился статус.
Прайс-листprice_listintegration_api.price_list.deletedПрайс-лист удалён или архивирован.
Счётinvoiceintegration_api.invoice.createdСоздан новый счёт.
Счётinvoiceintegration_api.invoice.updatedИзменены данные счёта.
Счётinvoiceintegration_api.invoice.status_changedУ счёта изменился статус.
Тест интеграцииintegrationintegration.test_eventТехническое тестовое событие для проверки подписки, URL, заголовков и подписи.

Типы событий

ТипСуффиксКогда отправляется
СозданиеcreatedВ SNABZHENETS+ появилась новая сущность.
ОбновлениеupdatedИзменились поля существующей сущности.
Смена статусаstatus_changedИзменился статус сущности, и внешняя система должна отдельно отреагировать на переход.
Удаление или архивированиеdeletedСущность стала неактивной, удалена или архивирована. Этот тип есть только у архивируемых сущностей.
Тестовое событиеtest_eventПользователь вручную проверяет webhook-подписку без изменения бизнес-данных.

Payload

Тело исходящего webhook остаётся стабильным:

json
{
  "event": "integration_api.procurement.status_changed",
  "eventId": "audit-log-uuid",
  "tenantId": "tenant-uuid",
  "entity": {
    "type": "procurement",
    "id": "entity-uuid"
  },
  "occurredAt": "2026-05-28T10:00:00.000Z",
  "data": {
    "changes": {},
    "snapshot": {},
    "metadata": {}
  },
  "links": [
    {
      "externalSource": "erp",
      "externalId": "PO-1001",
      "entityType": "procurement",
      "entityId": "entity-uuid"
    }
  ]
}

Заголовки и подпись

Каждый исходящий webhook подписывается HMAC-SHA256:

http
X-Snabplus-Event: integration_api.procurement.status_changed
X-Snabplus-Event-Id: audit-log-uuid
X-Snabplus-Timestamp: 1760000000000
X-Snabplus-Signature: sha256=<hex>

Подпись считается по строке:

text
{timestamp}.{rawBody}

Внешняя система должна проверить подпись до обработки события.

Повторы доставки

SNABZHENETS+ повторяет доставку при сетевой ошибке, 408, 429 и ответах 5xx. Каждая попытка видна в журнале доставки API/Webhooks.

Связанные страницы

Документация платформы SNABZHENETS+.