Перейти к содержимому
OmniChannels.ai
Меню

OTP-сообщения в WhatsApp и SMS: безопасность, доставка, фрод

OTP-сообщения в WhatsApp и SMS: шаблоны с копированием кода, one-tap и zero-tap, доставка, резервный канал, защита от SMS pumping и безопасный UX.

Обновлено 9 мин чтения

Автор: OmniChannels.ai Editorial Team · Проверил: BroadNet Messaging Solutions Team

SMS и OTP

Короткий ответ

Надёжная схема OTP генерирует короткоживущий одноразовый код, доставляет его по каналу, где он с наибольшей вероятностью придёт быстро, и один раз переключается на резервный канал, если доставка не подтверждена. В WhatsApp используйте аутентификационный шаблон (authentication) с кнопкой копирования кода, one-tap или zero-tap. В SMS используйте зарегистрированное транзакционное имя отправителя (Sender ID). Защитите оба канала лимитами запросов, ограничением числа попыток и мониторингом SMS pumping, также известного как искусственно завышенный трафик.

На этой странице
  1. Каким должно быть хорошее OTP-сообщение?
  2. Как работают аутентификационные шаблоны WhatsApp?
  3. Как отправлять OTP по SMS?
  4. Как выстроить доставку OTP и резервный канал?
  5. Как предотвратить SMS pumping и OTP-фрод?
  6. Пример: приложение доставки в Катаре
  7. Типичные ошибки и ограничения
  8. Чем помогает OmniChannels.ai

Главное

  • WhatsApp требует использовать для одноразовых кодов аутентификационные шаблоны (authentication): у них фиксированный текст и доставка через копирование кода, one-tap или zero-tap.
  • One-tap и zero-tap требуют доработки Android-приложения; копирование кода работает без изменений в приложении.
  • NIST SP 800-63B относит OTP, доставляемые по телефонной сети (SMS или голосом), к ограниченным (restricted) аутентификаторам из-за рисков подмены SIM-карты и перехвата.
  • SMS pumping, или искусственно завышенный трафик (AIT), использует фиктивные запросы OTP, чтобы генерировать платный SMS-трафик; с ним борются лимитами запросов, геоограничениями и мониторингом конверсии.
  • Резервный канал должен включаться, если за короткий тайм-аут нет подтверждения доставки, а один и тот же код нельзя отправлять повторно без ограничений.

Это руководство для продакт-менеджеров, инженеров и команд безопасности, которые отправляют одноразовые пароли (OTP) при регистрации, входе, платежах или восстановлении доступа. В нём разобрано, как работают аутентификационные шаблоны WhatsApp, как доставлять коды по SMS, как выстроить резервный канал и как остановить OTP-фрод, например SMS pumping, не мешая реальным пользователям.

Каким должно быть хорошее OTP-сообщение?

Хорошее OTP-сообщение приходит за считаные секунды, его легко ввести, его нельзя использовать повторно, и оно явно отправлено вами. Всё остальное в этом руководстве поддерживает эти четыре свойства.

  • Быстрое: доставляется за считаные секунды с первой попытки.
  • Удобное: по возможности автозаполнение или копирование; не нужно искать код в тексте.
  • Безопасное: короткоживущее, одноразовое, не менее шести цифр, с предупреждением «никому не сообщайте».
  • Вызывающее доверие: подтверждённое имя компании в WhatsApp или зарегистрированное имя отправителя в SMS.

Как работают аутентификационные шаблоны WhatsApp?

Для одноразовых кодов WhatsApp требует использовать аутентификационный шаблон (authentication). Текст задан Meta заранее, например «123456 — ваш код подтверждения», с необязательной рекомендацией по безопасности («В целях безопасности не сообщайте этот код») и необязательным нижним колонтитулом со сроком действия. Согласно документации Meta, аутентификационные шаблоны не могут содержать URL, медиафайлы и эмодзи, а параметры ограничены 15 символами.

Вы выбираете один из трёх типов доставки:

Тип Что видит пользователь Нужна доработка приложения Лучше всего подходит для
Копирование кода Пользователь нажимает кнопку, которая копирует код, и вставляет его Нет Вход через веб, iOS-приложения, быстрый запуск
One-tap (автозаполнение) Пользователь нажимает кнопку; ваше Android-приложение открывается с уже введённым кодом Интеграция с Android-приложением (handshake и данные пакета) Android-приложения, где важно минимальное трение
Zero-tap Код автоматически передаётся в ваше Android-приложение без нажатия Интеграция с Android-приложением и согласие пользователя в вашем приложении Android-сценарии с максимальной конверсией

Ещё два момента из документации Meta, которые стоит знать:

  • Защита связанных устройств (linked device security) включена по умолчанию в Cloud API: коды приходят только на основное устройство пользователя и скрываются на связанных устройствах.
  • Автозаполнение на iOS: Meta сообщает, что с 15 июня 2026 года на iOS 26 и новее подсказки клавиатуры предлагают автозаполнение OTP из уведомления WhatsApp без интеграции.

