Канал — это аккаунт в мессенджере или соцсети, который компания подключают к 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).Подключите хотя бы один канал, чтобы клиент смог переписываться.
Подключение разных типов каналов отличается. Для некоторых понадобятся вебхуки и дополнительные методы. Поэтому сначала стоит подписаться на вебхуки и ознакомиться с шагами по добавлению каналов в этом разделе.
Метод POST /v2/channels
| Body-параметр. Обязательные отмечены* | Тип | Описание |
transport* |
string |
Тип транспорта: Чтобы подключить ВКонтакте, используйте метод |
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 |
Токен авторизации пользователя |
| Для 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 |
Данные для подключения канала. Для Для ВКонтакте используйте метод |
| Для Авито | ||
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 |
Токен авторизации пользователя |
| Для 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.
*Запрещены и признаны экстремистскими на территории РФ