Skip to main content
Используйте коды подтверждения WhatsApp для регистрации, входа в систему, восстановления учетной записи и дополнительной проверки важных действий. После того как клиент выбирает WhatsApp, ваша система отправляет шаблон аутентификации. Клиент копирует или автозаполняет код, а ваш бэкенд проверяет его.

Зачем использовать WhatsApp для подтверждения?

Добавьте еще один канал доставки наряду с SMS

WhatsApp принимает сообщения через интернет-соединение. Это дает клиентам еще один способ получить код, когда доступен Wi-Fi, но прием SMS ненадежен. Получателю по-прежнему необходимы WhatsApp и работающее подключение к интернету.

Сократите количество шагов для ввода кода

Кнопки копирования кода уменьшают необходимость ручного ввода. Варианты в один клик (One-tap) и без клика (Zero-tap) позволяют сократить переключение между приложениями в поддерживаемых интегрированных приложениях для Android. Для клиентов, которые уже используют WhatsApp, эти варианты могут упростить прохождение верификации. Оцените влияние на завершаемость в вашем собственном сценарии.

Оптимизируйте стоимость успешной верификации

Рассмотрите WhatsApp как потенциальный способ снижения затрат на верификацию в зависимости от рынка. Сравните тарифы на аутентификацию и применимые международные тарифы на аутентификацию, сборы YCloud, затраты на резервную доставку через SMS и показатели успешности. В качестве практического показателя используйте общие расходы на каналы верификации, разделенные на количество успешных подтверждений. Meta взимает плату за доставленные сообщения; за недоставленное сообщение соответствующая плата Meta за сообщение не списывается. Прочие расходы зависят от вашего тарифа YCloud. См. Цены WhatsApp и Цены Meta.

Находите этапы оттока в процессе верификации

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

Перед началом работы

  1. Войдите в YCloud и подключите WABA и отправителя.
  2. Подготовьте логику запроса, генерации, хранения и проверки кодов. В этом руководстве используется WhatsApp Messages API; ваша система управляет жизненным циклом кодов. Информацию о службе верификации YCloud см. в разделе Verify.
  3. Подготовьте серверный API-ключ и приемник Webhook.
  4. Используйте тестового получателя, который запросил код. Запрос кода не является разрешением на последующую рассылку маркетинговых сообщений.
  5. Настройте и протестируйте канал SMS, если вам нужен резервный вариант доставки. WhatsApp Messages API не отправляет SMS автоматически при соблюдении рекомендаций из этого руководства.

1. Выберите способ работы с кодом

Варианты в один клик или без клика могут переключаться на другой способ, например копирование кода, если требования к устройству или приложению не соблюдены. Обеспечьте поддержку этого резервного варианта. Выбор опции в редакторе не выполняет интеграцию вашего клиентского приложения автоматически. Meta также описывает предложения OTP-кода на клавиатуре из уведомлений на iOS 26 и новее. Это работает отдельно от вариантов One-tap и Zero-tap на Android; тестируйте их раздельно. См. Шаблоны аутентификации и Документация Meta по аутентификации.
Пример аутентификации Meta с короткой стрелкой, указывающей на Копировать код.

Meta example: the customer copies the verification code and enters it in your app. The code and expiry shown are demonstration values.

Источник: Шаблоны аутентификации Meta.

2. Создайте шаблон аутентификации

Выберите WABA, имя и язык

Откройте Шаблоны для нужного WABA в YCloud, выберите Добавить шаблон и укажите Аутентификация. Используйте строчные буквы, цифры и символы подчеркивания для имени, например login_verification. Выберите язык вашего клиента и сохраните точное утвержденное имя и код языка для отправки. См. Создать шаблон.

Настройте содержимое и действие для кода

Для аутентификации используется предустановленный текст кода с поддерживаемыми уведомлениями о безопасности и сроке действия. Не вставляйте в текст сообщения обычные рекламные тексты, URL-адреса, медиафайлы или эмодзи. Выберите Копировать код, Автозаполнение или Zero Tap. Для вариантов «Автозаполнение» и «Zero Tap» укажите фактическое имя пакета Android и хэш подписи, а затем выполните интеграцию приложения. Для Zero Tap также требуется принять соответствующие условия. Для настройки API используйте актуальный контракт supported_apps, а не устаревшие примеры верхнего уровня package_name и signature_hash. Ознакомьтесь с руководствами по интеграции аутентификации для получения подробной информации об Android SDK и процессе подтверждения связи.

Настройте три отдельных параметра срока действия

Текущий контракт YCloud поддерживает стандартные кастомные значения TTL аутентификации в диапазоне 30–900 секунд, со значением по умолчанию 10 минут для новых шаблонов. Ранее использовавшиеся значения по умолчанию могут отличаться; проверьте сохраненный messageSendTtlSeconds. Отображаемое уведомление о сроке действия поддерживает 1–90 минут , но не изменяет срок действия на бэкенде и не расширяет стандартный диапазон TTL доставки. Контракт также поддерживает -1, который устанавливает кастомный TTL на 30 дней. Это не рекомендуется для короткоживущих кодов и не означает мгновенное истечение срока действия или отключение повторных попыток. См. контракт YCloud OpenAPI. Например, если код сгенерирован в 10:00 и истекает в 10:05, у него останется одна минута, если он будет доставлен в 10:04. Получение сообщения не перезапускает срок действия. Истечение TTL прекращает незавершенные попытки доставки; оно не отзывает сообщение, уже доставленное на устройство клиента.

