Arrow
Начало работы с Wazzup
Arrow
Как подключить мессенджер
Arrow
Как пользоваться чатами Wazzup
Arrow
Как оплатить
Arrow
Битрикс24
Arrow
Как подключить Wazzup
Arrow
Как переписываться
Arrow
Как настроить автоматизацию
Arrow
Сквозная аналитика
Arrow
Решение проблем
Arrow
amoCRM
Arrow
Как подключить Wazzup
Arrow
Как переписываться
Arrow
Как настроить автоматизацию
Arrow
Сквозная аналитика
Arrow
Решение проблем
Arrow
Другие CRM
Arrow
Как продавать еще удобнее
Arrow
Всё о WABA
Arrow
Для партнеров
Arrow
Пользовательское API
Для партнеров
Arrow

Сообщения

В статье рассказываем про отправку, обновление статуса, редактирование и удаление сообщений. Также здесь описаны методы, с помощью которых можете выгрузить сообщения.

Вы можете использовать встроенный интерфейс Wazzup для переписки. Так вам не придётся разрабатывать, дорабатывать, поддерживать свои интерфейсы для обработки диалогов.

При работе с перечисленными методами используйте в заголовках токен дочернего аккаунта client_access_token, который получили с помощью упрощенной авторизации или OAuth: Authorization: Bearer client_access_token

Методы

  • POST /v2/messages — отправить сообщение.
  • PATCH /v2/messages/{message_id} — редактировать сообщение.
  • DELETE /v2/messages/{message_id} — удалить сообщение (только для поддерживаемых транспортов).
  • POST /v2/messages/messages_dump — создать задачу на выгрузку сообщений за период.
  • GET /v2/messages/messages_dump/{export_id} — узнать статус задачи на выгрузку сообщений.

Отправка сообщения

Отправка сообщений асинхронна. В случае успешной отправки, вы получаете request_id. Наличие request_id не гарантирует доставку, оно сообщает о том что Wazzup принял ваше сообщение в обработку. Итог обработки и реальный message_id вы получите с вебхуком, обновляющим статус сообщения.

В одном запросе на отправку сообщения нельзя передать одновременно текст (параметр text) и вложение (attachment). При таком запросе вернется ошибка: "Cannot provide more that one of text, attachment or template". Используйте разные запросы, чтобы отправить текст и файл.

Метод POST /v2/messages
Body-параметр. Обязательные отмечены * Тип Описание
channel_id* string(uuid) ID канала
quoted_message_id string(uuid) ID цитируемого сообщения
recipient * object recipient Получатель сообщения
text string Текст сообщения. Одно из полей text или attachment должно быть заполнено. Отправить в одном запросе text и attachment нельзя
attachment object attachment Вложение. Одно из полей text или attachment должно быть заполнено. Отправить в одном запросе text и attachment нельзя
crm_user_id string ID пользователя в CRM
reset_unanswered boolean Сбросить ли счетчик неотвеченных. Чтобы сообщение не сбрасывало счетчик, укажите false
template object template Объект шаблона WABA
keyboard object keyboard Интерактивные кнопки для WABA, MAX, Telegram Bot

recipient (объект)

Body-параметр. Обязательные отмечены * Тип Описание
chat_type * string

 

Тип сущности в мессенджере, соцсети. Доступные значения:

  • whatsapp — аккаунт в WhatsApp,
  • whatsgroup — групповой чат в WhatsApp,
  • viber — аккаунт Viber,
  • instagram — аккаунт Instagram*,
  • telegram — аккаунт в Telegram,
  • telegroup — групповой чат в Telegram,
  • vk — аккаунт ВКонтакте,
  • avito — аккаунт Авито,
  • max — аккаунт MAX,
  • maxgroup — групповой чат MAX,
  • cian— аккаунт Циан.
chat_id string

Идентификатор сущности в мессенджере, соцсети.

  • Для whatsapp и viber — только цифры, формат 79011112233.
  • Для instagram — аккаунт без @ вначале.
  • Для whatsgroup, maxgroup, avito, vk, cian приходит в вебхуках входящих сообщений.
  • Для telegram, max тоже приходит в вебхуках входящих сообщений, не совпадает с номером телефона
username string Только для Telegram. Имя пользователя в Telegram, без @ в начале. Можно использовать при отправке сообщений, если неизвестен chat_id
phone string Только для Telegram, MAX. Телефон контакта в международном формате, без + и иных символов: только цифры с корректным кодом страны. Может использоваться при отправке сообщений, если неизвестен chat_id
crm_contact_name string Имя контакта в CRM

