Скилл WhatsApp API для ИИ агентаЕщё
1msg official logo

WhatsApp Business API для уведомления о рассмотрении ekyc

Сценарий отправляет клиенту персонализированный шаблон WhatsApp, когда их eKYC или проверка личности на рассмотрении.

Обзор сценария

Сценарий отправляет клиенту персонализированный шаблон WhatsApp, когда его электронная KYC или проверка личности ожидает рассмотрения. Сообщение включает имя клиента, процесс проверки и текущую метку статуса. Статическая кнопка URL открывает страницу статуса проверки или портал клиента.

Пример шаблона

Здравствуйте, {{1}}! Ваш {{2}} сейчас: {{3}}. Мы уведомим вас, когда проверка завершится. Если у вас есть вопросы, мы готовы помочь.

Проверить статус
  • {{1}}
    имя клиента
  • {{2}}
    процесс проверки (например, eKYC, проверка личности, проверка документов)
  • {{3}}
    надпись текущего статуса (например, в ожидании проверки, на рассмотрении, в ожидании подтверждения)
  • “Проверить статус”
    кнопка — исправлена в шаблоне Meta
WhatsApp Business API for ekyc pending notification

Когда использовать

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

Меньше звонков с вопросом «Вы получили мои документы?»
Три переменные в теле передают имя клиента, метку процесса верификации и текущий статус ожидания, позволяя клиенту узнать, что проверка в процессе, не открывая почту и не обращаясь в поддержку.
Проверка статуса в один клик
Кнопка с неизменной URL-ссылкой «Проверить статус» открывает портал верификации или страницу статуса — ссылка закреплена в утверждённом шаблоне Meta, а через API отправляется только текст тела.
Обновления без открытого чата
Поскольку активного диалога нет, отправка выполняется с использованием утверждённого шаблона WhatsApp через API 1MSG — это единственный канал, который может связаться с клиентом за пределами 24-часового окна сессии.
Нет ручной проверки для каждого ожидающего запроса
Когда провайдер eKYC или бэк-офис отмечает случай как ожидающий рассмотрения, интеграция обрабатывает номер телефона и запускает шаблон при этом событии, вместо того чтобы кто-то копировал текст статуса вручную.
Доставка зарегистрирована для контроля соответствия требований
Результат доставки фиксируется после отправки, поэтому команды CRM или службы соответствия могут видеть, кто был уведомлён, и обрабатывать ошибки в соответствии с правилами платформы.

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

  1. Действия клиента

    Клиент отправляет документы eKYC или проходит проверку.

    user action

  2. Офис

    Бэк-офис, поставщик eKYC или интеграция помечают дело как на рассмотрении.

    POST /sendTemplate

  3. Отслеживаемый статус

    Система обрабатывает номер телефона получателя и поле с ожидающим статусом.

    status: "read"

  4. Построить и отправить

    Персонализированное сообщение по шаблону создаётся с тремя переменными в теле и статической кнопкой URL.

    POST /sendTemplate

  5. Доставлено

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

    delivered

  6. Результат доставки записан в журнал

    Результат доставки записывается; ошибки обрабатываются согласно правилам платформы.

    status: "read"

WhatsApp Business API for ekyc pending notification

Техническая реализация

Предварительные требования

  1. API-ключ 1MSG · Как получить ключ API
  2. Аккаунт WhatsApp Business · Как подключить WABA
  3. Шаблон WhatsApp · Как утвердить шаблон WABA
  4. Согласие клиента · Как управлять согласием клиентов

Примеры кода

#!/usr/bin/env bash
set -euo pipefail

# === Configuration (replace "___" placeholders) ===

API_BASE_URL="https://api.1msg.io"        # production 1MSG API base URL
CHANNEL_ID="___"                           # channel ID from 1MSG dashboard
API_TOKEN="___"                            # channel JWT token (Bearer)

TEMPLATE_NAME="___"                        # approved template name
TEMPLATE_NAMESPACE="___"                   # template namespace (required — send fails without it)
TEMPLATE_LANGUAGE="___"                    # template language code, e.g. "en"



# === Test data ===
TEST_PHONE="___"                 # client phone in international format
TEST_CUSTOMERNAME="___"         # {{1}} customer name
TEST_PROCESS="___"         # {{2}} process name
TEST_STATUS="___"         # {{3}} status label

PHONE_NORM="$(printf '%s' "$TEST_PHONE" | tr -cd '0-9')"

for pair in "CHANNEL_ID=$CHANNEL_ID" "API_TOKEN=$API_TOKEN" \
            "TEMPLATE_NAME=$TEMPLATE_NAME" "TEMPLATE_NAMESPACE=$TEMPLATE_NAMESPACE" \
            "TEMPLATE_LANGUAGE=$TEMPLATE_LANGUAGE" "TEST_PHONE=$TEST_PHONE" \
            "TEST_CUSTOMERNAME=$TEST_CUSTOMERNAME" \
            "TEST_PROCESS=$TEST_PROCESS" \
            "TEST_STATUS=$TEST_STATUS"; do
    val="${pair#*=}"
    if [ -z "$val" ] || [ "$val" = "___" ]; then
        echo "Missing configuration value: ${pair%%=*}" >&2
        exit 1
    fi
done

if [ -z "$PHONE_NORM" ]; then
    echo "Error: phone number has no digits after normalization" >&2
    exit 1
fi

URL="${API_BASE_URL%/}/${CHANNEL_ID}/sendTemplate"