Если вы отправляете коды через маркетинговый или служебный шаблон, Meta может поставить такой шаблон на отклонение, и это решение нельзя обжаловать. Читайте наше руководство по категориям шаблонов WhatsApp.

Как отправлять OTP по SMS?

SMS остаётся универсальным каналом: он работает без интернета и приложения. Чтобы доставка была надёжной:

  1. Используйте зарегистрированное транзакционное имя отправителя, или альфа-имя, на рынках, где требуется регистрация, например в ОАЭ и Саудовской Аравии, и не отправляйте с него маркетинговые сообщения. Читайте наше руководство по регистрации имени отправителя.
  2. Укладывайтесь в один сегмент. Поставьте код в начало, назовите бренд, укажите срок действия и добавьте предупреждение: «123456 — ваш код Najm. Действует 5 минут. Никому его не сообщайте.» Арабский текст использует Unicode, поэтому в сегмент помещается меньше символов.
  3. Поддержите автозаполнение SMS на Android (формат SMS Retriever API) и iOS (поле one-time-code), чтобы пользователям не приходилось вводить код вручную.
  4. Отправляйте через качественные подключения, которые возвращают отчёты о доставке (DLR), чтобы у резервного канала и мониторинга были реальные сигналы.

NIST SP 800-63B относит OTP, передаваемые по телефонной сети общего пользования (SMS и голос), к ограниченным (restricted) аутентификаторам из-за рисков подмены SIM-карты, переноса номера и перехвата и рекомендует перед отправкой проверять признаки риска, например смену SIM-карты. Для действий с высокой ценой сочетайте SMS OTP с другими сигналами или предлагайте более надёжные факторы, например ключи доступа (passkeys).

Как выстроить доставку OTP и резервный канал?

Отправьте код один раз по лучшему каналу, коротко подождите подтверждения доставки и один раз переключитесь на резервный канал. Именно из-за неконтролируемых повторных отправок растут расходы и фрод.

  1. Выберите основной канал для каждого пользователя: WhatsApp для тех, кто раньше подтверждал номер через WhatsApp или выбрал его; для остальных — SMS.
  2. Генерируйте один код на сессию верификации, с коротким сроком действия и однократным приёмом.
  3. Ждите статуса «доставлено» в течение короткого тайм-аута, измеряемого секундами, а не минутами.
  4. Переключайтесь на резервный канал (fallback) один раз, если сообщение не доставлено: отправьте тот же код или аннулируйте первый.
  5. Предложите повторную отправку по инициативе пользователя с видимым обратным отсчётом вместо автоматических повторов.
  6. Ограничьте число повторных отправок и попыток на номер телефона, устройство и сессию.
  7. Логируйте канал, статус, задержку и результат верификации для каждой отправки.
Метрика О чём говорит Что делать при ухудшении
Доставляемость по каналам и странам Состояние маршрута или канала Сменить маршрут или основной канал для этого рынка
Время до доставки Ожидание пользователя и риск отказа Сократить тайм-аут резервного канала, проверить маршрут
Конверсия верификации (введённые коды / отправленные коды) Успех реальных пользователей и сигнал фрода Изучить трафик с низкой конверсией
Доля повторных отправок Неудобства в UX или проблемы с доставкой Пересмотреть тайм-аут, автозаполнение, текст сообщения
Расход на одну успешную верификацию Реальная стоимость Перебалансировать каналы, ужесточить антифрод-контроль

Как предотвратить SMS pumping и OTP-фрод?

SMS pumping, или искусственно завышенный трафик (AIT), возникает, когда боты запрашивают OTP на диапазоны номеров, где кто-то зарабатывает на терминации трафика. Вы платите за каждое сообщение, а реальный пользователь код так и не вводит. Защита строится в несколько уровней.

Контрольный список мер

  • Геоограничения: разрешайте OTP только в страны, где у вас есть клиенты; для добавления новых требуйте проверки.
  • Лимиты запросов на номер телефона, IP-адрес, устройство, сессию и префикс номера.
  • Защита от ботов (проверка или оценка риска) до запроса OTP, а не после.
  • Мониторинг конверсии: оповещение, когда конверсия верификации по стране или префиксу резко падает.
  • Валидация номеров: отклоняйте некорректные, последовательные или явно недействительные номера.
  • Оповещения о расходах и дневные лимиты по направлениям.
  • Экспоненциальная задержка при повторных отправках и никаких неограниченных автоматических повторов.
  • Отдавайте приоритет WhatsApp для пользователей, которые им пользуются: аутентификационные шаблоны привязаны к аккаунту WhatsApp, а не к премиальной SMS-терминации.
  • Инструкция на случай инцидента: кто может заблокировать страну или префикс и как быстро.

Защищайте и самих пользователей: никогда не запрашивайте код в звонке или чате, напишите об этом в сообщении и требуйте повторной аутентификации при смене номера телефона или SIM-карты.

Пример: приложение доставки в Катаре