attachment (объект)

Body-параметр.
Обязательные
отмечены *
Тип Описание
url * string Прямая ссылка на файл
name string Название файла
mimetype string MIME-тип файла
size number Размер файла
sha1 string(hex) Хэш SHA1

template (объект)

Body-параметр. Обязательные отмечены * Тип Описание
id * string(uuid) Код шаблона WABA. Как получить коды шаблонов WABA
values array(string) Значения переменных шаблона
buttons array(object) Кнопки, прикрепленные к шаблону WABA. При работе с шаблонами объект buttons пригодится, только если хотите привязать к кнопкам полезную нагрузку. Тексты кнопок, которые отправятся с шаблоном WABA, прописывать не надо.
buttons.text string Текст кнопки
buttons.type string Тип кнопки
buttons.payload * string Payload кнопки

keyboard (объект)

Body-параметр. Обязательные отмечены * Тип Описание
Для интерактивных сообщений WABA
buttons * array(object) Массив объектов с кнопками. Не более 10. Если кнопок больше, отправим первые 10.
buttons.text string Текст кнопки. Ограничение — 20 символов
buttons.type string Тип кнопки
buttons.payload * string Payload кнопки
Для сообщений Telegram Bot
reply_markup string Тип Telegram-клавиатуры: inline, reply
one_time_keyboard boolean Если значение true, то кастомная клавиатура скрывается (не удаляется) после нажатия кнопки
resize_keyboard boolean Изменение размера
selective boolean Селективная клавиатура
remove_keyboard boolean Используется для удаления кастомной клавиатуры при передаче значения true
buttons * array
of arrays
of objects
Массив объектов с кнопками. Не более 12. Если кнопок больше, отправим первые 12.
buttons[].text string Для inline-кнопок. Текст кнопки. Ограничение — 64 символа. Кнопки длиннее 64 символов не отправятся.
buttons[].url string(url) Для inline-кнопок. URL, который будет открываться при нажатии кнопки
buttons[].callback_data string Для inline-кнопок. Payload callback. Данные, которые будут отправлены в обратном запросе боту при нажатии кнопки, 1-64 байта
buttons[].text * string Для reply-кнопок. Текст кнопки. Ограничение — 64 символа
Для сообщений MAX-бота
buttons * array of arrays Кнопки в виде двумерного массива
buttons[].type * string Тип кнопки. Возможные значения: callback, link, message
buttons[].text * string Текст кнопки для всех типов
buttons[].payload * string Payload кнопки. Только для типа callback
buttons[].intent string Интенция кнопки. Возможные значения: default, positive, negative
buttons[].url * string Ссылка в кнопке. Только для типа link
curl -L 'https://tech.wazzup24.com/v2/messages'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"channel_id": "020e3f61-e5df-447f-8ef9-ce8258e92c7a",
"recipient": {
"chat_type": "whatsapp",
"chat_id": "79999999999"
},
"text": "Hello World"
}'
curl -L 'https://tech.wazzup24.com/v2/messages'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"channel_id": "020e3f61-e5df-447f-8ef9-ce8258e92c7a",
"recipient": {
"chat_type": "whatsapp",
"chat_id": "79385005913"
},
"attachment": {
"url": "https://drive.google.com/uc?export=download&id=123456test",
"name": "new.pdf",
"mimetype": "application/pdf",
"size": 86176,
"sha1": "153e030466873745ce4a66da02d0610a7ee6ce4f",
},
"crm_user_id": "crm-123"
}'
curl -L 'https://tech.wazzup24.com/v2/messages'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"channel_id": "020e3f61-e5df-447f-8ef9-ce8258e92c7a",
"recipient": {
"chat_type": "whatsapp",
"chat_id": "79385005913"
},
"template": {
"id": "385bf0c5-9f2a-4f9f-be85-9b84d797cf95",
"values": [
"https://drive.google.com/uc?export=download&id=123456test"
]
},
"buttons": [
{
"text": "Спасибо!",
"type": "text",
"payload": "yes"
},
{
"text": "Мне нужно еще!",
"type": "text",
"payload": "yes"
},
{
"text": "Мне нужно еще 2!",
"type": "text",
"payload": "yes"
}
]
}'

Пример ответа:

{
"data": {
"request_id": "9820d14f-66ae-4170-997f-0f06c0800664",
"chat_id": 79385005913
},
"meta": {
"timestamp": 1759492896
}
}

Результат: Запрос на отправку принят. Вы получите вебхук со статусом доставки.

Редактировать сообщение

