Получение статусов через вебхуки
Вебхуки в умном шлюзе — статусы доставки в реальном времени
Получение статусов через вебхуки
Коротко: чтобы получать статусы доставки, укажите URL вебхука в запросе. Платформа будет отправлять POST-запросы на этот URL.
Кому подходит
- Роль: Разработчик
- Уровень: Опытный
Что это
Вебхук — это URL на вашей стороне, куда платформа отправляет статусы сообщений. Работает в режиме реального времени.
Где указать
В запросе через умный шлюз — в поле webhook.
Если не указать — используется URL из настроек имени отправителя или API-ключа.
Что приходит
Статус сообщения
Событие: messageStatus
Поля:
| Поле | Что содержит |
|---|---|
| messageId | ID сообщения |
| omniTransactionId | ID транзакции |
| channel | Номер канала |
| senderId | ID отправителя |
| status | Статус |
| timestamp | Время события |
| contact | Номер получателя |
| cost | Стоимость |
| clientInfo | Пользовательское поле |
Возможные статусы
| Статус | Что означает |
|---|---|
| sent | Отправлено |
| delivered | Доставлено |
| seen | Просмотрено |
| failed | Ошибка |
| undeliverable | Не удалось доставить |
| unknown | Неизвестно |
Как обрабатывать
- Принимайте POST-запросы на ваш URL.
- Отвечайте 200 OK быстро.
- Обрабатывайте асинхронно — не блокируйте ответ.
- Логируйте всё — для диагностики.
- Используйте messageId как ключ.
Пример логики
- Вы отправили запрос с webhook = https://myapp.com/otp-status.
- Платформа отправила сообщение.
- Когда статус изменился — платформа отправила POST на ваш URL.
- Ваш сервер получил статус delivered.
- Обновили статус в базе.
Приоритет вебхуков
Вебхук определяется в следующем порядке:
- Поле webhook в запросе (наивысший приоритет).
- Настройки имени отправителя.
- Настройки API-ключа.
Если в запросе указан webhook — он используется. Если нет — берётся из настроек отправителя.
Безопасность
- HTTPS обязателен.
- Проверяйте источник — можно ограничить по IP.
- Валидируйте данные.
- Не возвращайте чувствительные данные.
Частые проблемы
| Симптом | Причина | Решение |
|---|---|---|
| Вебхук не приходит | URL недоступен | Проверьте доступность |
| Вебхук не приходит | Firewall | Разрешите IP платформы |
| Дублирование | Retry | Используйте messageId |
| Медленно | Долгая обработка | Отвечайте сразу, обрабатывайте асинхронно |
Что дальше
См. также
Нужна помощь?
- OTP-коды: support@otpcod.ru