Webhook
Webhook — это "автоматический курьер", который доставляет уведомления от одного сервиса другому в реальном времени, когда происходит событие.
В отличие от HTTP-запросов, где ваш бот сам обращается к внешнему API, вебхук работает в обратную сторону: внешний сервис сам стучится в вашего бота, когда случается что-то важное.
Интерфейс
Как работает?
- Создаете URL — на платформе EnotPro генерируется уникальный адрес вашего вебхука
- Регистрируете URL — указываете этот адрес в стороннем сервисе (платежная система, CRM, хостинг)
- Ждете событие — происходит что-то важное: новый заказ, успешный платеж, отправка формы
- Сервис стучится — внешний сервис автоматически отправляет HTTP-запрос на ваш URL
- Бот обрабатывает — ваш бот получает данные и выполняет нужные действия
Настройки
Включение/выключение вебхука
У каждого вебхука есть переключатель On (Включен/Выключен).
| Состояние | Что означает |
|---|---|
| ✅ Включен | Вебхук активен и принимает входящие запросы |
| ❌ Выключен | Вебхук не отвечает на запросы (полезно при отладке или временном отключении) |
Совет:
перед изменением настроек вебхука рекомендуется его выключить, чтобы избежать случайных срабатываний.
Разрешенные методы (AllowedMethods)
Вы можете указать, какие HTTP-методы будет принимать ваш вебхук. Обычно внешние сервисы присылают вебхуки методом POST.
| Метод | Когда использовать |
|---|---|
| POST | Стандарт для 99% вебхуков (создание/отправка данных) |
| GET | Редко, но некоторые сервисы присылают подтверждения через GET |
| PUT | Для полного обновления ресурса |
| DELETE | Для уведомлений об удалении |
| PATCH | Для частичного обновления |
Важно:
Если не указать разрешенные методы, вебхук может не принять запрос от сервиса. По умолчанию обычно разрешен только POST.
Ответы
Код ответа
HTTP-коды статуса — это трехзначные числа, которые сервер отправляет клиенту, чтобы сообщить результат обработки запроса. Это как "статус доставки" в службе доставки:
- 200 — "Заказ доставлен успешно!"
- 404 — "Адрес не найден"
- 500 — "На складе проблемы"
Подробнее о кодах ответа в статье: Коды статуса
Параметры
Headers
Мета-данные запроса в формате Ключ: Значение. Внешний сервис присылает их вместе с телом запроса.
Обычно содержат:
- Аутентификацию (Authorization: Bearer token)
- Тип данных (Content-Type: application/json)
- Подпись запроса (X-Signature: ...)
Ограничения:
Ключ заголовка — до 256 символов, значение — до 4096 символов.
Body
Основные данные, которые присылает внешний сервис. Это может быть JSON, XML, текст или даже файл.
Для чего используется:
- Передача больших объемов данных
- Создание/обновление ресурсов (пользователи, статьи, заказы)
- Загрузка файлов
- Сложные структурированные данные
Ограничения:
Максимальный размер тела запроса — 1 МБ.
Таймаут
Важное ограничение: ваш вебхук должен обработать запрос и отправить ответ не позднее чем через 30 секунд.
Что будет, если не уложиться?
- ❌ Внешний сервис получит ошибку таймаута
- ❌ Скорее всего, сервис повторит отправку вебхука
- ❌ Вы рискуете получить дублирующиеся обработки
Сводная таблица ограничений
| Параметр | Максимальный размер |
|---|---|
| URL | 2048 символов |
| Ключ заголовка | 256 символов |
| Значение заголовка | 4096 символов |
| Тело запроса | 1 МБ |
| Время обработки | 30 секунд (таймаут) |
