What's new, 21 October 2026: A customer who sends several messages before the bot's first reply no longer gets the opening sequence of a Chat Flow twice
WASync · Developers

Ваш первый вызов

Получите список подключений, доступных вашему ключу, и проверьте, хватает ли у вас ёмкости, прежде чем создавать ещё одно.

Базовый URL: https://developers.wasync.app/api/v1.

Список доступных вам подключений

GET /connections
curl https://developers.wasync.app/api/v1/connections \
  -H "Authorization: Bearer $WASYNC_API_KEY"

В списке есть только подключения с активной лицензией. У каждого есть provider со значением qr или cloud_api, id (cuid — стабильный идентификатор, который стоит сохранить в записи вашего клиента) и status. Требуется whatsapp.read.

Уже обращаетесь к cloudapi.wasync.app/api/v1? Продолжайте.

Основной хост — developers.wasync.app, но cloudapi.wasync.app — это постоянный псевдоним для того же самого API: те же ключи, те же пути, те же ответы. Он остаётся действительным бессрочно. Менять в существующих интеграциях ничего не нужно. Конечные точки OAuth, документы /.well-known/… и URL сервера MCP — это идентификаторы протокола, зарегистрированные у клиентов: они намеренно остаются на cloudapi.wasync.app.

Проверьте ёмкость, прежде чем что-либо обещать

GET /account
curl https://developers.wasync.app/api/v1/account \
  -H "Authorization: Bearer $WASYNC_API_KEY"
200 response
{
  "slots": {
    "total": 30,
    "used": 28,
    "available": 2,
    "nextExpiry": "2027-08-08T09:00:00.000Z"
  },
  "connections": {
    "total": 28,
    "connected": 27,
    "needsReconnect": 1
  }
}

slots.available показывает, можете ли вы прямо сейчас подключить ещё один номер, а nextExpiry — дату, до которой вам нужно выставить счёт собственному клиенту, чтобы слот не истёк у того, кто вам уже заплатил. connections.needsReconnect — это число номеров, владельцы которых сейчас должны отсканировать QR-код. Подпишитесь на события подключений, чтобы узнавать об изменении статуса такого номера сразу, а не опрашивать API. Требуется whatsapp.read.

Слот — это ёмкость, а не номер телефона. Если удалить подключение, его слот возвращается в ваш пул вместе с оставшимся временем — следующий подключённый номер займёт его автоматически. Так вы можете перенести оплаченный слот от ушедшего клиента к новому и не платить дважды.

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

Один вызов создаёт подключение и возвращает QR-код для сканирования. Он работает в совершенно новом рабочем пространстве без единого подключения: с ключом не нужно сначала ничего нажимать в портале.

POST /connections
curl -X POST https://developers.wasync.app/api/v1/connections \
  -H "Authorization: Bearer $WASYNC_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"label":"Support line"}'
201 response
{
  "connection": {
    "id": "conn_8f3a21",
    "status": "connecting",
    "qr": "data:image/png;base64,iVBORw0KGgo…"
  }
}

Полученный здесь QR-код действует недолго

WhatsApp меняет код сопряжения примерно каждые 20 секунд, поэтому qr из ответа на создание устаревает через несколько секунд после показа. Сбой при этом тихий: телефон не сопрягается, а на экране ничего не объясняет причину. Опрашивайте GET /connections/{id} каждые 3–5 с и перерисовывайте qr из каждого ответа. Не кэшируйте его и не прячьте обновление за кнопкой, которую должен нажимать пользователь. Код сопряжения и QR описывает альтернативу для одного устройства.

Требуется whatsapp.manage. Созданные так подключения — это номера qr; номера cloud_api подключаются через Meta Embedded Signup. Эта конечная точка работает только в автономном рабочем пространстве: портал Bitrix24 получит ответ 403 forbidden_portal_kind, потому что там подключения создаёт администратор портала внутри WASync. Передавайте Idempotency-Key: создание подключения занимает оплаченный слот, и повтор после тайм-аута без этого ключа купит вам два слота. Ошибки и идемпотентность описывает четыре случая, которые нужно обработать.

Была ли эта страница полезной?

On this page