API для интеграций

Для упрощения интеграции с WAZZUP мы облегчили API до одного метода и веб-хуков.
Добавление каналов доступно из интерфейса WAZZUP.

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

https://{subdomain}.wazzup24.com/api/v1.1/send_message

Заголовки

Тело запросов и ответов в формате JSON

В заголовках запроса необходимо указывать «Content-type» = «application/json», а также ключ API в заголовке «Authorization».

Ключ можно получить, добавив интеграцию по API. Для этого создайте ее в личном кабинете: Настройки => Интеграции => Добавить.

Headers-example

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

ПараметрТипОписание
transportStringТранспорт отправки (указывать «whatsapp»)
fromStringНомер телефона канала отправки в международном формате без спец.символов
toStringНомер телефона получателя в международном формате без спец.символов
textStringТекст сообщения (до 10000 символов)
contentStringСсылка на контент (Например, «https://picrutre-hoster.com/pic123.jpg»)
authorStringИмя автора сообщения (не обязательное, до 100 символов)

Body-example

Результат запроса

В случае успеха в ответ будет оправлен результат HTTP/1.1 201 OK и guid созданного сообщения

HTTP/1.1 201 OK

В случае неверного токена будет отправлен результат HTTP/1.1 401 Unauthorized
В случае серверной ошибки будет возвращено HTTP/1.1 5xx, можно попробовать еще раз
В случае некорректного запроса будет отправлен HTTP/1.1 400 Bad request

HTTP/1.1 404 Bad request

Код ошибки Описание
MESSAGE_TEXT_TO_LONG Слишком длинный текст сообщения
MESSAGE_CHANNEL_NOT_FOUNDКанал с таким номером не найден в аккаунте
MESSAGE_INCORRECT_PHONEНекорректный номер телефона получателя
MESSAGE_ONLY_TEXT_OR_CONTENTМожет быть заполнен только текст или контент
MESSAGE_NOTHING_TO_SEND Не заполнен ни текст, ни контент
MESSAGE_CHANNEL_DISABLEDКанал отправки выключен
MESSAGE_WRONG_TRANSPORTНекорректный тип транспорта
MESSAGE_CHANNEL_TARIFF_IS_NOT_ENOUGHНа тарифе «Старт» нельзя писать первым и отправлять контент
DOWNLOAD_CONTENT_ERRORНе удалось скачать контент

Веб-хуки

Веб-хуки отправляются на указанный URL до момента получения статуса HTTP/1.1 200 OK или до исчерпания всех попыток. Ваш URL для веб-хуков устанавливается через поддержку.

Повтор отправки производится по следующему правилу:

  1. Сразу в момент наступления события
  2. Через 1 секунду
  3. Через 3 секунды
  4. Через 5 секунд
  5. Через 10 секунд
  6. Через 30 секунд
  7. Через 60 секунд
  8. 3 попытки с интервалом в 5 минут
  9. 3 попытки с интервалом в 1 час
  10. 30 попыток с интервалом в 24 часа

Веб-хук отправляется в формате JSON и может содержать 3 массива с обновлениями

1. Новые сообщения (messages)

Новыми сообщениями могут быть не только входящие от клиента, но и исходящие, написанные с трубки, из другой интеграции или из интерфейса WAZZUP.

ПолеТипОписание
channelStringНомер телефона канала
phoneStringНомер телефона контакта
dateTimeNumberВремя сообщения (unix time milliseconds)
typeNumberТип сообщения:
0 — сообщение неподдерживоемого типа
1 — Текст
2 — Изображение
3 — Аудио
4 — Видео
5 — Документ
statusNumber Статус сообщения. 99 — входящее сообщение, статусы исходящих см. в таблице ниже
textStringТекст сообщения
contentStringСсылка на контент сообщения (может отсутствовать)
senderTypeNumberТип отправителя (может отсутствовать):
0 — Телефон
1 — Интерфейс WAZZUP
2 — API WAZZUP
3 — amoCRM
4 — planfix
5 — bitrix24
authorStringИмя отправителя (может отсутствовать)

2. Обновления статусов исходящих сообщений (statuses)

Статус сообщений — важный параметр. Обычно бывает так: отправлено — доставлено — прочитано. Но иногда бывают проблемы.
Важно: 13 — у клиента нет WhatsApp, некуда слать.
Если после 1 долго не приходит 2 или 3, возможно надо связываться иначе — клиент перестал пользоваться WhatsApp или у него нет интерета.

ПолеТипОписание
messageIdStringguid сообщения
statusNumberСтатус сообщения:
1 — Отправлено (аналог одной серой галки)
2 — Доставлено (аналог двух серых галок)
3 — Прочитано (аналог двух голубых галок)
13 — Сообщение не будет отправлено, у этого номера телефона нет аккаунта в WhatsApp
16 — Ошибка отправки контента (не смогли получить контент по ссылке)

3. Изменения состояния каналов (channels)

По разным причинам статус канала может меняться. «Active» — хороший статус, остальные — не очень, надо что-то сделать.
Подробности тут: http://help.wazzup24.com/ru/pravila-kanalov-whatsapp/. Обо всех изменениях статуса придет веб-хук.

ПолеТипОписание
channelStringНомер телефона канала
stateStringСостояние канала:
active — канал активен, все нормально
disabled — канал выключен
phoneUnavailable — нет связи с телефоном
qr — необходимо отсканировать qr-код
openElsewhere — приложение открыли в другом месте
notEnoughMoney — канал не оплачен