Flash Call подтверждает вход в личный кабинет входящим звонком. Пользователь принимает вызов и вводит последние цифры номера, с которого звонил сервис, либо сам набирает показанный номер. Кода в сообщении нет, поэтому не нужно ждать SMS, которое не пришло. Дальше разберу, из чего состоит такой сценарий, что понадобится от разработчика, какие ограничения заложить и как считать бюджет на подтверждения.
Как работает вход по звонку
Сценариев два. В первом звонок запускает сервис: на номер пользователя уходит вызов, человек вводит в форму последние цифры этого номера. Отдельный одноразовый код генерировать не нужно (Mindbox). Во втором варианте, который называют обратным Flash Call, на экране показывается номер для звонка, и система узнаёт пользователя по входящему вызову (Plusofon).
Первый вариант привычнее для входа в кабинет: пользователь не набирает ничего, кроме нескольких цифр. Второй чаще берут как дополнение или замену SMS-кодов там, где входящий звонок на устройство неудобен (Plusofon).
Задача у обоих вариантов та же, что у кодов авторизации: убедиться, что человек распоряжается этим номером (SMS.BY). Если вход идёт по паролю, звонок выполняет роль второго фактора — такого же слоя защиты, как код в сообщении (SMS Blog).
Чем Flash Call отличается от SMS-кода
Разница в канале доставки и в том, как считается оплата. Один из провайдеров называет Flash Call самым недорогим способом доставки кодов и паролей (SMS Pilot), а сервис авторизации по звонку берёт деньги только за подтверждения, без абонплаты и скрытых платежей (Звонок™). Что это значит на практике — в таблице.
| Что сравниваем | SMS-код | Flash Call | Каскад «Flash Call → SMS» |
|---|---|---|---|
| Действие пользователя | Ждёт сообщение и вводит код | Принимает звонок и вводит последние цифры номера | Ждёт звонок, при неудаче — сообщение |
| Что готовит бизнес | SMS-шлюз, шаблон сообщения, генерацию кода | Доступ к API звонков, генерация кода не нужна | Оба канала и правило переключения |
| Слабые места | Сообщение может задержаться или не прийти | Звонок не пройдёт при слабом сигнале и в роуминге | Часть пользователей проходит через оба канала, поэтому дороже |
| Оплата | За каждое сообщение | За каждое подтверждение, абонплаты нет | За использованные каналы |
Если выбираете канал для входа, пригодится разбор почему Flash Call лучше SMS при подтверждении номера. Там собраны типичные ситуации, в которых выигрывает звонок.
Как настроить вход по звонку: пошаговый план
Базовая логика состоит из четырёх частей: единый формат номера, отправка, проверка с ограничением попыток и вход в аккаунт (Kalinkin Dev). Ниже — как это выглядит в работе.
- Приведите номер к одному виду. Храните только цифры с кодом страны, иначе один человек заведёт два аккаунта с разными записями телефона.
- Выберите тип подтверждения. Для входа в кабинет обычно берут звонок от сервиса, для кассы или мобильного приложения — обратный звонок.
- Подключите API провайдера. Получите ключи, ограничьте их по IP, настройте вебхук о статусе вызова, чтобы система знала, дозвонилась ли она.
- Опишите логику на бэкенде. Создайте короткую сессию подтверждения, привяжите её к номеру и устройству, проверяйте последние цифры звонящего.
- Заложите лимиты. Ограничьте число попыток и частоту запросов на один номер, поставьте паузу после нескольких неудач.
- Добавьте резервный канал. Если звонок не прошёл за отведённое время, включайте второй способ — сборка описана в инструкции про каскад «Flash Call → SMS».
Крайние случаи и типичные ошибки
Что может пойти не так
- Задержка доставки. Звонок не проходит в роуминге или при слабом сигнале, поэтому нужны понятный текст на экране и кнопка повторного запроса.
- Превышение лимитов. Провайдер или оператор ограничивает число вызовов на номер, и при массовых запросах часть людей не получит подтверждение (SMS Blog).
- Смена номера. Человек с новым номером теряет доступ, если у аккаунта нет других подтверждённых данных (SMS Blog).
- Восстановление пароля. Это отдельный сценарий с повышенными требованиями, о нём читайте в статье Flash Call при восстановлении пароля.
Где теряют деньги и безопасность
- Сессию открывают сразу после ввода номера, до подтверждения. Тогда в кабинет попадёт любой, кто знает чужой телефон.
- Нет лимита на попытки. Короткий код подбирают перебором, а на этом теряют и доступы, и деньги (Kalinkin Dev).
- Повторная отправка при каждом обновлении страницы. Лишние звонки и сообщения съедают бюджет.
- Номер сохраняют «как ввёл пользователь». В базе появляются дубли, а поддержка тратит время на поиск одного и того же человека.
- Номера и коды лежат в логах открытым текстом. Провайдеры шифруют доставку паролей и базы абонентов (Plusofon), но это не поможет, если у вас всё хранится в открытом виде.
Сколько стоит подтверждение и как считать бюджет
Схема оплаты простая: платите за подтверждения, абонплаты и скрытых платежей нет (Звонок™). Для микробизнеса это удобно — расходы растут вместе с числом входов. Сравнивать каналы только по цене одного подтверждения не стоит: дешевле выйдет тот способ, при котором человек доходит до конца сценария с первой попытки.
| Что посчитать | Как это выглядит на практике |
|---|---|
| Число подтверждений в месяц | Считайте запросы пользователей, а не только успешные входы. |
| Повторные запросы | Посмотрите в логах, сколько людей просят звонок или сообщение второй раз. |
| Нагрузка на поддержку | Обращение «код не приходит» — это время менеджера. Резервный канал снижает их число. |
| Оборванные входы | Долю людей, которые бросили подтверждение, показывает цель в Яндекс Метрике (Cropas). |
Дальше решение простое. Если звонок доходит до большинства пользователей, ставьте его первым каналом. Если аудитория часто в роуминге, держите наготове SMS. Для интернет-магазина в Гомеле и сервиса записи в Гродно логика одна: сначала измерить, потом выбирать.
3 шага, которые можно сделать на этой неделе:
- Поставьте цель в Яндекс Метрике на шаг подтверждения номера и посмотрите, сколько людей его не проходят.
- Соберите тестовый сценарий с одним провайдером: сначала на своём номере, затем на номере коллеги с другим оператором.
- Опишите текстом правило, по которому включается резервный канал, и отдайте его разработчику.