Отправьте на проверку и проверьте доступность

Отправьте шаблон и проверьте его фактический статус модерации. Отправляйте сообщения только после того, как он будет одобрен и станет доступен для использования. В случае отклонения выясните причину и следуйте руководству Модерация и жизненный цикл шаблонов. Не рассчитывайте на фиксированное время одобрения.

3. Отправка через API

Отправляйте сообщение сразу после того, как клиент запросит код. Выберите поведение отправки, необходимое для вашего сценария: Имя эндпоинта sendDirectly описывает тайминг отправки. Оно не связано с функцией Utility Direct Send, которая отвечает за генерацию шаблонов. В этом сценарии по-прежнему используется одобренный шаблон аутентификации.

Подготовка запроса

  • Выполняйте аутентификацию на стороне сервера с помощью X-API-Key.
  • Используйте номера в формате E.164, включая телефонные коды стран, для from и to.
  • Установите для type значение template и используйте одобренное имя и язык для выбранного WABA.
  • Передавайте один и тот же код в теле сообщения и в параметрах кнопки OTP.
  • Свяжите ваш запрос верификации с идентификатором сообщения YCloud. Параметр externalId помогает при сопоставлении данных, но не гарантирует идемпотентность.
Пример тела запроса с кнопкой «Копировать код». Замените плейсхолдеры; значение 123456 является вымышленным и в рабочей среде должно генерироваться вашей системой верификации:
В параметрах отправки для кнопки OTP используется sub_type: url; не используйте стандартную структуру кнопок с промокодами для маркетинга. См. разделы Аутентификация с копированием кода и Отправка сообщения WhatsApp. Вы также можете выбрать Ещё → Копировать как cURL для одобренного шаблона и сверить сгенерированные параметры с его конфигурацией. Успешный ответ API не подтверждает факт доставки. Если время ожидания запроса истекло, проверьте доступные записи сообщений и колбэки перед повторной отправкой.

4. Получение обновлений о доставке

В разделе Разработчикам → Webhook-уведомления создайте эндпоинт, укажите ваш callback-URL и подпишитесь на whatsapp.message.updated. Ознакомьтесь с руководством по Webhook для настройки проверки подписи, подтверждений и повторных попыток. Связывайте каждый идентификатор сообщения с соответствующим запросом верификации: Отмечайте верификацию как завершенную только тогда, когда ваш бэкенд проверит код. Обрабатывайте дублирующиеся и запоздалые обратные вызовы, не допуская перезаписи более позднего статуса более ранним. Используйте Журналы сообщений для ручного анализа.

5. Проектирование интерфейса и резервного канала SMS

Четко информируйте о канале доставки

Перед отправкой укажите, что код придет через WhatsApp. После отправки отобразите маскированный номер получателя, сообщение об ожидании, обратный отсчет до повторной отправки и доступные альтернативы. Предоставьте клиентам возможность вернуться и исправить номер. Если операционная система позволяет, ваше приложение может использовать проверку наличия WhatsApp для предложения канала. Установка приложения не гарантирует, что введенный номер зарегистрирован или доступен. Отрицательный результат не исключает получение кода на другом устройстве. Не используйте проверку установки приложения вместо проверки номера.

Разделяйте обработку ошибок и задержек

Интервал 15–60 секунд из исходного руководства можно использовать в качестве экспериментального диапазона ожидания. Скорректируйте его на основе наблюдаемой задержки и доли отказов. Это не требование WhatsApp и не гарантия времени доставки. Для одного и того же запроса проверки можно отправить тот же действующий код по резервному каналу. При генерации нового кода аннулируйте предыдущий в соответствии с вашей политикой и сообщите об этом поведении пользователю. Переход на резервный канал не должен продлевать срок действия старого кода. Используйте один запрос на верификацию для управления попытками отправки по каналам, временем ожидания перед повторной отправкой и завершением процесса. Повторные нажатия или дублирующиеся и запоздалые обратные вызовы не должны приводить к отправке нескольких SMS. Если придут сообщения и по WhatsApp, и по SMS, плата может взиматься за каждый канал.

6. Тестирование перед запуском

После запуска сравнивайте процент доставки, задержку доставки, долю завершенных верификаций, долю резервных переходов на SMS и стоимость одной успешной верификации по рынкам, каналам и устройствам. Используйте эти данные для настройки приоритета каналов и порогов ожидания вместо обещаний того, что WhatsApp всегда быстрее или дешевле, чем SMS.

Дополнительный сценарий: верификация, инициированная клиентом

В сценарии верификации, инициируемой клиентом, пользователь открывает WhatsApp из приложения, отправляет сообщение с информацией для текущей проверки и затем возвращается в приложение. Оценивайте этот сценарий отдельно. Обычного входящего сообщения в WhatsApp самого по себе недостаточно для входа на сайт или в приложение. Для этого подхода требуются одноразовый запрос (challenge), привязка к сессии, срок действия, защита от повторного воспроизведения и подтверждение пользователя. Упомянутые материалы YCloud не предоставляют готовой функции входа, поэтому данное руководство не рассматривает ее как стандартный шаг интеграции.