OAuth2 для сторонних приложений
Только для приложений, которые устанавливают другие клиенты WASync. Authorization Code с PKCE, ротируемые refresh-токены и одно структурное ограничение.
Пропустите этот раздел, если автоматизируете собственный аккаунт
API key позволяет сделать всё, что описано в этой документации, без лишней сложности. OAuth подходит ровно для одной задачи: ваше приложение устанавливают другие клиенты WASync, и эти клиенты должны дать согласие на подключения, которыми они владеют.
Зарегистрируйте приложение
Зарегистрируйтесь на https://developers.wasync.app/apps. Вы получите client_id и
client_secret (показывается один раз) и зададите один или несколько redirect_uri (проверяются
на точное совпадение при обмене токена), необязательный webhook_url и нужные вам scopes.
Схема авторизации
Authorization Code с PKCE — S256 обязателен. Отправьте пользователя
на /oauth/authorize с параметрами response_type=code, client_id, redirect_uri,
scope, state и code_challenge.
| Endpoint | URL |
|---|---|
| Authorize | https://cloudapi.wasync.app/oauth/authorize |
Token (client_secret_post) | https://cloudapi.wasync.app/oauth/token |
| Discovery | https://cloudapi.wasync.app/.well-known/oauth-authorization-server |
Эти URL, как и URL сервера MCP, намеренно используют
cloudapi.wasync.app. Это идентификаторы протокола, которые ваша клиентская
библиотека и наши discovery-документы уже зарегистрировали, поэтому они должны совпадать
байт в байт. Канонический developers.wasync.app используется только для базового URL REST
и страниц для людей.
Согласие зависит от того, кто владеет подключениями
Bitrix24. WASync показывает короткий пользовательский код, а сотрудник с правом записи в разделе API & Agents портала вводит его в Settings → API & Agents, выбирая подключения и scopes. Такой доступ есть у каждого администратора Bitrix24, а также у тех, кому администратор выдал его в матрице доступа на странице Staff.
Standalone. Разработчик подтверждает доступ на https://developers.wasync.app/authorize. Подтверждение происходит автоматически, если у него ровно одно рабочее пространство хотя бы с одним подключением.
Обменяйте код
curl -X POST https://cloudapi.wasync.app/oauth/token \
-d grant_type=authorization_code \
-d code=$AUTH_CODE \
-d redirect_uri=https://your.app/callback \
-d client_id=$CLIENT_ID \
-d client_secret=$CLIENT_SECRET \
-d code_verifier=$CODE_VERIFIERaccess_token действует 15 минут. refresh_token действует 30 дней и ротируется
при использовании: сохраняйте новый токен атомарно и сериализуйте обновления между
воркерами, иначе два воркера, обновляющих токен одновременно, сделают токены друг друга недействительными.
Access-токен передаётся в том же заголовке, что и API key:
Authorization: Bearer …. Оба типа учётных данных работают со всеми endpoint.
Одно структурное ограничение
Разрешение выдаётся только для подключений, которые уже существуют, поэтому интеграция только на OAuth не может создать первое подключение рабочего пространства. API key может, поэтому быстрый старт начинается с него.
Webhooks для приложений OAuth
Приложение OAuth задаёт webhook_url в самом приложении, а не вызывает
PUT /webhook, и разрешение должно быть одобрено вместе с whatsapp.events,
иначе ничего не будет доставляться. Всё остальное — схема подписи, политика повторных
попыток, payload — идентично руководству по Webhooks.
Подписки, созданные до 24 июля 2026 года, получают только message.received;
созданные до 10 августа 2026 года не получают события подключений.
Авторизуйтесь заново, чтобы получать новые типы событий, или напишите в поддержку и попросите
добавить их в вашу существующую подписку.