WatsyApp. Войти в кабинет

ДЛЯ ВАШЕГО ПРИЛОЖЕНИЯ

API WatsyApp
для сообщений в WhatsApp.

Подключите номер по QR-коду и отправляйте текст и файлы из своей системы. Начните с одного канала и трёх HTTP-методов.

Это API WatsyApp с подключением через Baileys. Не Meta Cloud API и не официальный WABA.

WatsyApp · HTTP API

ПОДКЛЮЧЕНИЕ ВАШЕГО АККАУНТА

GET /v3/channels
Authorization: Bearer YOUR_API_KEY

ПРИМЕР ОТВЕТА

[
  {
    "channelId": "YOUR_CHANNEL_ID",
    "transport": "whatsapp",
    "state": "active"
  }
]

Сокращённый пример. Ключ и ID заменены шаблонами.

ПЕРЕД ПЕРВЫМ ЗАПРОСОМ

Аккаунт. Номер.
Личный ключ.

  1. Войдите в WatsyApp

    Используйте Google или email с подтверждением почты.

  2. Подключите номер

    В «Каналах» получите QR-код, отсканируйте его через «Связанные устройства» в WhatsApp. Дождитесь «Активен». Инструкция подключения ↗

  3. Возьмите параметры

    В «Интеграция API» доступны базовый адрес, ID канала и API-ключ. Передавайте ключ в Authorization: Bearer YOUR_API_KEY.

ТРИ БАЗОВЫХ МЕТОДА

От канала
к первому сообщению.

Примеры для терминала с синтаксисом Bash. Замените YOUR_API_KEY, YOUR_CHANNEL_ID и RECIPIENT_DIGITS своими значениями. Номер получателя — в международном формате, 7–15 цифр. Примеры на странице ничего не отправляют автоматически; отправка произойдёт при выполнении команды.

GET

/v3/channels

Получить канал своего аккаунта и его состояние. В текущей версии на аккаунт доступен один канал. Ответ — JSON-массив с channelId, name, transport и state.

curl 'https://watsyapp.com/v3/channels' \
  --header 'Authorization: Bearer YOUR_API_KEY'
POST

/v3/message

Отправить текст. channelId должен принадлежать вашему аккаунту, chatId — номер получателя, text — непустое сообщение. Канал должен быть подключён.

curl --request POST 'https://watsyapp.com/v3/message' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "channelId": "YOUR_CHANNEL_ID",
    "chatId": "RECIPIENT_DIGITS",
    "text": "Здравствуйте! Отправляем ответ из нашей системы."
  }'

Пример успешного ответа

{
  "messageId": "MESSAGE_ID",
  "chatId": "RECIPIENT_DIGITS"
}

Полученный messageId означает, что WhatsApp подтвердил операцию отправки. Он не является гарантией доставки или прочтения получателем.

POST

/api/send

Отправить один файл через multipart/form-data. Поля: chatId, file, необязательный text. Лимит одного вложения — 20 МБ. Канал определяется вашим API-ключом; отдельный channelId этому методу не нужен.

curl --request POST 'https://watsyapp.com/api/send' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --form 'chatId=RECIPIENT_DIGITS' \
  --form 'text=Документ по вашему запросу' \
  --form 'file=@./document.pdf;type=application/pdf'

Для голосового сообщения добавьте поле type=voice и загрузите аудиофайл. Сервер преобразует его в OGG/Opus. В остальных случаях тип отправки определяется MIME-типом файла.

Не задавайте заголовок Content-Type multipart вручную: curl сформирует его с boundary. Поле contentUri в /v3/message не поддерживается — передавайте файл через /api/send.

Подробные инструкции по отправке

Текст: curl, Node.js и Python ↗

Файлы, MIME-типы и голосовые ↗

ОТВЕТЫ И ПОВТОРНЫЕ ПОПЫТКИ

Проверяйте результат.
Сохраняйте ID сообщения.

Основные HTTP-ответы текущей версии API
КодЧто означаетЧто проверить
200Запрос выполнен.Сохраните ответ и messageId для отправки.
401Нет действительной авторизации.Личный ключ и формат Bearer.
404Канал в запросе текста не найден.Возьмите свой ID из /v3/channels.
422Передан неподдерживаемый contentUri.Для файла используйте multipart /api/send.
413Ошибка ограничения загрузки.Один файл до 20 МБ и поле file.
400Ошибка параметров, подключения или отправки.Прочитайте JSON-поле error; проверьте номер, текст и состояние канала.

При тайм-ауте результат отправки может быть неизвестен. Не повторяйте запрос автоматически вслепую: документированный ключ идемпотентности сейчас отсутствует, повторная отправка может создать дубликат. Перед запуском в своей системе предусмотрите журнал операций и обработку неопределённого результата.

ГРАНИЦЫ ТЕКУЩЕЙ ВЕРСИИ

Что входит
в это подключение.

Один номер и личные диалоги

Один канал WhatsApp на аккаунт. Группы и массовые рассылки не поддерживаются. API работает с подключённым номером, а не создаёт номер WhatsApp.

Без публичных webhooks

Публичные webhooks сейчас выключены. Наличие API отправки не означает готовый поток входящих событий для произвольной CRM.

QR вместо Meta Cloud API

Подключение использует Baileys и зависит от работы WhatsApp. Возможны отключения и ограничения номера; полная доставка и полный импорт старой истории не гарантируются.

Ключ на стороне сервера

Не вставляйте личный ключ во фронтенд сайта или мобильного приложения и не публикуйте его в репозитории. Запросы своей системы выполняйте через доверенный сервер.

ВОПРОСЫ РАЗРАБОТЧИКА

Перед первой
интеграцией.

Это официальный WhatsApp Business API?

Нет. На этой странице описан API WatsyApp с подключением номера по QR через Baileys. Документация Meta Cloud API и WABA относится к другой технологии.

Можно ли вызывать API из Python, PHP или Node.js?

Да, из серверного приложения, которое умеет отправлять HTTP-запросы с заголовком Bearer и JSON или multipart. Методы и поля одинаковы; сначала проверьте запрос curl, затем перенесите его в свой HTTP-клиент.

Можно ли передать файл ссылкой в contentUri?

В /v3/message это поле отклоняется с HTTP 422. Для загрузки одного файла используйте multipart-запрос в /api/send.

Как получать входящие сообщения в своей CRM?

Публичные webhooks не включены. Для 2wix предусмотрен готовый мост. Для другой CRM нужно отдельно проработать сценарий получения данных; готовый модуль автоматически не появляется вместе с ключом API.

Где посмотреть тарифы API?

Публичные тарифы WatsyApp пока не опубликованы. Уточните условия обслуживания до коммерческого запуска интеграции; доступность кабинета не означает бесплатную или неограниченную отправку.

НАЧНИТЕ С ПАРАМЕТРОВ СВОЕГО КАНАЛА

Подключите номер.
Соберите первый запрос.

Базовый адрес API, ID канала и личный ключ находятся в кабинете WatsyApp.

Открыть параметры API