модули

Работа с вебхуками

Как подписаться на события, проверить подпись входящего запроса и настроить поведение при повторах.

Регистрация эндпоинта

Укажите URL, который будет принимать события, и список типов событий, на которые вы подписываетесь:

await hexly.webhooks.subscribe({
  url: 'https://app.example.com/hooks/hexly',
  events: ['order.paid', 'order.refunded']
})

Формат события

{
  "id": "evt_9f21ac",
  "type": "order.paid",
  "created_at": "2026-06-14T09:32:01Z",
  "data": { "order_id": "ord_8f21a", "amount": 4200 }
}

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

Каждый запрос содержит заголовок X-Hexly-Signature — HMAC-SHA256 от тела запроса с использованием секретного ключа вашего проекта. Всегда проверяйте подпись перед обработкой события.

!

Сравнивайте подписи с помощью constant-time сравнения (например, crypto.timingSafeEqual в Node.js), а не оператором === — это защищает от атак по времени ответа.

Политика повторов

ПопыткаЗадержка перед повтором
1сразу
230 секунд
35 минут
430 минут
5–10экспоненциально до 4 часов

Ваш эндпоинт должен ответить кодом 2xx в течение 10 секунд — любой другой код или таймаут считается неудачной попыткой.

Идемпотентность обработки

Поскольку при повторах возможна повторная доставка одного и того же события, используйте поле id события для дедупликации на своей стороне — сохраняйте обработанные ID хотя бы на 24 часа.