Список шаблонов
Получение шаблонов WhatsApp номера с полным текстом, статусом и числом переменных через API Pleep
Возвращает все шаблоны одного номера WhatsApp: полный текст с переменными {{1}}, {{2}}, язык, статус одобрения, категорию, заголовок, подвал, кнопки и число переменных. Метод нужен, чтобы не хранить тексты шаблонов у себя вручную: показывайте менеджеру превью и передавайте в отправку шаблона ровно те значения, которые вернул этот метод.
Эндпоинт
Заголовки
| Заголовок | Значение | Обязательный |
|---|---|---|
X-API-Key | Ваш API-ключ | Да |
Content-Type | application/json | Да |
Тело запроса
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
bot_id | string | Да | ID бота. Тот же, что в отправке шаблона: скопируйте его в Интеграции → WhatsApp Business → Управление |
channel | string | Да | Канал: waba_coexistence или waba (Gupshup). Как выбрать канал, описано в отправке шаблона |
status | string | Нет | Вернуть только шаблоны с этим статусом, например APPROVED. Регистр не важен. Без поля вернутся шаблоны во всех статусах |
Пример запроса
curl
Ответ
Поля шаблона
| Поле | Тип | Описание |
|---|---|---|
template_id | string | Передайте это значение в поле template_id при отправке шаблона |
name | string | Название шаблона. Совпадает с template_id |
language | string | Язык, в котором шаблон одобрен, например en_US или ru. Передайте его в поле template_language при отправке. Шаблон с одним названием может быть одобрен на нескольких языках: тогда в списке будет по записи на каждый язык |
status | string | Статус шаблона у провайдера: APPROVED, PENDING, REJECTED, PAUSED, DISABLED и другие. Отправить можно только APPROVED |
category | string | MARKETING, UTILITY или AUTHENTICATION |
body | string | Полный текст шаблона с переменными {{1}}, {{2}} |
header | object или null | Заголовок: format (TEXT, IMAGE, VIDEO, DOCUMENT или LOCATION) и text для текстового заголовка. null, если заголовка нет |
footer | string или null | Текст подвала или null |
buttons | array | Кнопки: type (QUICK_REPLY, URL, PHONE_NUMBER и другие), text, а также url или phone_number, если они есть. Пустой массив, если кнопок нет |
params_count | integer | Сколько значений передавать в params для каждого получателя при отправке. Переменная, которая встречается в тексте дважды, считается один раз |
Как отправить шаблон из списка
- Возьмите шаблон со статусом
APPROVED. - Передайте
template_idиlanguageв поляtemplate_idиtemplate_language. - Если
params_countбольше нуля, передайте для каждого получателя массивparamsровно такой длины: первое значение подставится в{{1}}, второе в{{2}}и так далее.
Какие шаблоны можно отправить через API
Отправка шаблона через API подставляет переменные только в текст (body). Шаблон с картинкой, видео или документом в заголовке, с переменной в заголовке или в ссылке кнопки через API пока не отправится: используйте для него рассылку в личном кабинете. Шаблоны с именованными переменными вида {{first_name}} API тоже не заполняет, для них params_count равен нулю.
Как часто запрашивать
Метод берёт шаблоны у провайдера (Meta или Gupshup) и запоминает список номера на минуту. Новый шаблон или новый статус появятся в ответе в течение минуты, а повторные запросы внутри этой минуты вернут тот же список. Лимит: 120 запросов в минуту на API-ключ.
Даты изменения шаблона в ответе нет: WhatsApp её не отдаёт. Чтобы заметить изменение, сравнивайте body и status с сохранёнными у вас.
Коды ошибок
| HTTP-статус | Код ошибки | Описание |
|---|---|---|
| 401 | UNAUTHORIZED | Отсутствует или недействителен API-ключ |
| 404 | BOT_NOT_FOUND | Бота с таким bot_id нет в аккаунте, которому принадлежит API-ключ. Проверьте bot_id, channel и то, что ключ создан в аккаунте владельца номера (см. API-ключи) |
| 422 | VALIDATION_ERROR | Нет bot_id, неверный channel или status не строка |
| 429 | RATE_LIMITED | Слишком много запросов. Лимит: 120 запросов в минуту на API-ключ |
| 502 | PROVIDER_ERROR | Meta или Gupshup не отдали шаблоны, например из-за отозванного доступа к номеру. Причина в поле message |