Канал — это аккаунт в мессенджере или соцсети, который компания подключают к Wazzup, чтобы общаться с клиентами. Тип канала и канал — разные вещи:
Таким образом, у вас может быть несколько каналов каждого транспорта. Например, подключено два номера WhatsApp. Тогда канала будет два (два разных номера), а транспорт канала — только один (WhatsApp).
При работе с перечисленными методами используйте в заголовках токен дочернего аккаунта client_access_token, который получили с помощью упрощенной авторизации или OAuth: Authorization: Bearer client_access_token
Перед началом работы с каналами, подпишитесь на вебхуки — без них не сможете подключить некоторые каналы и узнавать о том, что статус канала изменился.
POST /v2/channels — создать канал.POST /v2/channels/{channel_id}/auth/2fa — подтверждение 2FA, если требуется.POST /v2/channels/{channel_id}/reinit — реинициализация канала.GET /v2/channels/{channel_id} — получить канал по ID.GET /v2/channels — получить список каналов.DELETE /v2/channels/{channel_id}?delete_chats={true|false} — удалить канал (опционально удалить переписки).POST /v2/channels/{channel_id}/pairing-code — получить код привязки (WhatsApp Pairing).Для подключения или авторизации каналов WhatsApp, Telegram, WABA вы также можете использовать iframe Wazzup
Подключите хотя бы один канал, чтобы клиент смог переписываться.
Подключение разных типов каналов отличается. Для некоторых понадобятся вебхуки и дополнительные методы. Поэтому сначала стоит подписаться на вебхуки и ознакомиться с шагами по добавлению каналов в этом разделе.
Метод POST /v2/channels
| Body-параметр. Обязательные отмечены* | Тип | Описание |
transport* |
string |
Тип транспорта: telegram (для Telegram Bot), tgapi (для Telegram Personal), vk, wapi (для WABA), whatsapp, instAPI, viber, avito, max, maxbot |
credentials* |
object |
Данные для создания канала. Для tgapi (Telegram Personal), wapi (WABA), whatsapp, viber, max оставьте пустым |
| Для Авито | ||
credentials.code* |
string |
Код авторизации Avito |
| Для Instagram API | ||
credentials.username* |
string |
Имя пользователя Instagram* |
credentials.page_id* |
string |
ID страницы Facebook* |
credentials.inst_id* |
string |
ID пользователя Instagram* |
credentials.user_token* |
string |
Токен авторизации пользователя |
| Для ВКонтакте | ||
credentials.code* |
string |
Код авторизации. Сейчас ВКонтакте можно подключить только через личный кабинет Wazzup — партнеры White Label не могут подключить канал по API. Если вам нужен канал ВКонтакте, напишите в нашу поддержку, чтобы мы сообщили, как только появится возможность подключать сообщества. |
credentials.groups* |
array(object) |
Список групп ВКонтакте |
credentials.groups.name* |
string |
Название группы ВКонтакте |
credentials.groups.id* |
number |
ID группы ВКонтакте |
| Для Telegram Bot | ||
credentials.telegram_token* |
string |
Токен Telegram-бота |
| Для бота MAX | ||
credentials.access_token* |
string |
Токен MAX-бота |
Пример запроса:
curl -L 'https://tech.wazzup24.com/v2/channels'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"transport": "telegram",
"credentials": {
"telegram_token": "6945215375:AAHffBHffYyCEeT7ffVv0ff8AKhfz4"
}
}'
Пример ответа:
{
"data": [
{
"channel_id": "0b1f701-1e21-4ae8-b105-5028f6a",
"transport": "telegram"
}
],
"meta": {
"timestamp": 1759483774
}
}
Результат: в Wazzup создан канал, но в зависимости от типа канала нужно выполнить еще некоторые действия.
Для whatsapp, tgapi, viber, max
В вебхуке придёт QR-код как base64 строка. Конвертируйте ее в png и сканируйте телефоном, чтобы подключить мессенджер к Wazzup.
Пример:
{
"event": "channel.qr_update",
"data": [
{
"channel_id": "656cc30c-7d6d-4ec4-a3d9-87abbeaf92",
"platform": "whatsapp",
"qr_code": "data:image/png;base64,iVBORw0KGg....."
}
],
"meta": {
"idempotency_key": "daa4e9e6-ca92-41a2-a91b-8cf212f687",
"timestamp": 1760947913
}
}
Для wapi
Пример запроса на создание канала:
{
"transport": "wapi",
"credentials": {}
}
В теле ответа будет url — ссылка для редиректа пользователя. Пользователю необходимо перейти по ссылке и подключить WABA.
Пример ответа:
{
"data": [
{
"channel_id": "b7936d81-1053-4c1c-9b9c-6ef6cf2",
"transport": "wapi",
"url": "https://gs.tc.im/5GYyg"
}
],
"meta": {
"timestamp": 1762944046
}
}
Для telegram и maxbot
Чтобы подключить Telegram Bot или бота MAX, нужно только передать верный токен бота.
Если на стороне мессенджера включена двухфакторная аутентификация, после шага с QR, логином придёт вебхук channel.status_update. В нем будет channel_id: string, status: «init», reason: «wait_for_password».
Тогда отправьте код аутентификации в запросе.
Метод POST /v2/channels/{channel_id}/auth/2fa
Path-параметрыchannel_id — ID канала.
| Body-параметр. Обязательные отмечены * | Тип параметра | Описание параметра |
two_factor_code* |
string |
код аутентификации |
transport* |
string |
Тип транспорта: telegram (для Telegram Bot), tgapi (для Telegram), vk, wapi (для WABA), whatsapp, instAPI, viber, avito, max |
Пример запроса:
curl -L 'https://tech.wazzup24.com/v2/channels/db72fd40-bc63-4d4b-9e14-a9a345712f/auth/2fa'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"two_factor_code": "1234",
"transport": "tgapi"
}'
Пример ответа:
{
"data": null,
"meta": {
"timestamp": 1759312346
}
}
Результат: 2FA аутентификация пройдена, канал переходит в статус active.
Используйте для уже добавленных в Wazzup каналов, которые нужно переподключить. Например, когда канал перешёл в статус «Не авторизован».
О смене статуса можно узнавать с помощью вебхуков.
Метод POST /v2/channels/{channel_id}/reinit
Path-параметрыchannel_id — ID канала.
| Body-параметр. Обязательные отмечены* | Тип | Описание |
credentials* |
object |
Данные для подключения канала. Для tgapi (Telegram Personal), wapi (WABA), whatsapp, viber, max оставьте пустым |
| Для Авито | ||
credentials.code* |
string |
Код авторизации Avito |
| Для Instagram* API | ||
credentials.username* |
string |
Имя пользователя Instagram* |
credentials.page_id* |
string |
ID страницы Facebook* |
credentials.inst_id* |
string |
ID пользователя Instagram* |
credentials.user_token* |
string |
Токен авторизации пользователя |
| Для VK | ||
credentials.code* |
string |
Код авторизации VK |
credentials.groups* |
array(object) |
Список групп ВКонтакте |
credentials.groups.name* |
string |
Название группы ВКонтакте |
credentials.groups.id* |
number |
ID группы ВКонтакте |
| Для Telegram Bot | ||
credentials.telegram_token* |
string |
Токен Telegram-бота |
| Для бота MAX | ||
credentials.access_token* |
string |
Токен MAX-бота |
Пример:
curl -L 'https://tech.wazzup24.com/v2/channels/db72fd40-bc63-4d4b-9e14-a9a3457182f/reinit'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"credentials": {
"telegram_token": "69321575:AAEOaVAKzUlTtkoSVVcciE3jIpgHd8"
}
}'
Пример ответа:
{
"data": [
{
"channel_id": "db72fd40-bc63-4d4b-9e14-a9a3457182f",
"transport": "telegram",
"state": "active",
"phone": "just_a_test_bot",
"messenger_id": "just_a_test_bot",
"tariff": "max",
"name": "just_a_test_bot"
}
],
"meta": {
"timestamp": 1763041358
}
}
Результат: канал переходит в статус active или init, при котором вы получаете вебхук с QR для сканирования.
Метод помогает узнать, работает ли канал, в каком статусе он находится, на каком тарифе и другую информацию о канале.
Метод GET /v2/channels/{channel_id}
Path-параметрыchannel_id — ID канала.
Пример:
curl -L 'https://tech.wazzup24.com/v2/channels/{channel_id}'
-H 'Authorization: Bearer <client_access_token>'
Пример ответа:
{
"data": [
{
"channel_id": "0b1f7601-1e21-4ae8-b105-51d028182a",
"transport": "telegram",
"state": "active",
"status": "active",
"reason": "null",
"phone": "My_Ferret2_Bot",
"messenger_id": "My_Ferret2_Bot",
"tariff": "max",
"name": "My_Ferret2_Bot"
}
],
"meta": {
"timestamp": 1759485254
}
}
| Параметр ответа. Обязательные отмечены * | Тип | Описание |
data |
Array of Objects |
Список каналов |
data.channel_id* |
string |
ID канала |
data.transport* |
string |
Транспорт канала |
data.state* |
string |
Устаревший параметр. Раньше показывал состояние канала, теперь эту информацию передаем в параметрах status и reason |
data.status* |
string |
Статус канала. Возможные значения: active, init, disabled |
data.reason* |
string |
Причина, по которой канал находится в определенном статусе. Возможные значения описаны ниже под таблицей |
data.phone* |
string |
Телефон канала |
data.username* |
string |
Имя пользователя канала |
data.messenger_id* |
string |
Идентификатор канала в мессенджере |
data.name* |
string |
Имя канала |
data.url |
string |
URL канала или URL авторизации канала |
data.tier* |
string |
Уровень WABA канала. Возможные значения: TIER_0, TIER_1K, TIER_10K, TIER_100K, TIER_50, TIER_250, TIER_UNLIMITED |
Возможные значения reason в зависимости от status:
status: "active" — reason всегда nullstatus: "init" — reason: wait_for_password, wait_for_code, qr, sync или nullstatus: "disabled" — reason: blocked, not_enough_money, rejected, unauthorized, foreignphone, qridle, openelsewhere или null| status канала | Описание |
active |
Канал активен |
init |
Канал запускается |
disabled |
Канал выключен: убрали из подписки или удалили с сохранением сообщений |
| Значение reason | Описание |
qridle, qr |
Необходимо отсканировать QR-код |
openelsewhere |
Канал авторизован в другом аккаунте Wazzup |
not_enough_money |
Канал не оплачен |
foreignphone |
QR отсканирован другим аккаунтом в мессенджере (другой номер телефона) |
unauthorized |
Не авторизован |
wait_for_password |
Нужно ввести пароль для двухфакторной аутентификации |
blocked |
Meta* заблокировала канал WABA |
rejected |
Канал WABA отклонен |
Результат: вы получите информацию о ранее созданном канале.
Метод GET /v2/channels
Пример:
curl -L 'https://tech.wazzup24.com/v2/channels' -H 'Authorization: Bearer <client_access_token>'
Пример ответа:
{
"data": [
// Массив объектов. См. пример выше с получением канала по channel_id
],
"meta": {
"timestamp": 1759485254
}
}
Результат: список всех каналов в аккаунте.
Метод нужен, чтобы удалить канал, с которого клиент больше не переписывается. Вы можете оставить историю сообшений или удалить.
Метод DELETE /v2/channels/{channel_id}
Path-параметрыchannel_id — ID канала.
Query-параметрdelete_chats — укажите =true, если надо удалить чаты.
Пример:
curl -X DELETE 'https://tech.wazzup24.com/v2/channels/{channel_id}'
-H 'Authorization: Bearer <client_access_token>'
Пример ответа:
{
"data": null,
"meta": {
"timestamp": 1759485643
}
}
Результат: Канал channel_id удален.
Метод позволяет подключить канал WhatsApp не по QR-коду, а по 8-значному коду, который нужно ввести в приложении WhatsApp.
Отправляйте запрос сразу после того, как пришел вебхук с QR. Если QR будет просрочен, метод вернет ошибку.
Метод POST /v2/channels/{channel_id}/pairing-code
Path-параметрыchannel_id — ID канала.
| Body-параметр. Обязательные отмечены* | Тип | Описание |
pairing_phone |
string |
Номер телефона. Должен быть без знака '+' (+1 (234) 567-8901 → 12345678901) |
transport* |
string |
Транспорт канала: whatsapp |
Пример запроса кода для WhatsApp:
curl-L 'https://tech.wazzup24.com/v2/channels/ab59105d-5e8d-487a-9ad1-e21bc6fe64a6/pairing-code'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"pairing_phone": "79999999999",
"transport": "whatsapp"
}'
Пример ответа:
{
"data": [
{
"pairing_code": "LYY1WZNL",
"pairing_phone": "79999999999"
}
],
"meta": {
"timestamp": 1759319225
}
}
Результат: вы получили код для авторизации канала WhatsApp. Введите его в мобильном приложении WhatsApp.
*Запрещены и признаны экстремистскими на территории РФ