Шаблоны WhatsApp Business API

С помощью шаблонов WABA начинают переписку с клиентами с каналов WhatsApp Buisness API.

👉 Что такое шаблон WABA, из чего он состоит и как его создать в личном кабинете Wazzup

Получение списка шаблонов

Чтобы получить список шаблонов WABA, которые добавлены для работы в Wazzup, вызовите:

GET https://api.wazzup24.com/v3/templates/whatsapp
Параметры запроса
Название Тип Описание
limit number Лимит возвращаемых записей.

По умолчанию: 100

offset number Сдвиг выборки. Пригодится, если вы уже получали список шаблонов, но после этого пользователь уже создал новые.

По умолчанию: 0

Пример запроса
curl --location --request GET 'https://api.wazzup24.com/v3/templates/whatsapp' \
--header 'Authorization: Bearer f6633fb8f4c648fasssf0e9f43a334c1b' \
--data-raw ''

Параметры ответа

Параметр Тип Описание
templateGuid string Идентификатор шаблона
accountId number Идентификатор аккаунта
title string Название шаблона в Wazzup. Нужно, чтобы пользователь смог быстрее найти шаблон в списке
name string Имя шаблона, которое отправляется в Facebook
waba object Объект с информацией о бизнес-аккаунте Facebook
waba.wabaId string ID бизнес-аккаунта Facebook
waba.wabaName string Название бизнес-аккаунта
channels array Список каналов, к которым привязан шаблон
category string Категория шаблона 
language string Язык шаблона
status string Статус модерации шаблона
rejected_reason string Причина отклонения, если статус rejected (отклонен)
namespace string Неймспейс Facebook
components Object (Array) Список компонентов шаблона
components.type string Тип компонента шаблона:

  • HEADER — заголовок шаблона,
  • FOOTER — подпись шаблона,
  • BUTTONS — кнопки,
  • BODY — основной текст шаблона.
components.format string Формат. Только для component.HEADER: IMAGE, DOCUMENT, VIDEO, TEXT
components.text string Текст компонента, если есть
components.example String (Array) Примеры переменных для соответствующего компонента шаблона
components.buttons Object (Array) Список кнопок, если они есть в шаблоне
components.buttons.type string Тип кнопки:

  • URL — ссылка,
  • QUICK_REPLY — быстрый ответ,
  • PHONE_NUMBER —  номер телефона.
components.buttons.text string Текст на кнопке
components.buttons.url string Для кнопок типа URL. Ссылка, по которой перейдет человек, когда нажмет на кнопку
Пример ответа
HTTP/1.1 200 OK
[
 {
  "templateGuid": "8d255e5d-aefd-44dc-8131-c3ad6c3ab28c",
  "accountId": 70789196,
  "title": "Название шаблона",
  "channels": ["e9a268e4-44af-41cd-9b63-2524a4ad653e"],
  "order": 0,
  "category": "MARKETING",
  "language": "ru",
  "components": [
    {
     "text": "Привет, !",
     "type": "HEADER",
     "format": "TEXT",
     "example": {
     "header_text": ["header-example-1"]
      }
    },
    {
     "text": "Обновление сервиса.",
     "type": "BODY",
     "example": {
      "body_text": [["body-example-1"]]
     }
 }
 ],
  "waba": {
   "wabaId": "194388939529290",
   "wabaName": "Wazzup LLC"
 },
 "name": "Имя шаблона, которое отправляется в Facebook",
 "namespace": "c8ae5f90_307a_ca4c_b8f6_d1e2a2573574",
 "publishedAt": null,
 "isTrickyTemplate": false,
 "trickyTemplatesPriority": null,
 "createdAt": "2023-12-31T23:55:42.504Z",
 "updatedAt": "2023-12-31T23:55:08.857Z",
 "componentsDefaults": {},
 "tags": null,
 "templateCode": "@template: fe03cddf-dec1-4c19-aede-e16190abca46 { [[headerVar1]]; [[bodyVar1]] }"
}

Получение цены на WABA шаблон

Метод позволяет получить цену на WABA-шаблоны на момент отправки запроса.

GET https://tech.wazzup24.com/channels/waba/pricing/{countryCode}

{countryCode} — Код страны. Стандарт ISO 3166-1 alpha-2

Пример запроса
curl -X 'GET' \

  'https://tech.wazzup24.com/channels/waba/pricing/KA' \

--header 'Authorization: Bearer c8cf90554027882f912520f454468d27' \
--header 'Content-Type: application/json' \
Примеры ответов

Success — 200, json

{
  "timestamp": "2024-01-15T10:30:00Z",
  "pricing": {
    "marketing": {
      "USD": 0.0412,
      "EUR": 0.038,
      "RUB": 3.2,
      "KZT": 19.31
    },
    "utility": {
      "USD": 0.0206,
      "EUR": 0.019,
      "RUB": 1.6,
      "KZT": 9.65
    },

    "authentication": {
      "USD": 0.0103,
      "EUR": 0.0095,
      "RUB": 0.8,
      "KZT": 4.83
    },
    "service": {
      "USD": 0.0309,
      "EUR": 0.0285,
      "RUB": 2.4,
      "KZT": 12.96
    }
  }
}

Неавторизованный запрос — 401, json:

{
  "statusCode": 401,
  "message": "Unauthorized"
}

Доступ запрещен — 403, json:

{
  "statusCode": 403,
  "message": "Invalid account type"
}

Слишком много запросов. Попробуйте позже — 429, json:

{
  "statusCode": 429,
  "message": "Route rate limit exceeded",
  "error": "Too Many Requests",
  "retryAfter": 45
}

Ошибка сервера — 500, json:

{
  "statusCode": 500,
  "message": "Internal server error"
}

Получение списка транзакций по WABA каналу за сутки

Данный метод возвращает  все транзакции, которые произошли в указанный день по (UTC). Поиск выполняется в интервале от 00:00:00.000 до 23:59:59.999 UTC включительно.

Метод позволяет получить цену на WABA-шаблоны на момент отправки запроса.

GET https://tech.wazzup24.com/channels/waba/{channelId}/transactions/{date}
Пример запроса
curl -X 'GET' \

  'https://tech.wazzup24.com/channels/waba/069342f0-36c0-4496-13ed-e584d3f5bac2/transactions/2025-01-01' \

--header 'Authorization: Bearer c8cf90554027882f912520f454468d27' \
--header 'Content-Type: application/json' \
Примеры ответов

Success — 200, json:

{
  "transactions": [
    {
      "waba_id": "waba_id123",
      "channel_id": "069342f0-36c0-4496-13ed-e584d3f5bac2",
      "template_type": "MARKETING",
      "amount": -0.0412,
      "currency": "USD",
      "recipient_phone": "79123456789",
      "session_date": "2024-01-15T10:30:00Z",
      "billing_country": "US"
    }
  ],
  "count": 1
}

Неавторизованный запрос — 401, json:

{
  "statusCode": 401,
  "message": "Unauthorized"
}

Доступ запрещен — 403, json:

{
  "statusCode": 403,
  "message": "Invalid account type"
}

Слишком много запросов. Попробуйте позже — 429, json:

{
  "statusCode": 429,
  "message": "Route rate limit exceeded",
  "error": "Too Many Requests",
  "retryAfter": 45
}

Ошибка сервера — 500, json:

{
  "statusCode": 500,
  "message": "Internal server error"
}