Pleep Docs

Список шаблонов

Получение шаблонов WhatsApp номера с полным текстом, статусом и числом переменных через API Pleep

Возвращает все шаблоны одного номера WhatsApp: полный текст с переменными {{1}}, {{2}}, язык, статус одобрения, категорию, заголовок, подвал, кнопки и число переменных. Метод нужен, чтобы не хранить тексты шаблонов у себя вручную: показывайте менеджеру превью и передавайте в отправку шаблона ровно те значения, которые вернул этот метод.

Эндпоинт

POST https://microservice.pleep.app/api/v1/messages/get-templates

Заголовки

ЗаголовокЗначениеОбязательный
X-API-KeyВаш API-ключДа
Content-Typeapplication/jsonДа

Тело запроса

ПолеТипОбязательноеОписание
bot_idstringДаID бота. Тот же, что в отправке шаблона: скопируйте его в Интеграции → WhatsApp Business → Управление
channelstringДаКанал: waba_coexistence или waba (Gupshup). Как выбрать канал, описано в отправке шаблона
statusstringНетВернуть только шаблоны с этим статусом, например APPROVED. Регистр не важен. Без поля вернутся шаблоны во всех статусах

Пример запроса

{
  "bot_id": "your-bot-id",
  "channel": "waba_coexistence",
  "status": "APPROVED"
}

curl

curl -X POST https://microservice.pleep.app/api/v1/messages/get-templates \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ваш-api-ключ" \
  -d '{"bot_id": "your-bot-id", "channel": "waba_coexistence", "status": "APPROVED"}'

Ответ

{
  "ok": true,
  "data": {
    "templates": [
      {
        "template_id": "awake_after_weekend",
        "name": "awake_after_weekend",
        "language": "en_US",
        "status": "APPROVED",
        "category": "MARKETING",
        "body": "Hi {{1}}, sorry we couldn't respond over the weekend. Your manager {{2}} will continue here.",
        "header": { "format": "TEXT", "text": "Back on Monday" },
        "footer": "Worrki team",
        "buttons": [
          { "type": "QUICK_REPLY", "text": "Stop promotions" }
        ],
        "params_count": 2
      }
    ]
  }
}

Поля шаблона

ПолеТипОписание
template_idstringПередайте это значение в поле template_id при отправке шаблона
namestringНазвание шаблона. Совпадает с template_id
languagestringЯзык, в котором шаблон одобрен, например en_US или ru. Передайте его в поле template_language при отправке. Шаблон с одним названием может быть одобрен на нескольких языках: тогда в списке будет по записи на каждый язык
statusstringСтатус шаблона у провайдера: APPROVED, PENDING, REJECTED, PAUSED, DISABLED и другие. Отправить можно только APPROVED
categorystringMARKETING, UTILITY или AUTHENTICATION
bodystringПолный текст шаблона с переменными {{1}}, {{2}}
headerobject или nullЗаголовок: format (TEXT, IMAGE, VIDEO, DOCUMENT или LOCATION) и text для текстового заголовка. null, если заголовка нет
footerstring или nullТекст подвала или null
buttonsarrayКнопки: type (QUICK_REPLY, URL, PHONE_NUMBER и другие), text, а также url или phone_number, если они есть. Пустой массив, если кнопок нет
params_countintegerСколько значений передавать в params для каждого получателя при отправке. Переменная, которая встречается в тексте дважды, считается один раз

Как отправить шаблон из списка

  1. Возьмите шаблон со статусом APPROVED.
  2. Передайте template_id и language в поля template_id и template_language.
  3. Если params_count больше нуля, передайте для каждого получателя массив params ровно такой длины: первое значение подставится в {{1}}, второе в {{2}} и так далее.
{
  "bot_id": "your-bot-id",
  "channel": "waba_coexistence",
  "template_id": "awake_after_weekend",
  "template_language": "en_US",
  "to": { "phone": "+77001234567", "params": ["Anna", "Dan"] }
}

Какие шаблоны можно отправить через API

Отправка шаблона через API подставляет переменные только в текст (body). Шаблон с картинкой, видео или документом в заголовке, с переменной в заголовке или в ссылке кнопки через API пока не отправится: используйте для него рассылку в личном кабинете. Шаблоны с именованными переменными вида {{first_name}} API тоже не заполняет, для них params_count равен нулю.

Как часто запрашивать

Метод берёт шаблоны у провайдера (Meta или Gupshup) и запоминает список номера на минуту. Новый шаблон или новый статус появятся в ответе в течение минуты, а повторные запросы внутри этой минуты вернут тот же список. Лимит: 120 запросов в минуту на API-ключ.

Даты изменения шаблона в ответе нет: WhatsApp её не отдаёт. Чтобы заметить изменение, сравнивайте body и status с сохранёнными у вас.

Коды ошибок

HTTP-статусКод ошибкиОписание
401UNAUTHORIZEDОтсутствует или недействителен API-ключ
404BOT_NOT_FOUNDБота с таким bot_id нет в аккаунте, которому принадлежит API-ключ. Проверьте bot_id, channel и то, что ключ создан в аккаунте владельца номера (см. API-ключи)
422VALIDATION_ERRORНет bot_id, неверный channel или status не строка
429RATE_LIMITEDСлишком много запросов. Лимит: 120 запросов в минуту на API-ключ
502PROVIDER_ERRORMeta или Gupshup не отдали шаблоны, например из-за отозванного доступа к номеру. Причина в поле message

On this page