Что это такое
WhatsApp Messages API отправляет шаблонные, текстовые, графические, видео-, аудиосообщения, документы, стикеры, геопозиции, интерактивные сообщения, контакты и реакции с подключенного бизнес-номера WhatsApp.Перед началом работы
- Сохраните свой API-ключ YCloud в
YCLOUD_API_KEY. - Подключите WhatsApp Business Account и номер телефона к YCloud.
- Подготовьте номер телефона отправителя в формате E.164, а также либо номер телефона получателя, либо BSUID, либо родительский BSUID.
- Используйте шаблон со статусом
APPROVEDдля стандартной отправки шаблонов. - Сначала загрузите медиафайл, если сообщение ссылается на медиа-ID YCloud.
Как это работает
Выберите эндпоинт в зависимости от того, когда YCloud должен передать сообщение в WhatsApp Business API.
Оба эндпоинта возвращают объект сообщения YCloud. Первоначальный ответ не подтверждает окончательную доставку. Последующие изменения статуса поступают через Webhook-уведомления
whatsapp.message.updated.
Отправка первого сообщения
Выберите одобренный шаблон, принадлежащий вашему подключенному WABA. Укажите свои значения для отправителя, получателя, имени шаблона и языка, затем отправьте запрос:id и отслеживайте его события whatsapp.message.updated. Ответ accepted означает, что запрос принят в обработку, а не то, что клиент его получил. Настройте как whatsapp.message.updated, так и whatsapp.inbound_message.received, если вам нужны отслеживание доставки и ответы.
Выбор шаблона или сессионного сообщения
Используйте одобренный шаблон для стандартных сообщений, инициируемых бизнесом вне окна обслуживания клиентов. В рамках открытого окна используйте поддерживаемые произвольные типы сообщений, такие как текст, медиафайлы или интерактивные ответы. Проверяйте правила окна обслуживания клиентов во время отправки. Окно тарификации не заменяет право на отправку сообщений. Актуальные тарифы и условия точек входа см. в разделе Цены на WhatsApp.Прямая отправка (Direct Send) для сервисного контента
Прямая отправка (Direct Send) позволяет передавать подходящий сервисный контент или конвертировать существующий сервисный шаблон. Она работает с любым из эндпоинтов отправки. ЭндпоинтsendDirectly управляет синхронной отправкой; сам по себе он не включает Direct Send.
Ознакомьтесь с рекомендациями по Direct Send касательно критериев применимости, запросов, конвертации шаблонов, лимитов и событий аккаунта.
Выбор оптимального времени отправки
Подбирайте время отправки с учетом назначения сообщения и местного времени получателя.- Отправляйте OTP и другие срочные сообщения немедленно. Используйте
POST /whatsapp/messages/sendDirectly, когда вашему рабочему процессу требуется получить результат отправки перед продолжением работы. - Отправляйте транзакционные уведомления сразу при наступлении соответствующего события, например при оплате, отгрузке или переносе записи.
- Планируйте маркетинговые сообщения на приемлемые часы в часовом поясе получателя. Используйте собственные данные о доставке, прочтениях и конверсиях, чтобы протестировать разные временные интервалы для каждой аудитории, а не полагайтесь на единый универсальный час.
- Запускайте запланированную кампанию с небольшой группы получателей. Проверьте показатели доставки, откликов и отписок перед отправкой остальной части аудитории.
- Избегайте повторных отправок при задержке сообщения. Сохраняйте
externalIdи обрабатывайте Webhook-уведомленияwhatsapp.message.updated, прежде чем принимать решение о повторной попытке.
Запрос
Выберите один из указанных выше эндпоинтов, затем используйте тело запроса, соответствующее типу сообщения. Значениеfrom — это ваш подключенный бизнес-номер WhatsApp. Укажите получателя с помощью to в формате E.164 либо с помощью recipient, в котором задан BSUID или родительский BSUID.
Общие поля запроса
Укажите хотя бы одно из полей:
to или recipient. Если указаны оба, YCloud использует
to и игнорирует recipient.
Шаблоны аутентификации one-tap, zero-tap и copy-code требуют указания номера
телефона. Используйте
to для этих типов шаблонов.Примеры запросов
Шаблонное сообщение
Шаблонное сообщение
Текстовое сообщение
Текстовое сообщение
Изображение
Изображение
Видео
Видео
Аудио
Аудио
Документ
Документ
Стикер
Стикер
Местоположение
Местоположение
Интерактивное сообщение
Интерактивное сообщение
Контакты
Контакты
Реакция
Реакция
Добавление переменных шаблона
Имя шаблона, язык и порядок параметров должны совпадать с утвержденным шаблоном. Для тела сообщения с параметрами имени клиента и номера заказа отправьте:Ответ на конкретное сообщение
Укажите вcontext.message_id исходный ID сообщения WhatsApp (wamid), чтобы отправить
ответ с цитированием. Не забывайте проверять, открыто ли окно поддержки клиентов.
Применение фильтров отписки и блокировки
ДляPOST /whatsapp/messages настройте filterUnsubscribed: true и
filterBlocked: true, если необходимо применить списки исключений YCloud.
Оба параметра по умолчанию имеют значение false и не применяются к sendDirectly.
Проверяйте whatsappMessage.errorCode в Webhook со статусом на наличие
RECIPIENT_UNSUBSCRIBED или RECIPIENT_IN_BLOCK_LIST. Отдельный статус filtered
не предусмотрен. Выполняйте проверку исключений в приложении перед использованием
sendDirectly.
Используйте externalId, чтобы связать сообщения с заказом или другой внутренней записью.
Это поле для корреляции, а не ключ идемпотентности на стороне сервера.
Ответ
В случае успешного запроса возвращается объект сообщения YCloud. Начальный статусstatus: accepted означает, что YCloud принял запрос на отправку. Это не означает, что
сообщение уже отправлено Meta или доставлено пользователю WhatsApp.
Пример ответа
Поля ответа
Статус доставки
Подпишитесь на события Webhookwhatsapp.message.updated, чтобы получать последующие изменения статуса,
такие как sent, failed, delivered или read.
Используйте GET /whatsapp/messages/{id}, когда требуется получить сообщение напрямую.
Ограничения и устранение неполадок
- Для стандартной отправки шаблонов требуется шаблон типа
APPROVED; шаблоны типаARCHIVEDне могут быть отправлены как обычные шаблонные сообщения. - Не повторяйте принятый запрос без стратегии идемпотентности. Повторный запрос может привести к отправке дубликата сообщения.
- При проверке доставки используйте статус YCloud
id,wamid,externalIdи события Webhook. - Проверяйте
whatsappApiError, если прямой запрос дошел до Meta, но Meta его отклонила.
Рекомендации по Direct Send
Отправляйте сервисный контент, конвертируйте шаблоны и отслеживайте события категорий и ограничений.
Рекомендации для рабочей среды
Для интеграции в рабочей среде предусмотрите синхронизацию статусов, ограниченное число повторных попыток,
проверку согласия, повторное использование медиафайлов и контроль пропускной способности.
Используйте ID пользователей в рамках бизнеса (business-scoped user ID)
Отправляйте сообщения и звонки по BSUID, запрашивайте номера телефонов, управляйте записями адресной книги Meta
и обрабатывайте поля webhook для BSUID.

