Получение обратных вызовов при 2FA
Обратные вызовы при 2FA — URL для получения статусов и результатов верификации
Коротко: при настройке интеграции можно указать URL, на который платформа будет отправлять результаты верификации и статусы доставки.
Кому подходит
- Роль: Разработчик
- Уровень: Опытный
Что это
Обратный вызов (webhook) — это POST-запрос от платформы на ваш URL. Платформа отправляет данные автоматически при событиях.
Где указать URL
В настройках 2FA-интеграции:
- Откройте карточку интеграции.
- Найдите поле URL, для отправки результата верификации.
- Введите URL вашего сервера.
- Сохраните.
Что приходит на URL
Формат данных — JSON. Поля:
| Поле | Что содержит |
|---|---|
| requestId | ID запроса |
| number | Номер телефона |
| status | Статус |
| timestamp | Время события |
| billable | Списывается ли плата |
Возможные статусы
| Статус | Что означает |
|---|---|
| SENT | Сообщение отправлено |
| DELIVERED | Сообщение доставлено |
| VERIFIED | Код успешно проверен |
| FAILED | Ошибка |
Как обрабатывать
- Принимайте POST-запросы на ваш URL.
- Отвечайте 200 OK как можно быстрее.
- Обрабатывайте данные асинхронно — не блокируйте ответ.
- Логируйте все вызовы — для диагностики.
- Используйте requestId как ключ для связи с отправленным кодом.
Что делать с данными
- Обновить статус пользователя в вашей системе.
- Отправить уведомление ответственному сотруднику.
- Сохранить в лог для аудита.
- Обновить метрики в аналитике.
Безопасность
- Используйте HTTPS — обязательно.
- Проверяйте источник — можно ограничить по IP.
- Валидируйте данные — не доверяйте слепо.
- Не возвращайте чувствительные данные в ответе.
Частые проблемы
Причина: URL недоступен извне или firewall блокирует.
Решение: проверьте доступность URL — ваш сервер должен отвечать 200 OK. Если firewall блокирует — разрешите IP платформы.
Причина: retry-логика платформы.
Решение: используйте requestId как ключ — обрабатывайте каждое событие один раз.
Причина: тяжёлые операции в обработке вебхука.
Решение: отвечайте 200 OK сразу — обрабатывайте данные асинхронно.
Пример обработки
- Пришёл POST с полями
requestId,number,status: VERIFIED. - Ваш сервер отвечает
200 OK. - Асинхронно: обновляете статус пользователя в базе.
- Логируете событие.
См. также
Нужна помощь?
- OTP-коды: support@otpcod.ru