Выбор решения
Сервис подтверждения номера телефона: как выбрать и сколько стоит
При выборе сервиса подтверждения номера почти всё решают три вопроса: за что именно списывают деньги — за попытку или за результат; что происходит, когда подтверждение не доходит до пользователя; за сколько это встраивается в ваш продукт. Цена за штуку вторична — на реальную стоимость сильнее влияет модель списания. Ниже разбор критериев и расчёт: в FlashCall подтверждение стоит 0,20 ₽, и платите вы только за состоявшиеся.
Рынок подтверждения номера выглядит однородно: почти все продают «верификацию по цене X за штуку». Разница вылезает позже — когда оказывается, что списывают за попытку, а не за результат, что при недоставке деньги всё равно ушли, а на интеграцию нужен не день, а две недели.
Ниже — критерии, которые видно до подписания договора, и честный расчёт по FlashCall.
Способы подтверждения и их себестоимость
Первое решение — не «какой провайдер», а «каким способом». От него зависит и цена, и что именно вы покупаете.
| Способ | За что списывают | От чего зависит успех | Что делает пользователь |
|---|---|---|---|
| SMS-код | за отправку сообщения | доставляемость, фильтры операторов, роуминг | ждёт, читает, вводит код |
| Голосовой звонок с кодом | за совершённый вызов | дозвон, качество распознавания на слух | принимает вызов, слушает, вводит код |
| Обычный flash call | за совершённый вызов | разрешение приложению на журнал вызовов | ничего либо вводит цифры номера |
| Обратный звонок | за состоявшийся звонок | определяемость номера вызывающего | нажимает вызов |
О ценах конкурентов. Публичные прайсы на SMS зависят от оператора получателя, объёма и типа трафика, поэтому единой цифры не существует, а «средняя цена SMS» из статей обычно ничем не подтверждена. Если сравниваете — берите свой счёт за прошлый месяц и делите на число доставленных сообщений. Это единственная цифра, которая имеет отношение к вашей ситуации.
Обратите внимание на третий столбец таблицы. Он объясняет, почему два сервиса с одинаковой ценой за штуку дают разный итоговый счёт: у способов разная доля успеха, и оплачиваете вы в одном случае попытки, в другом — результат.
Разбор терминологии и разницы между обычным и обратным flash call — в статье что такое flash call.
Семь критериев выбора сервиса
1. Модель тарификации: за попытку или за результат. Главный критерий, который почти никогда не стоит первым в презентации. При оплате за отправку вы платите и за недоставленные сообщения, и за пользователей, которые передумали. При оплате за результат несостоявшаяся проверка стоит ноль. На объёме разница между этими моделями больше, чем разница в цене за штуку.
2. Прозрачность статусов. Вы должны в любой момент видеть, что происходит с конкретной проверкой, и различать «ещё ждём», «подтверждено» и «не сложилось». Если API отдаёт только «успех/неуспех» без промежуточного состояния, вы не сможете нормально нарисовать интерфейс ожидания.
3. REST API без SDK. Проприетарная библиотека — это зависимость, которую придётся обновлять, и ограничение по языкам. Обычный HTTP-интерфейс встраивается в любой стек и не устаревает.
4. Время интеграции. Считается не по документации, а по числу сущностей, которые надо завести на своей стороне. Два запроса и три статуса — это день работы. Очередь, подписи, отдельный обработчик и своя таблица состояний — это спринт.
5. Отсутствие абонентской платы и минимального объёма. Обязательный ежемесячный платёж превращает эксперимент в обязательство. Если вы не уверены, что способ подойдёт вашей аудитории, стартовать надо там, где неудачная гипотеза стоит только потраченного времени.
6. Документы и юридическая сторона. Оферта, счёт для юрлиц и ИП, корректный НДС по налоговому статусу. Проверяется до интеграции, а не после, когда бухгалтерия откажется проводить платёж.
7. Поддержка живыми людьми. На этапе внедрения важнее тарифа: половина вопросов возникает в первые два дня и снимается одним ответом.
Сколько стоит подтверждение в FlashCall
Одно подтверждение — 0,20 ₽. Абонентской платы нет, минимального месячного объёма нет, плата за подключение отсутствует.
Списание происходит в момент, когда звонок зафиксирован. Проверка, по которой звонка не было и которая ушла в статус EXPIRED, не тарифицируется вообще.
| Подтверждений в месяц | При 100 % дозвона | При 80 % дозвона | При 60 % дозвона |
|---|---|---|---|
| 1 000 | 200 ₽ | 160 ₽ | 120 ₽ |
| 10 000 | 2 000 ₽ | 1 600 ₽ | 1 200 ₽ |
| 100 000 | 20 000 ₽ | 16 000 ₽ | 12 000 ₽ |
Столбцы справа — не скидка, а прямое следствие модели: платите за то, что состоялось. Формула для подстановки своих цифр: запущенные проверки × доля дозвона × 0,20 ₽.
Цены в таблице актуальны на дату публикации; источник правды — страница тарифов.
Как оплатить
Баланс пополняется двумя способами:
- Счёт — для юрлиц и ИП. Реквизиты подставляются из карточки в кабинете, счёт приходит готовым к оплате. Зачисление на баланс происходит автоматически, когда банк подтверждает поступление.
- Картой — если удобнее платить сразу и без бухгалтерии.
Минимальная сумма пополнения по умолчанию — 100 ₽; фактическое значение показано в кабинете. Неизрасходованный баланс не сгорает.
Как подключить
- Регистрация. Занимает минуту, карта не требуется.
- Проект. Создаётся в кабинете, сразу получает собственный ключ. Ключ хранится на сервере — во фронтенде ему не место.
- Тестовая проверка. Запускается с первого же запроса, по реальному номеру.
- Интеграция. Два запроса: создать проверку и получить её статус. Обработать три состояния —
PENDING,CONFIRMED,EXPIRED. - Запасной способ. Оставьте пользователю альтернативу на случай скрытого номера или зарубежной SIM.
Пошаговое описание запросов с примерами кода — в материале про API подтверждения номера. Как устроен сам механизм проверки — в статье про подтверждение номера звонком.
Чек-лист перед интеграцией
Пройдите его до того, как разработчик начнёт писать код, — все пункты проверяются за час и снимают большую часть будущих сюрпризов.
- Посмотрите на модель списания в документации, а не в презентации. Найдите, в какой момент уменьшается баланс. Если это момент отправки или создания запроса, вы платите за попытки.
- Уточните, что происходит с неудачной проверкой. Есть ли отдельный статус, тарифицируется ли она, видно ли её в статистике.
- Проверьте формат номера. E.164 — стандарт; если сервис требует собственный формат, это лишний слой преобразований и источник ошибок.
- Найдите, где хранится ключ. Он должен использоваться только с сервера. Если инструкция предлагает положить его во фронтенд, это плохой знак для всей архитектуры.
- Оцените, что будет на пике. Спросите про ограничения на число одновременных проверок: узкое место обычно там, а не в тарифе.
- Прочитайте оферту до слова «ответственность». Особенно раздел про возврат неизрасходованного баланса.
- Задайте один вопрос в поддержку. Скорость и содержательность ответа на этапе выбора хорошо предсказывают, как будет во время инцидента.
- Заложите запасной способ. Ни один канал не работает у ста процентов аудитории; альтернатива в интерфейсе стоит дешевле, чем потерянные регистрации.
На чём чаще всего ошибаются при выборе
- Сравнивают цену за штуку, а не стоимость успешного подтверждения. Это разные величины, и расходятся они тем сильнее, чем хуже доставляемость.
- Не считают стоимость потерянных регистраций. Пользователь, не получивший код, стоит дороже, чем сам код.
- Берут провайдера под текущий объём. Проверять надо поведение на пике, а не на среднем.
- Оставляют один способ подтверждения. Любой канал иногда не срабатывает; запасной вариант дешевле, чем разбор инцидента.
- Откладывают документы на потом. Оферту и порядок выставления счетов проще посмотреть до интеграции.
Частые вопросы
- Есть ли минимальный платёж?
Абонентской платы и обязательного месячного объёма нет — вы платите только за подтверждения. Минимум есть у пополнения баланса: по умолчанию 100 ₽, актуальное значение показано в кабинете на странице пополнения.
- Какие документы получит бухгалтерия?
Юрлицам и ИП выставляется счёт, отношения регулирует публичная оферта. Реквизиты компании подставляются в счёт из карточки в кабинете, а НДС указывается согласно налоговому статусу исполнителя.
- Можно ли протестировать до оплаты?
Да. Проект и ключ создаются сразу после регистрации, а стоимость проверки такая, что полноценное тестирование сценария укладывается в минимальное пополнение. Отдельного песочного контура с фиктивными звонками нет — проверки идут по реальному пулу номеров.
- Что будет с неизрасходованным балансом?
Он не сгорает и остаётся на счёте: списание идёт по факту подтверждений, без ежемесячного обнуления. Порядок возврата описан в оферте.
- Что делать, если объём сильно больше типового?
Написать до интеграции. Крупные объёмы упираются не в тариф, а в ёмкость пула номеров, и это вопрос планирования, а не прайса.