API: список и отправка шаблонов WhatsApp
Два метода позволяют вашей программе использовать шаблоны WhatsApp. GET /api/v1/whatsapp/templates выдаёт список ваших одобренных шаблонов, а POST /api/v1/whatsapp/send-template отправляет один клиенту с вашего номера по умолчанию. Для обоих нужен ключ с доступом WhatsApp.
- Где
- Ask Menuthere support for a key
- Тариф
- Нужен подключённый номер WhatsApp Business, а он начинается с Pro.
- Обновлено
Получите список шаблонов
curl 'https://menuthere.com/api/v1/whatsapp/templates' -H 'Authorization: Bearer ck_live_YOUR_KEY'
Он возвращает одобренные шаблоны на вашем номере по умолчанию, чтобы вы знали точное название и сколько значений нужно каждому.
| Поле | Значение |
|---|---|
| name, language | Название шаблона и код языка. |
| category, status | Категория, например MARKETING или UTILITY. Статус — APPROVED. |
| body_variables | Сколько значений {{n}} нужно основному тексту. |
| has_header, header_format | Есть ли заголовок и какой он: TEXT, IMAGE, VIDEO или DOCUMENT. |
Отправьте шаблон
POST /api/v1/whatsapp/send-template с телом JSON. Сообщение уходит с вашего отправителя по умолчанию, который задаётся в разделе Несколько номеров и основной номер. Выбрать номер в вызове нельзя.
| Поле | Обязательно | Что это |
|---|---|---|
| to | Да | Номер клиента с кодом страны. |
| template_name | Да | Название из вызова со списком. |
| language | Нет | Если не указать, берётся из одобренного шаблона. |
| body_params | Нет | Массив значений для {{1}}, {{2}} и так далее, по порядку. |
| header_params | Нет | Массив значений для текстового заголовка. |
| header_media_url, header_media_type | Нет | Ссылка и image, video или document для медиазаголовка. |
| button_params | Нет | Массив значений для динамической кнопки со ссылкой. |
| idempotency_key | Нет | Ссылка, которую вы выбираете сами. Работают также id и заголовок Idempotency-Key. |
Успешная отправка возвращает ok: true, message_id, номер to и status: "sent". Если отправить тот же ключ идемпотентности снова, вы получите первый результат с duplicate: true, и ничего не уйдёт дважды. Неудачная отправка освобождает ключ, чтобы можно было повторить.
Ошибки и лимиты
| Статус | `error` | Значение |
|---|---|---|
| 400 | missing_fields, invalid_json, invalid_number, template_error | Не хватает обязательного поля, номер выглядит неверно, либо шаблон не подходит к отправленным значениям. |
| 404 | template_not_found | На вашем номере по умолчанию нет одобренного шаблона с таким названием. |
| 409 | recipient_opted_out | Клиент ответил STOP. Сообщение не отправляется. |
| 409 | in_progress | Запрос с тем же ключом идемпотентности ещё выполняется. |
| 412 | no_whatsapp_number | Номер WhatsApp по умолчанию не подключён. |
| 429 | daily_limit_reached, rate_limited | Суточный лимит WhatsApp вашего номера исчерпан, либо ключ превысил свой лимит запросов. |
| 502 | send_failed | До WhatsApp не удалось достучаться. Повторите попытку. |
Вопросы
Можно ли отправить через API обычное текстовое сообщение?
Напишет ли он тому, кто отказался от сообщений?
См. также
Не нашли ответ? Напишите на [email protected] или в чат, с 9:00 до 21:00.Справочный центрЦеныmenuthere.com
