Skip to content

Входящие вебхуки

Вебхуки позволяют внешним сервисам отправлять события в платформу SNABZHENETS+ в реальном времени. Это используется для синхронизации заказов, уведомлений о платежах, обновлений статусов доставки и других событий.

Как это работает

Каждая установка с типом WEBHOOK_INBOUND или BIDIRECTIONAL получает уникальный URL вебхука. Внешний сервис отправляет POST-запросы на этот адрес — платформа принимает, проверяет подпись и обрабатывает.

Внешний сервис → POST /api/v1/webhooks/inbound/{token} → Обработка → Журнал

Управление эндпоинтом

Получить текущий эндпоинт

GET /api/v1/integrations/installations/:id/webhook-endpoint

json
{
  "id": "endpoint-uuid",
  "url": "https://snabplus.com/api/v1/webhooks/inbound/a3f1b2c4d5e6...",
  "secretMasked": "••••••••",
  "isActive": true,
  "lastReceivedAt": "2026-04-27T09:15:00.000Z",
  "receivedCount": 4821
}

Секрет для проверки подписи хранится зашифрованным и никогда не возвращается в открытом виде.

Перегенерировать эндпоинт

POST /api/v1/integrations/installations/:id/webhook-endpoint/regenerate

Инвалидирует старый токен и создаёт новый. Новый секрет возвращается один раз — сохраните его сразу.

json
{
  "url": "https://snabplus.com/api/v1/webhooks/inbound/новый-токен",
  "secretPlaintext": "a1b2c3d4e5f6...",
  "regeneratedAt": "2026-04-27T10:00:00.000Z"
}

После перегенерации обновите настройки вебхука в панели внешнего сервиса.

Проверка подписи

Платформа поддерживает HMAC-SHA256 верификацию входящих запросов.

Внешний сервис должен передавать:

  • Заголовок X-Webhook-Timestamp — Unix timestamp запроса
  • Заголовок X-Webhook-Signature — подпись в формате sha256=<hex>

Подпись вычисляется как:

HMAC-SHA256(secret, "{timestamp}.{rawBody}")

Если заголовки отсутствуют — запрос принимается без проверки подписи (для сервисов, которые её не поддерживают). Для защищённых сред рекомендуется использовать подпись.

Публичный эндпоинт приёма

POST /api/v1/webhooks/inbound/:token

Не требует аутентификации — доступен из интернета для внешних сервисов.

Платформа:

  1. Находит активный эндпоинт по токену
  2. Проверяет, что установка активна и не удалена
  3. Проверяет HMAC-подпись (если заголовки присутствуют)
  4. Санирует payload (редактирует поля password, secret, token и подобные)
  5. Записывает событие в журнал
  6. Передаёт на обработчик конкретной интеграции
  7. Возвращает 200 OK или 202 Accepted

При неверном токене или неактивной установке — 404 Not Found.
При ошибке подписи — 401 Unauthorized.

Журнал входящих событий

Все полученные вебхуки записываются в журнал. Посмотреть журнал можно через:

GET /api/v1/integrations/installations/:id/logs?direction=INBOUND

Подробнее — в разделе Управление установками.

Рекомендации по настройке

  • Храните секрет вебхука в защищённом месте — он не восстанавливается после закрытия окна
  • Если секрет скомпрометирован — немедленно перегенерируйте эндпоинт
  • Настройте проверку подписи на стороне внешнего сервиса, если он её поддерживает
  • Используйте receivedCount и lastReceivedAt для мониторинга работы интеграции

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