«Rafeeq Delivery» (вымышленный пример) верифицирует новых пользователей и подтверждает дорогие заказы.

  • Пользователи Android получают аутентификационный шаблон WhatsApp с автозаполнением one-tap; пользователи iOS и веба получают шаблон с копированием кода.
  • Резервный канал: если доставка в WhatsApp не подтверждена за короткий тайм-аут, тот же код один раз уходит по SMS с зарегистрированного транзакционного имени отправителя.
  • Лимиты: три запроса кода на номер в час, ограничение на устройство и IP, а OTP-направления ограничены странами GCC, где работает приложение.
  • Мониторинг: однажды ночью запросы OTP на префикс за пределами GCC резко растут, а верификаций почти нет. Геоограничения блокируют их автоматически; инцидент ничего не стоит, потому что эта страна никогда не была включена.
  • Результат: команда каждую неделю отслеживает расход на одну успешную верификацию и конверсию верификации по каналам и корректирует основной канал по рынкам.

Типичные ошибки и ограничения

  • Использование маркетинговых или служебных шаблонов для OTP в WhatsApp.
  • Долгоживущие или многоразовые коды, а также коды, которые остаются действительными после выпуска нового.
  • Неограниченные повторные отправки, которые провоцируют pumping и раздражают пользователей.
  • Отсутствие геоограничений для OTP при регистрации.
  • Рекламный текст в OTP-SMS, из-за которого имя отправителя могут заблокировать.
  • OTP как единственный фактор для действий с высоким риском.
  • Игнорирование изменений стоимости. Meta тарифицирует доставленные аутентификационные шаблоны по рынку получателя; актуальные ставки уточняйте в прайс-листе Meta.

Чем помогает OmniChannels.ai

OmniChannels.ai поддерживает аутентификационные шаблоны WhatsApp с OTP через one-tap, zero-tap и копирование кода, а также служебные и маркетинговые шаблоны, с предпросмотром на телефоне и отслеживанием статуса одобрения. SMS доставляются через операторское подключение BroadNet Technologies, а голосовой OTP охватывает пользователей, которые не могут получать текстовые сообщения. Так вы можете сочетать WhatsApp, SMS и голос для OTP с резервным каналом, настроенным под каждый сценарий. Отчёты о доставке со сводным и расширенным видом, фильтрами и экспортом в CSV помогают отслеживать доставку по каналам. Отправка OTP и вебхуки доставки описаны в открытой документации по REST API.

Часто задаваемые вопросы

Чем отличаются one-tap, zero-tap и копирование кода в WhatsApp?

При копировании кода пользователь видит кнопку, которая копирует код, и вставляет его в ваше приложение или на сайт. One-tap показывает кнопку, которая открывает ваше Android-приложение и автоматически передаёт код. Zero-tap передаёт код в ваше Android-приложение в фоне, без нажатия кнопки. One-tap и zero-tap требуют интеграции с Android-приложением; копирование кода её не требует.

Как долго должен действовать OTP-код?

Срок действия должен быть коротким, а каждый код принимается только один раз. NIST SP 800-63B требует, чтобы внеполосная аутентификация завершалась в течение 10 минут, а коды состояли минимум из шести цифр. Многие компании используют более короткие окна для входа и платежей. В аутентификационных шаблонах WhatsApp можно показать необязательную строку со сроком действия, чтобы пользователь знал, как долго код работает.

Что такое SMS pumping, или искусственно завышенный трафик?

SMS pumping, или искусственно завышенный трафик (AIT), — это мошенничество, при котором боты запускают множество OTP- или верификационных сообщений на диапазоны номеров, которые контролирует злоумышленник или которые ему выгодны. Бизнес оплачивает сообщения, которые не нужны ни одному реальному пользователю. Признаки: всплески трафика в необычные страны, последовательные номера и запросы, после которых верификация не завершается.

С чего начинать отправку OTP: с WhatsApp или с SMS?

Это зависит от вашей аудитории. Если у большинства пользователей есть WhatsApp и интернет, аутентификационный шаблон WhatsApp даёт брендированный опыт с копированием или автозаполнением кода. SMS доходит до пользователей без WhatsApp или без интернета. Многие команды отправляют код по предпочтительному каналу и один раз переключаются на другой, если доставка не подтверждена за короткий тайм-аут.

Можно ли добавить ссылку в OTP-сообщение в WhatsApp?

Нет. Согласно документации Meta по категоризации шаблонов, аутентификационные шаблоны не могут содержать URL, медиафайлы и эмодзи, а их текст задан заранее. Код доставляется через механизм копирования, one-tap или zero-tap. Ссылки для входа и другой контент размещайте в отдельных служебных (utility) или маркетинговых шаблонах, где это уместно.

Отправляются ли OTP в WhatsApp на связанные устройства?

Документация Meta по аутентификационным шаблонам описывает защиту связанных устройств (linked device security), которая включена по умолчанию в Cloud API: коды доставляются только на основное устройство пользователя, а на связанных устройствах скрываются. Это снижает риск того, что код прочитают в десктопной сессии, которую контролирует другой человек.

Источники

  1. Authentication templates — Meta for Developers
  2. Template categorization — Meta for Developers
  3. NIST SP 800-63B: Authentication and Authenticator Management
  4. WhatsApp Business Platform pricing — Meta for Developers