Вебхуки позволяют вашему бэкенду реагировать на события RevRoute сразу как они происходят — без поллинга API. RevRoute отправляет HTTP POST на указанный вами URL с подписанным JSON-payload’ом, описывающим что изменилось.
Типичные сценарии:
- Синхронизация лидов и продаж в CRM или DWH
- Slack/Telegram-уведомления о новых заявках партнёров и созданных комиссиях
- Кастомные approval-флоу для выплат
- Зеркалирование активности по ссылкам в собственной аналитике
Доставка вебхуков — at-least-once. Сделайте обработчик идемпотентным — RevRoute может повторить одно и то же событие несколько раз при временных сбоях.
Как это работает
Создайте вебхук
В рабочем пространстве зайдите в Настройки → Вебхуки и нажмите Создать вебхук. Укажите URL (обязательно https://), выберите интересующие события и сохраните. RevRoute сгенерирует секрет подписи вида whsec_....
Получите событие
При срабатывании события RevRoute отправит POST на ваш URL с JSON-телом и заголовками:
Content-Type: application/json
Revroute-Signature: <hex hmac-sha256>
User-Agent: RevRoute-Webhook/1.0Проверьте подпись
Посчитайте HMAC-SHA256 от сырого тела запроса с вашим секретом и сравните (в constant-time) с заголовком Revroute-Signature. Отклоняйте запросы с несовпадающей подписью. См. Проверка подписи.
Ответьте быстро
Верните 2xx в течение 10 секунд. Тяжёлую обработку выносите в фоновую очередь — медленные обработчики приведут к ретраям и в конце концов к отключению вебхука.
Уровни вебхуков
Вебхуки можно прикрепить на трёх уровнях:
| Уровень | Где создаётся | Доступные события |
|---|---|---|
| Workspace | /<workspace>/settings/webhooks | link.created, link.updated, link.deleted, lead.created, sale.created |
| Программа | /<workspace>/program/settings/webhooks | partner.application_submitted, partner.enrolled, commission.created, bounty.created, bounty.updated, payout.confirmed |
| Ссылка | В настройках конкретной ссылки | link.clicked |
Полный справочник payload’ов — в разделе Типы событий.
Доставка и ретраи
- RevRoute повторяет неудачные доставки с экспоненциальной задержкой до 24 часов.
- После 5, 10 и 15 подряд неудачных доставок вы получаете email-предупреждение.
- После 20 подряд неудачных доставок вебхук автоматически отключается — почините эндпоинт и включите его обратно из дашборда.
- Доставка считается успешной, если ваш эндпоинт вернул HTTP-статус из диапазона
2xx.
Эндпоинты с self-signed сертификатами или в приватных сетях не поддерживаются. Ваш URL должен быть доступен из публичного интернета и иметь валидный сертификат.
Конверт события
Каждый webhook-payload имеет одну и ту же структуру:
{
"id": "evt_2T3jZ...",
"event": "lead.created",
"createdAt": "2026-05-15T12:34:56.789Z",
"data": { /* данные события */ }
}id— уникальный id события (evt_*). Используйте для дедупликации.event— имя триггера (см. Типы событий).createdAt— ISO-8601 timestamp создания на сервере.data— payload ресурса, специфичный для события.