# params carries body ONLY. Button text is fixed in the Meta template — no button param.

# {{1}} customer name → ${TEST_CUSTOMERNAME}
# {{2}} process name → ${TEST_PROCESS}
# {{3}} status label → ${TEST_STATUS}
read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "template": "${TEMPLATE_NAME}",
  "namespace": "${TEMPLATE_NAMESPACE}",
  "language": { "policy": "deterministic", "code": "${TEMPLATE_LANGUAGE}" },
  "params": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "${TEST_CUSTOMERNAME}" },
        { "type": "text", "text": "${TEST_PROCESS}" },
        { "type": "text", "text": "${TEST_STATUS}" }
      ]
    }

  ]
}
JSON

RESPONSE="$(curl -s -w '\n%{http_code}' -X POST "$URL" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${API_TOKEN}" \
    -d "$PAYLOAD")"

HTTP_CODE="$(printf '%s' "$RESPONSE" | tail -n1)"
BODY="$(printf '%s' "$RESPONSE" | sed '$d')"

case "$BODY" in
    *'"sent":true'*) ok=1 ;;
    *) ok=0 ;;
esac

if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ] && [ "$ok" -eq 1 ]; then
    echo "Message sent to client."
    echo "API response: $BODY"
else
    echo "Send failed. HTTP status: $HTTP_CODE" >&2
    echo "$BODY" >&2
    exit 1
fi

Статус ответа и доставки

HTTP-коды 2xx и JSON "sent": true означают, что 1MSG принял сообщение для отправки — это не значит, что оно уже доставлено на телефон клиента. Сохраните idполе (выглядит как wamid.…) для сопоставления уведомлений о доставке.

200 OKОтвет
{
  "sent": true,
  "id": "wamid.HBgLMzgwNjM5...",
  "message": "Message accepted for delivery"
}
  • sent

    Принято к отправке — ещё не на устройстве клиента

  • id

    Сохраните это; обратные вызовы доставки и hookInfo зависят от этого

Доставка выполняется позже, отдельным обратным вызовом. Зарегистрируйте вебхук (POST …/webhook), и 1MSG отправит обновления статуса на ваш HTTPS-эндпоинт в верхнеуровневом hooks[]payload

200 OKВебхук статуса доставки — данные, которые вы получаете
{
  "hooks": [
    {
      "id": "gBGGeSaGViBfAgnlzOSHEwK9O6F",
      "type": "message",
      "status": "sent",
      "timestamp": "1654864094",
      "recipient_id": "556123122026"
    }
  ]
}
  • status

    sent, delivered, read — или статус сбоя, если применимо

  • id

    Соотносит обратный вызов с id, возвращаемым при вызове отправки

  • timestamp

    Секунды Unix в виде строки

Если вы предпочитаете не получать обратные вызовы, GET {base}/{channel}/hookInfo?messageId=<id>вместо них используйте опрос. На практике доставка часто завершается за считанные секунды — но API это не гарантирует, поэтому никогда не блокируйте процесс в ожидании его завершения.

Типичные ошибки

СтатусОтветПричина
200Message was not sent: template is not definednamespace, template or language missing from the request body.
200template name (…) does not exist in <language>The template is approved in a different language than the one requested.
200Message was not sent: provide chatId, phone, bsuid, or usernameNo recipient the channel could resolve.
403access deniedThe token is wrong, or belongs to a different channel than the URL.
429too many requests. please try laterThe channel is over its send rate.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Да, для холодных рассылок в WhatsApp нужен одобренный Meta шаблон.

Связанные

Подтверждение OTP
WhatsApp Business API для уведомления о необходимом действии kyc
Сценарий отправляет клиенту персонализированный WhatsApp шаблон, когда проверка KYC или соответствия выявляет необходимость действия с дедлайном.
Подтверждение OTP
WhatsApp Business API для запроса проверки
Сценарий отправляет клиенту персонализированный шаблон WhatsApp, когда требуется проверка личности или KYC, но она ещё не началась.
Подтверждение OTP
WhatsApp Business API для безопасного логина через одноразовый пароль
Сценарий отправляет шаблон аутентификации WhatsApp с одноразовым кодом подтверждения, когда нужно подтвердить вход в защищённый или безопасный сервис.
Подтверждение OTP
WhatsApp Business API для подтверждения регистрации приложения
Отправляет в WhatsApp шаблон аутентификации с одноразовым кодом подтверждения регистрации в теле сообщения и кнопкой «Копировать код».
Подтверждение OTP
WhatsApp Business API для миграции sms на whatsapp otp
Отправляет одноразовый код подтверждения через шаблон аутентификации WhatsApp при переключении доставки OTP с SMS на WhatsApp.
Подтверждение OTP
WhatsApp Business API для безопасного подтверждения действий OTP
Сценарий отправляет шаблон аутентификации WhatsApp с одноразовым кодом, когда требуется подтвердить безопасное действие.
Подтверждение OTP
WhatsApp Business API для подтверждения доступа к сервису
Отправляет одноразовый код подтверждения через шаблон аутентификации WhatsApp, когда нужно подтвердить личность перед использованием защищённого сервиса.
Подтверждение OTP
WhatsApp Business API для подтверждения авторизации через otp
Отправляет одноразовый код через шаблон подтверждения WhatsApp, когда пользователю нужно подтвердить вход или доступ.

Интегрируйте WhatsApp за часы
без проблем с инфраструктурой