Документация

HTTP Webhook

Универсальный приём подписанных HTTP-событий от любой системы.

HTTP Webhook

Канал webhook — это универсальная точка входа для подключения любой системы, способной выполнить HTTP POST. Это вариант, который следует выбрать, когда для вашего источника не существует выделенного канала.

Когда использовать

  • Подключить внутренний инструмент (ERP, бизнес-приложение, платёжный шлюз).
  • Получать события от сторонней платформы, предлагающей webhook (Stripe, Shopify, SendGrid…).
  • Запускать pipeline из внешнего cron-задания или CI-конвейера.

Конфигурация

  1. Администрирование → Webhooks → Новая запись.
  2. Выберите целевой pipeline.
  3. betool генерирует публичный URL (https://platform.betool.ai/entries/webhook/<id>) и секрет HMAC.

Секрет используется для подписи каждой полезной нагрузки: ваша система должна вычислить HMAC-SHA256(secret, body) и передать его в заголовке X-Betool-Signature. Запросы без действительной подписи отклоняются.

Формат полезной нагрузки

Вы отправляете любой удобный вам JSON. betool не ограничивает структуру. Полезная нагрузка предоставляется pipeline под ключом webhook.payload (с его вложенными ключами).

Пример:

curl -X POST https://platform.betool.ai/entries/webhook/abc123 \
  -H "Content-Type: application/json" \
  -H "X-Betool-Signature: $SIGNATURE" \
  -d '{
    "type": "order.created",
    "order_id": "ord_42",
    "amount_cents": 9900,
    "customer_email": "client@exemple.com"
  }'

Затем pipeline может подключить агента, который напрямую читает webhook.payload.customer_email и webhook.payload.amount_cents.

Ответ

По умолчанию HTTP-ответ немедленно возвращает 202 Accepted (pipeline запускается в фоновом режиме). Если вам нужно дождаться результата pipeline, настройте webhook в синхронном режиме — запрос блокируется до завершения pipeline (тайм-аут 30 с).

Безопасность

  • Всегда подписывайте свои запросы (HMAC).
  • Секрет можно перегенерировать из панели администрирования (ротация).
  • Полезные нагрузки хранятся в открытом виде в истории выполнения — не отправляйте данные, которые должны быть зашифрованы только при передаче.