Выбор решения

Сервис подтверждения номера телефона: как выбрать и сколько стоит

При выборе сервиса подтверждения номера почти всё решают три вопроса: за что именно списывают деньги — за попытку или за результат; что происходит, когда подтверждение не доходит до пользователя; за сколько это встраивается в ваш продукт. Цена за штуку вторична — на реальную стоимость сильнее влияет модель списания. Ниже разбор критериев и расчёт: в 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 000200 ₽160 ₽120 ₽
10 0002 000 ₽1 600 ₽1 200 ₽
100 00020 000 ₽16 000 ₽12 000 ₽

Столбцы справа — не скидка, а прямое следствие модели: платите за то, что состоялось. Формула для подстановки своих цифр: запущенные проверки × доля дозвона × 0,20 ₽.

Цены в таблице актуальны на дату публикации; источник правды — страница тарифов.

Как оплатить

Баланс пополняется двумя способами:

  • Счёт — для юрлиц и ИП. Реквизиты подставляются из карточки в кабинете, счёт приходит готовым к оплате. Зачисление на баланс происходит автоматически, когда банк подтверждает поступление.
  • Картой — если удобнее платить сразу и без бухгалтерии.

Минимальная сумма пополнения по умолчанию — 100 ₽; фактическое значение показано в кабинете. Неизрасходованный баланс не сгорает.

Как подключить

  1. Регистрация. Занимает минуту, карта не требуется.
  2. Проект. Создаётся в кабинете, сразу получает собственный ключ. Ключ хранится на сервере — во фронтенде ему не место.
  3. Тестовая проверка. Запускается с первого же запроса, по реальному номеру.
  4. Интеграция. Два запроса: создать проверку и получить её статус. Обработать три состояния — PENDING, CONFIRMED, EXPIRED.
  5. Запасной способ. Оставьте пользователю альтернативу на случай скрытого номера или зарубежной SIM.

Пошаговое описание запросов с примерами кода — в материале про API подтверждения номера. Как устроен сам механизм проверки — в статье про подтверждение номера звонком.

Чек-лист перед интеграцией

Пройдите его до того, как разработчик начнёт писать код, — все пункты проверяются за час и снимают большую часть будущих сюрпризов.

  1. Посмотрите на модель списания в документации, а не в презентации. Найдите, в какой момент уменьшается баланс. Если это момент отправки или создания запроса, вы платите за попытки.
  2. Уточните, что происходит с неудачной проверкой. Есть ли отдельный статус, тарифицируется ли она, видно ли её в статистике.
  3. Проверьте формат номера. E.164 — стандарт; если сервис требует собственный формат, это лишний слой преобразований и источник ошибок.
  4. Найдите, где хранится ключ. Он должен использоваться только с сервера. Если инструкция предлагает положить его во фронтенд, это плохой знак для всей архитектуры.
  5. Оцените, что будет на пике. Спросите про ограничения на число одновременных проверок: узкое место обычно там, а не в тарифе.
  6. Прочитайте оферту до слова «ответственность». Особенно раздел про возврат неизрасходованного баланса.
  7. Задайте один вопрос в поддержку. Скорость и содержательность ответа на этапе выбора хорошо предсказывают, как будет во время инцидента.
  8. Заложите запасной способ. Ни один канал не работает у ста процентов аудитории; альтернатива в интерфейсе стоит дешевле, чем потерянные регистрации.

На чём чаще всего ошибаются при выборе

  • Сравнивают цену за штуку, а не стоимость успешного подтверждения. Это разные величины, и расходятся они тем сильнее, чем хуже доставляемость.
  • Не считают стоимость потерянных регистраций. Пользователь, не получивший код, стоит дороже, чем сам код.
  • Берут провайдера под текущий объём. Проверять надо поведение на пике, а не на среднем.
  • Оставляют один способ подтверждения. Любой канал иногда не срабатывает; запасной вариант дешевле, чем разбор инцидента.
  • Откладывают документы на потом. Оферту и порядок выставления счетов проще посмотреть до интеграции.

Частые вопросы

Есть ли минимальный платёж?

Абонентской платы и обязательного месячного объёма нет — вы платите только за подтверждения. Минимум есть у пополнения баланса: по умолчанию 100 ₽, актуальное значение показано в кабинете на странице пополнения.

Какие документы получит бухгалтерия?

Юрлицам и ИП выставляется счёт, отношения регулирует публичная оферта. Реквизиты компании подставляются в счёт из карточки в кабинете, а НДС указывается согласно налоговому статусу исполнителя.

Можно ли протестировать до оплаты?

Да. Проект и ключ создаются сразу после регистрации, а стоимость проверки такая, что полноценное тестирование сценария укладывается в минимальное пополнение. Отдельного песочного контура с фиктивными звонками нет — проверки идут по реальному пулу номеров.

Что будет с неизрасходованным балансом?

Он не сгорает и остаётся на счёте: списание идёт по факту подтверждений, без ежемесячного обнуления. Порядок возврата описан в оферте.

Что делать, если объём сильно больше типового?

Написать до интеграции. Крупные объёмы упираются не в тариф, а в ёмкость пула номеров, и это вопрос планирования, а не прайса.