Каскадная верификация — это последовательность каналов доставки одноразового кода, где каждый следующий включается, только если предыдущий не сработал. Схема Flash Call → Voice OTP → SMS даёт высокую конверсию при минимальных затратах: сначала бесплатный звонок, затем голосовой код, и только в крайнем случае — SMS. После прочтения вы сможете собрать такой каскад самостоятельно или поставить задачу разработчику с чётким ТЗ.
Почему именно такой порядок каналов?
Flash Call — короткий звонок, который сбрасывается автоматически; код зашит в номере входящего вызова и виден в списке пропущенных (smsblog.ru). Пользователь не отвечает, не запоминает цифры — приложение считывает номер само. Доставка занимает секунды, стоимость стремится к нулю. Поэтому Flash Call ставят первым.
Если Flash Call не дошёл — сработал спам-фильтр оператора или телефон без SIM-карты — включается Voice OTP. Голосовой бот диктует код, пользователь его слышит и вводит вручную. Метод работает на любых устройствах, включая кнопочные телефоны и планшеты с VoIP (messaggio.com).
SMS остаётся резервом. Сообщения дороже, иногда задерживаются — приходится делать 2–3 попытки (plusofon.ru). Но SMS гарантированно доходит туда, куда не дозвонишься: роуминг без голосовых вызовов, корпоративные номера с блокировкой входящих.
Какие таймауты выставить между шагами?
| Канал | Таймаут до следующего шага | Почему так |
|---|---|---|
| Flash Call | 8–12 секунд | Звонок либо дошёл мгновенно, либо заблокирован оператором |
| Voice OTP | 25–30 секунд | Пользователю нужно время услышать код и ввести его |
| SMS | 60 секунд (финальная попытка) | Иногда SMS задерживается на стороне оператора |
Таймаут Flash Call короче, потому что результат известен почти сразу: либо номер появился в пропущенных, либо звонок не прошёл. Voice OTP требует взаимодействия — человек должен ответить, дослушать бота, ввести цифры. Слишком короткий интервал приведёт к тому, что SMS уйдёт раньше, чем пользователь успеет ввести голосовой код.
Как обрабатывать повторный запрос кода?
Типичная ошибка — при нажатии «отправить код ещё раз» сразу переходить к SMS. Правильнее начинать каскад заново с первого шага (sostav.ru). Причина проста: проблема могла быть временной — пользователь был в лифте, оператор перегружен, телефон перезагружался. Вторая попытка Flash Call часто срабатывает.
Исключение: если пользователь явно выбрал «получить SMS» — не игнорируйте. Он знает, что Flash Call у него не работает.
Типичные ошибки при настройке каскада
- Слишком короткий таймаут Voice OTP — SMS уходит, пока человек слушает код, и он вводит устаревший пароль.
- Отсутствие логирования — невозможно понять, на каком шаге отваливаются пользователи.
- Один и тот же код на всех этапах без обновления TTL — к моменту SMS код уже истёк.
- Игнорирование географии: в роуминге Flash Call блокируется чаще, стоит сразу переходить к Voice OTP.
- Фиксированный порядок без учёта истории — если у конкретного номера Flash Call не срабатывал трижды, разумнее начинать с Voice OTP.
Что проверить перед запуском?
Убедитесь, что приложение умеет читать входящие номера. На Android нужно разрешение READ_CALL_LOG, на iOS автоматическое считывание Flash Call работает через push-уведомление от сервера — телефон сам не видит пропущенный вызов. Без этого Flash Call бесполезен: пользователь увидит номер, но не поймёт, какие цифры вводить.
Проверьте, как ведёт себя Voice OTP при плохой связи. Бот должен повторить код дважды, говорить медленно, делать паузы между цифрами. Если бот тараторит — конверсия падает.
Настройте fallback-логику на стороне сервера, а не клиента. Телефон может потерять связь между шагами, и тогда каскад «застрянет». Сервер сам должен отслеживать статус доставки и инициировать следующий канал.
Подробнее о сравнении каналов по стоимости и скорости — в материале как сравнить Flash Call, Voice OTP и SMS по данным.
3 шага на эту неделю:
- Замерьте текущую конверсию верификации и долю повторных запросов кода — это базовая метрика для сравнения.
- Настройте логирование: канал, время доставки, успех или провал, причина перехода к следующему шагу.
- Запустите каскад на тестовой группе — 5–10% трафика — и сравните конверсию через неделю.



