Zero-Tap для WhatsApp

Технология Zero-Tap в WhatsApp — автоматическая подстановка кода без ввода. Настройка приложения, отключение сервера, отправка OTP через API

Коротко: Zero-Tap — технология WhatsApp, при которой код аутентификации подставляется в приложение автоматически. Пользователю не нужно ничего вводить.

Кому подходит

  • Роль: Клиент, Разработчик
  • Уровень: Опытный

Что это

Обычно пользователь получает код в SMS или WhatsApp и вводит его вручную. Zero-Tap убирает этот шаг — код подставляется автоматически, как только приходит сообщение.

Технология работает только на Android-устройствах с установленным WhatsApp обычной версии (не Business).

Как это работает

1
Приложение получает код

Ваше мобильное приложение получает код от WhatsApp.

2
Код подставляется автоматически

Код автоматически подставляется в нужное поле.

3
Пользователь не вводит код

Пользователь не вводит код вручную — экономия времени и повышение конверсии.

Что нужно для подключения

ЭлементЧто это
Package NameИмя пакета Android-приложения
Signature HashХэш подписи приложения
Шаблон WhatsApp «Аутентификация»Специальный тип шаблона с поддержкой Zero-Tap

Zero-Tap используется для авторизационных сообщений — OTP-кодов и кодов подтверждения входа.

Категории сообщений →

Как настроить

1
Получите Package Name и Signature Hash

Используйте официальное демо-приложение:

  • Android: репозиторий WhatsApp-OTP-Sample-App/Android.
  • iOS: репозиторий WhatsApp-OTP-Sample-App/iOS.

Package Name берётся из файла AndroidManifest.xml (атрибут package). Пример: com.whatsapp.otp.sample.app.

Signature Hash отображается на стартовом экране приложения под кнопкой Request OTP. Пример: K8a/AINXXXX.

2
Отключите вызовы сервера (опционально)

Для работы приложения без сервера нужно убрать сетевые запросы.

Файл 1. app/src/main/java/com/whatsapp/otp/sample/app/otp/WhatsAppOtpIntentHandler.java

В методе sendOtp() замените:

whatsAppOtpHandler.sendOtpIntentToWhatsApp(context);
otpService.sendOtp(phoneNumber, onSuccessHandler, onFailureHandler);

на:

whatsAppOtpHandler.sendOtpIntentToWhatsApp(context);
// Skip server call - user will send OTP manually
WA_LOGGER.info("OTP intent sent to WhatsApp. Waiting for user to send OTP manually.");
onSuccessHandler.run();

Файл 2. app/src/main/java/com/whatsapp/otp/sample/app/otp/service/SampleServerOtpService.java

В методе validateOtp(...) замените блок с HTTP-запросом на:

executorServiceForNetworkRequest.submit(() -> {
    WA_LOGGER.info("Validating OTP without server - always returning VALID");
    onRequestCompletedHandler.accept(OtpServiceInterface.OtpStatus.VALID);
});

Файл 3. Найдите строку:

public static final String SERVER_URL = "http://10.0.2.2:3000";

Замените на:

public static final String SERVER_URL = "";
3
Создайте шаблон WhatsApp
  1. Откройте раздел Активы → Шаблоны WhatsApp.
  2. Нажмите Добавить шаблон WhatsApp → Общий.
  3. Укажите имя отправителя, название, язык.
  4. Выберите категорию Authentication.
  5. Добавьте кнопку типа Zero-Tap автозаполнение.
  6. Укажите Package Name и Signature Hash.
  7. Проставьте галочку согласия с WhatsApp Business Terms of Service.
  8. Сохраните и дождитесь одобрения.
4
Отправьте OTP через API

URL: https://<host>/api/v1/messages

Метод: POST

Заголовки: Content-Type: application/json, Authorization: Bearer <your_API_token>

Пример тела запроса:

{
  "contact": "<recipient_number>",
  "channel": 4,
  "payload": {
    "type": "template",
    "template": {
      "namespace": "<namespace>",
      "language": {
        "policy": "deterministic",
        "code": "en"
      },
      "name": "<name>",
      "components": [
        {
          "type": "body",
          "parameters": [
            { "type": "text", "text": "<otp_code>" }
          ]
        },
        {
          "type": "button",
          "sub_type": "url",
          "index": 0,
          "parameters": [
            { "type": "text", "text": "<otp_code>" }
          ]
        }
      ]
    }
  },
  "senderId": "<sender_number>",
  "createRecipient": false
}

Условия для работы

Перед тестированием убедитесь:

  • На устройстве установлен WhatsApp (обычная версия, не Business).
  • В WhatsApp выполнен вход с того номера, на который отправляется код.
  • Номер в запросе совпадает с номером устройства.

Результат

Код подставляется автоматически. Пользователь экономит время, а вы повышаете конверсию.

Частые проблемы

Причина: Zero-Tap работает только с обычной версией WhatsApp.

Решение: удалите WhatsApp Business и установите обычную версию.

Причина: в шаблоне указан Package Name, отличающийся от того, что в приложении.

Решение: откройте AndroidManifest.xml, скопируйте точный package и обновите шаблон.

Причина: в шаблоне указан устаревший или неверный Signature Hash.

Решение: откройте демо-приложение и скопируйте значение под кнопкой Request OTP.

Причина: шаблон не прошёл проверку Meta.

Решение: проверьте содержимое и отправьте снова. Срок рассмотрения — до 24 часов.

Причина: переменные шаблона не заполнены.

Решение: заполните все переменные в запросе.

См. также

Шаблон WhatsApp «Аутентификация»

Шаблон для кодов с поддержкой Zero-Tap

Как создать шаблон WhatsApp

Пошаговая инструкция создания шаблона

Настройка WhatsApp

Базовые настройки канала

Как создать API-ключ

Получение ключа для интеграции

Нужна помощь?