Подтверждение номера на сайте и в Telegram можно собрать из двух каналов: сначала Flash Call — короткий звонок с последними цифрами номера, затем SMS как запасной вариант. Такая связка закрывает сбои оператора, не раздражает клиента и стоит дешевле, чем одна только SMS-авторизация (по данным сервисов, Flash Call обходится примерно в 0,45–0,65 руб. за вызов против полной цены SMS). В статье разберём, как собрать сценарий без дублей и конфликтов, на каких API держится связка и где чаще всего ломается логика.
Почему Flash Call отдельно от SMS — это полумера
Flash Call работает иначе, чем SMS: сервис звонит на номер клиента, и кодом служат последние 4–6 цифр входящего звонка. Клиент видит пропущенный вызов, вбивает эти цифры в форму — и подтверждение готово. Доставка занимает секунды, а операторская фильтрация SMS его не блокирует (источник: Voice OTP, Flash Call и код в пропущенном звонке — как работают голосовые и call-based каналы, smsblog.ru).
Но у канала есть ограничения. Если у клиента старая трубка без определителя номера, если он за границей в роуминге или если оператор режет входящие вызовы на сервисные номера — код он не увидит. В таком случае SMS работает надёжнее, потому что идёт через сигнальный канал и не зависит от определителя. Поэтому в реальных проектах связка выглядит так: Flash Call — основной канал, SMS — fallback, то есть запасной путь, который срабатывает, если звонок не дошёл или клиент не ввёл цифры за отведённое время.
Как собрать сценарий без дублей
Главная ошибка на старте — отправлять и звонок, и SMS одновременно. В итоге клиент получает два уведомления и путается, какой код вводить. В корректной схеме каналы идут последовательно, и у каждого сценария — свой TTL (время жизни запроса).
Сценарий выглядит так:
- Клиент вводит номер и нажимает «Получить код».
- Сервис инициирует Flash Call, в запросе передаётся уникальный request_id.
- Если в течение 20–30 секунд клиент ввёл последние цифры — request_id помечается как confirmed, повторно ничего не уходит.
- Если подтверждения нет — через 30–40 секунд сервис отправляет SMS на тот же номер с новым одноразовым кодом.
- После успешного ввода в форме request_id закрывается и помечается как used, чтобы его нельзя было переиграть.
Ключевой момент — у каждой попытки свой request_id и свой TTL. Если попытаться сэкономить и хранить один идентификатор на оба канала, при повторной попытке клиент увидит «код неверный»: старая SMS истечёт, а система уже привязала сессию к звонку. Подробное сравнение каналов с таблицей сценариев есть в материале Flashcall vs SMS vs WhatsApp/Telegram OTP.
Какие API понадобятся
Связка держится на двух интерфейсах: API Flash Call с вебхуком о статусе звонка и SMS API с поддержкой передачи request_id. Для белорусского бизнеса важно, чтобы провайдер отдавал номер в формате E.164 (международный формат, начинается с +375 для Беларуси) и возвращал статусы: initiated, delivered, confirmed, expired. Без этих статусов вы не поймёте, пора ли запускать fallback.
Для Telegram-ботов дополнительно нужен общий сценарий сессии: пользователь нажал «Подтвердить» в боте, бот запросил номер, прогнал Flash Call, при неудаче отправил SMS и попросил ввести код в чате. Здесь важно держать состояние в одном месте — либо в CRM, либо в Redis (база данных в оперативной памяти, где сессии живут секунды-минуты), — чтобы бот не терял, на каком шаге находится клиент.
Если вы только выбираете провайдера, обратите внимание на документацию: в SMS и flashcall для подтверждения регистрации собран базовый чек-лист по интеграции и росту конверсии.
Сколько стоит связка и где экономия
Экономика простая. Один Flash Call обходится в разы дешевле SMS-кода, поэтому основной поток идёт по звонку. SMS нужна только малой доле клиентов — тем, у кого не сработал определитель или кто не успел ввести цифры. Сравнение цен из открытых источников:
| Канал | Примерная стоимость за попытку | Когда срабатывает |
|---|---|---|
| Flash Call | около 0,45–0,65 руб. | У клиента работает определитель номера |
| SMS OTP | заметно дороже Flash Call | Fallback при сбое звонка |
| Связка Flash Call + SMS | Средняя цена ниже, чем SMS на всём потоке | Основной сценарий авторизации |
Точная цена SMS зависит от провайдера и объёма, но порядок цифр задаёт именно Flash Call. Чтобы посчитать экономию на конкретном трафике, удобно использовать методику расчёта от i-Digital, она учитывает разделение трафика на сервисный и авторизационный и абонплату (источник: Как посчитать экономию на Flashcall, i-dgtl.ru).
Типичные ошибки при сборке связки
- Параллельная отправка Flash Call и SMS одновременно. Клиент получает два канала и путается, какой код вводить.
- Один request_id на оба канала. При fallback старая сессия уже истекла, клиент видит «код неверный» и уходит.
- Нет таймаута на fallback. SMS уходит слишком быстро, клиент раздражён двойной отправкой.
- Не учитывается роуминг и старые телефоны. Для таких клиентов нужен альтернативный вход с кодом по звонку оператора или email.
- Статусы Flash Call не пишутся в CRM. Без статусов вы не увидите, какой процент реально подтверждается через звонок.
Эти пять ошибок ломают до половины конверсии в подтверждении. Дополнительно стоит проверять, как ваш провайдер обрабатывает повторные запросы: если клиент жмёт «Отправить код» дважды, система должна либо блокировать дубль на 60 секунд, либо чётко разделять request_id по времени.
Что учесть для антифрода
Flash Call — это не только экономия, но и сигнал «живого» номера. Если на один аккаунт за час уходит 20 попыток авторизации с разных IP, обычный пользователь так не делает. Связка позволяет пометить такие сессии как подозрительные и запрашивать дополнительную проверку. Подробнее про антифрод-сценарий — в материале Flash Call как сигнал живого номера для антифрод-системы.
3 шага, которые можно сделать на этой неделе:
- Запросить у текущего SMS-провайдера API Flash Call с вебхуками и тарифами на белорусские номера.
- Собрать тестовый сценарий: Flash Call как основной канал, fallback через SMS через 30 секунд, у каждой попытки свой request_id.
- Прогнать 200–300 регистраций и сравнить конверсию и среднюю стоимость подтверждения со старой SMS-only схемой.



