Отправка шаблонного сообщения
Отправка шаблонного сообщения WhatsApp одному или нескольким получателям через API Pleep
Отправка шаблонного сообщения WhatsApp на один или несколько номеров телефонов. Поддерживаются каналы WABA Coexistence (Meta Cloud API) и устаревший WABA (GupShup).
Эндпоинт
Заголовки
| Заголовок | Значение | Обязательный |
|---|---|---|
X-API-Key | Ваш API-ключ | Да |
Content-Type | application/json | Да |
// POST /api/v1/messages/send-template // X-API-Key: YOUR_API_KEY { "bot_id": "your-bot-id", "channel": "waba_coexistence", "to": { "phone": "+77001234567" }, "template_id": "welcome_template", "template_language": "ru" }
// Ответ появится здесь после отправки запроса
Перед началом
Перед отправкой запроса вам нужно собрать несколько параметров: шаблон, Bot ID и канал. Ниже — пошаговая инструкция.
Шаг 1. Создайте шаблон
Перейдите в вашего AI-агента, затем в левом меню выберите Рассылки.

Если у вас ещё нет шаблона, нажмите Создать рассылку и создайте шаблон. Вы можете использовать переменные {{1}}, {{2}} и т.д. в тексте шаблона — например, для обращения к клиенту по имени. Шаблоны с переменными можно отправлять только через API.

После создания шаблон отправляется на модерацию в Meta. Дождитесь статуса Одобрен — только после этого шаблон можно использовать для отправки.
Подробнее о шаблонах читайте в разделе Рассылки → Шаблоны.
Шаг 2. Скопируйте Template ID
В разделе Рассылки найдите блок Мои шаблоны. Выберите нужный шаблон и нажмите на текст Template ID — он автоматически скопируется в буфер обмена.

Шаг 3. Найдите Bot ID
Перейдите в Интеграции, выберите вашу интеграцию WhatsApp Business и нажмите Управление. На странице интеграции вы увидите поле Bot ID — нажмите на иконку копирования, и Bot ID скопируется автоматически.

Шаг 4. Определите канал
Значение поля channel зависит от типа вашей интеграции WhatsApp:
Если в разделе Рассылки вы видите вкладку WhatsApp Business — используйте канал waba_coexistence. Это новая интеграция через Pleep (Meta Cloud API).

Тело запроса
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
bot_id | string | Да | UUID бота. Скопируйте из настроек интеграции (шаг 3) |
channel | string | Да | Канал отправки: waba или waba_coexistence (шаг 4) |
to | object или array | Да | Один получатель или массив получателей |
template_id | string | Да | Идентификатор шаблона. Скопируйте из раздела Рассылки (шаг 2) |
template_language | string | Нет | Код языка шаблона. По умолчанию ru |
Объект получателя
Каждый получатель в поле to имеет следующую структуру:
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
phone | string | Да | Номер телефона в международном формате (например, +77001234567) |
params | array | Нет | Значения переменных шаблона для этого получателя (например, имя клиента) |
Правила использования params
params— необязательное поле. Указывайте его только если шаблон содержит переменные ({{1}},{{2}}и т.д.)- Если шаблон не содержит переменных — не передавайте поле
paramsвообще - Пустые строки в
paramsзапрещены — API вернёт ошибку422 VALIDATION_ERRORпри передаче"params": [""] - Пустой массив
"params": []обрабатывается как отсутствие параметров
Примеры
Шаблон с переменными
Шаблон без переменных
Несколько получателей (массовая отправка)
Ошибка: пустые строки в params
Следующий запрос вернёт ошибку 422. Если шаблон не содержит переменных, просто не передавайте поле params:
Ответы
Один получатель — успех
Массовая отправка — успех
Коды ошибок
| HTTP-статус | Код ошибки | Описание |
|---|---|---|
| 401 | UNAUTHORIZED | Отсутствует или недействителен API-ключ |
| 403 | FORBIDDEN | API-ключ не имеет доступа к этому боту |
| 404 | BOT_NOT_FOUND | Указанный bot_id не существует |
| 422 | VALIDATION_ERROR | Некорректное тело запроса (отсутствуют поля, неверный формат, пустые строки в params) |
| 429 | QUOTA_EXCEEDED | Месячная квота сообщений исчерпана |
| 429 | RATE_LIMITED | Слишком много запросов. Лимит — 30 запросов в минуту на API-ключ |
| 502 | BILLING_ERROR | Проблема с оплатой на стороне провайдера |
| 502 | PROVIDER_ERROR | Ошибка провайдера WhatsApp (Meta или GupShup) |
Формат ответа с ошибкой
Ошибка провайдера (PROVIDER_ERROR)
При ошибке PROVIDER_ERROR ответ включает поле provider_response с исходным ответом от Meta или GupShup. Используйте его для отладки:
Совет
Если вы получили PROVIDER_ERROR, проверьте поле provider_response — оно содержит точную причину ошибки от Meta/GupShup. Убедитесь, что шаблон одобрен, номер телефона корректен, а количество переменных в params совпадает с переменными в шаблоне.