Каналы, на которых доступно редактирование:

  • Whatsapp Web (только текст)
  • Telegram Personal
  • Telegram Bot
  • MAX
  • бот MAX (кроме сообщений с клавиатурой)

Редактировать сообщение можно в течение 15 минут после доставки. Узнайте в нашей инструкции больше о том, как работает редактирование сообщений.

Метод PATCH /v2/messages/{message_id}

Path-параметры
message_id — ID сообщения, которое нужно изменить.

Body-параметр. Обязательные отмечены * Тип Описание
text string Текст сообщения. Одно из полей text или attachment должно быть заполнено.
attachment object attachment Объект с вложением. Одно из полей text или attachment должно быть заполнено.
crm_user_id string ID пользователя в CRM, который изменяет сообщение

Пример:

curl -L -X PATCH 'https://tech.wazzup24.com/v2/messages/8e074add-828d-4f35-afcc-99ccbfa9d0ae'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"text": "Отредактированное сообщение"
}'

Пример ответа:

{
"data": {
"message_id": "8e074add-828d-4f35-afcc-99ccbfa9d0ae",
"chat_id": "1234567890"
},
"meta": {
"timestamp": 1759397203
}
}

Результат: Сообщение message_id: 8e074add-828d-4f35-afcc-99ccbfa9d0ae отредактировано.

Удалить сообщение

Каналы, на которых доступно удаление сообщений:

  • Whatsapp
  • Telegram Personal
  • Telegram Bot
  • MAX
  • бот MAX

Сообщение удаляется в мессенджере у отправителя и собеседника. При этом в iframe Wazzup сообщение будет отображаться с отметкой, что удалено.

Узнайте в нашей инструкции больше о том, как работает удаление сообщений.

Метод DELETE /v2/messages/{message_id}

Path-параметры
message_id — ID сообщения, которое нужно удалить.

Пример:

curl -L -X DELETE 'https://tech.wazzup24.com/v2/messages/8a3f7a93-2b25-45da-8695-671bd56439e5'
-H 'Authorization: Bearer <client_access_token>'

Пример ответа:

{
"data": {
"message_id": "8a3f7a93-2b25-45da-8695-671bd56439e5",
"chat_id": "1234567890"
},
"meta": {
"timestamp": 1759397203
}
}

Результат: Сообщение message_id: 8a3f7a93-2b25-45da-8695-671bd56439e5 удалено.

Выгрузить сообщения

Метод создает задачу на выгрузку сообщений за указанный период.

Перед отправкой запроса подпишитесь на вебхук messages_dump.status_update, чтобы получить выгрузку, когда она будет готова.

Метод POST /v2/messages/messages_dump 

Параметры запроса

Body-параметр. Обязательные отмечены * Тип Описание
start_at* string Начало периода выгрузки сообщений (ISO 8601)
end_at* string Конец периода выгрузки сообщений (ISO 8601)
channel_id string Идентификатор канала, если нужно получить сообщения только из чатов на этом канале

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

{
  "start_at": "2025-01-01T00:00:00.000Z",
  "end_at": "2025-01-31T23:59:59.999Z",
  "channel_id": "6a200e75-b1e6-4c92-950b-31801a31aa95"
}

Пример ответа:

{
  "data": {
    "status": "pending",
    "export_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  "meta": {
    "timestamp": 1777885780
  }
}
Параметры ответа. Обязательные* Тип Описание
status* string

Статус выгрузки. Значения:

  • pending — в очереди,
  • processing — в работе,
  • done — выгрузка готова,
  • webhook_failed — выгрузка готова, но не удалось отправить: получаем в ответ ошибку. 
export_id* string Идентификатор задачи. Пригодится, чтобы узнать статус выгрузки.

Результат: Создана задача. Когда выгрузка будет готова, в вебхуке messages_dump.status_update придет ссылка на CSV-файл с сообщениями. 

Проверить статус выгрузки сообщений

Метод GET /v2/messages/messages_dump/{export_id}

Path-параметр

export_idидентификатор задачи. Приходит в ответе на запрос POST /v2/messages/messages_dump 

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

{
  "data": {
    "status": "pending",
    "url": null
  },
  "meta": {
    "timestamp": 1777974260
  }
}

Результат: Получен статус задачи в поле status. Возможные значения:

  • pending — в очереди,
  • processing — в работе,
  • done — выгрузка готова,
  • webhook_failed — выгрузка готова, но не удалось отправить: получаем в ответ ошибку.

Если статус done или webhook_failed, то в ответе также придет ссылка на выгрузку в поле url.

*Запрещены и признаны экстремистскими на территории РФ