Авторизация позволяет получить доступ к дочернему аккаунту, чтобы подключать каналы, отправлять сообщения и выполнять другие действия от имени клиента.
Используйте упрощённую авторизацию, если работаете по White Label, чтобы получить клиентские токены и работать от имени клиентов без участия пользователей.
Если работаете по Wazzup Label, получите пользовательские токены через OAuth
Суть упрощённой авторизации: партнёр получает служебный machine_token, а затем выполняет обмен (token‑exchange) на токены конкретной дочки.
Чтобы использовать упрощенную авторизацию для получения пользовательских токенов, дочерний аккаунт должен быть создан вами.
Для работы с описанными методами используйте Basic-авторизацию с вашими данными для входа в кабинет партнёра Wazzup: Authorization: Basic base64(email:password)
Создайте аккаунт-дочку методом POST /v2/accounts. После вы получите account_id клиента, который нужен для получения пользовательских токенов.
Сохраните полученный в ответе account_id дочки — он понадобится на шаге 3.
machine_token нужен, чтобы обменять его на пользовательские токены на следующем шаге.
Метод: POST v2/oauth/token
| Параметр. Обязательные отмечены * | Тип | Описание |
grant_type* |
string |
Тип OAuth-гранта. Укажите client_credentials |
client_credentials_data* |
object |
Данные, необходимые для client_credentials |
client_credentials_data.scope* |
string |
Список разрешений, которые запрашиваете у пользователя → к каким действиям хотите получить доступ в аккаунте пользователя. Набор запрашиваемых scope, должен быть согласован с менеджером Wazzup |
Пример запроса
curl -L 'https://tech.wazzup24.com/v2/oauth/token' \
-H 'Authorization: Basic base64(email:password)' \
-H 'Content-Type: application/json' \
-d '{
"grant_type": "client_credentials",
"client_credentials_data": {
"scope": "transport,crm"
}
}'
Пример ответа:
{
"data": {
"access_token": "eyJahkboGpppcilllO77iJ99IU12zI671NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjozmYzItOThjYS1kY2VjOWVjNTZjMTciLCJpYXQiOjE3NjMwMjc4NzYsImV4cCI6MTc2MzA1NjY3NiwianRpIjoiNWY3OWY0ZDgtZjNlYy00M2VhLTgyYjctMGI4YzJiZmU5hIn0.l",
"token_type": "Bearer",
"expires_in": 28800
},
"meta": {
"timestamp": 1763027876
}
}
Результат: machine_token (в ответе находится в поле access_token), который поменяете на пользовательские токены на следующем шаге.
Храните machine_token в Secret Manager, хранилище, никогда не отправляйте на фронтенд.
Метод: POST /v2/oauth/token
| Параметр. Обязательные отмечены * | Тип параметра | Описание параметра |
grant_type* |
string |
Укажите "urn:ietf:params:oauth:grant-type:token-exchange" |
token_exchange_data* |
object |
Данные, необходимые для получения токенов |
token_exchange_data.subject_token* |
string |
Полученный на шаге 2 machine_token (в ответе находится в поле access_token) |
token_exchange_data.subject_token_type* |
string |
Укажите "urn:wazzup:oauth:token-type:machine_token" |
token_exchange_data.requested_subject* |
string |
account_id клиента, который получили при создании дочернего аккаунта |
token_exchange_data.scope* |
string |
Список разрешений, которые запрашиваете у пользователя → к каким действиям хотите получить доступ в аккаунте пользователя. Набор запрашиваемых scope, должен быть согласован с менеджером Wazzup |
Пример запроса
curl -L 'https://tech.wazzup24.com/v2/oauth/token' \
-H 'Authorization: Basic base64(email:password)' \
-H 'Content-Type: application/json' \
-d '{
"grant_type": "urn:ietf:params:oauth:grant-type:token-exchange",
"token_exchange_data": {
"subject_token": "eyJahkboGpppcilllO77iJ99IU12zI671NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjozmYzItOThjYS1kY2VjOWVjNTZjMTciLCJpYXQiOjE3NjMwMjc4NzYsImV4cCI6MTc2MzA1NjY3NiwianRpIjoiNWY3OWY0ZDgtZjNlYy00M2VhLTgyYjctMGI4YzJiZmU5hIn0.l",
"subject_token_type": "urn:wazzup:oauth:token-type:machine_token",
"requested_subject": "12345678",
"scope": "transport,crm"
}
}'
Пример ответа:
{
"data": {
"access_token": "eyJhbGciOi...",
"refresh_token": "def50200...",
"token_type": "Bearer",
"expires_in": 86400
},
"meta": {
"timestamp": 1759481962
}
}
Результат: у вас есть client_access_token (в ответе указан как access_token) клиента для вызовов API и refresh_token для продления.
Теперь вы можете добавлять каналы, отправлять сообщения и выполнять другие действия.
Все вызовы от лица клиента подписывайте заголовком: Authorization: Bearer <client_access_token>
| code | Когда возникает | Что делать |
VALIDATION_FAILED |
Ошибка валидации входных данных | Проверьте корректность передаваемых данных |
OAUTH_INVALID_GRANT_TYPE |
Указан недопустимый тип grant | Убедитесь, что значение grant_type указано корректно |
OAUTH_REDIRECT_URI_INVALID |
Указан некорректный redirect_uri |
Используйте redirect_uri, согласованный с Wazzup |
OAUTH_AUTHORIZATION_CODE_INVALID |
Недействительный код авторизации | Запросите новый код авторизации — переданный истёк или не принадлежит вашему клиенту |
OAUTH_CODE_CHALLENGE_METHOD_UNKNOWN |
Неизвестный метод PKCE (code_challenge_method) |
Используйте поддерживаемый метод PKCE (S256, PLAIN) |
OAUTH_CODE_VERIFIER_INVALID |
Недействительный или отсутствующий code_verifier |
Проверьте корректность формирования и передачи code_verifier |
OAUTH_REQUESTED_SUBJECT_MISMATCH |
Запрошенный subject не совпадает с ожидаемым | Убедитесь, что используете корректный machine-токен |
OAUTH_SUBJECT_TOKEN_TYPE_MISMATCH |
Несоответствие типа subject_token_type |
Проверьте правильность переданного типа subject_token_type |
OAUTH_CLIENT_ID_MISMATCH |
Несовпадение client_id |
Убедитесь, что client_id передан правильно и принадлежит вашему приложению |
OAUTH_REFRESH_TOKEN_INVALID_OR_EXPIRED |
Недействительный или просроченный refresh_token |
Повторите процесс авторизации, чтобы получить новую пару токенов |
OAUTH_AUTHORIZATION_HEADER_INVALID |
Недействительный заголовок авторизации | Проверьте правильность передачи токена в заголовке Authorization |
OAUTH_INVALID_PARTNER_TOKEN |
Неверный или просроченный partner_token |
Уточните актуальность токена у менеджера или используйте действительный partner_token |
OAUTH_TOKEN_INVALID_OR_EXPIRED |
Токен недействителен или истёк | Выполните обновление токена или повторите процесс авторизации |
OAUTH_TOKEN_UNKNOWN_OR_REVOKED |
Токен неизвестен или был отозван | Повторите процесс авторизации или обновите токен |
OAUTH_PARTNER_NOT_FOUND |
Партнёр не найден | Уточните детали у менеджера Wazzup |
OAUTH_PARTNER_NOT_ACTIVE |
Партнёр не активен | Обратитесь к менеджеру для активации партнёра |
OAUTH_CLIENT_NOT_CHILD_OF_PARTNER |
Клиент не является дочерним у партнёра | Проверьте, что клиент действительно принадлежит вашему партнёрскому аккаунту |
OAUTH_SCOPE_FORBIDDEN |
Запрошенный scope запрещён | Согласуйте необходимые права (scope) с менеджером |
OAUTH_MISSING_GRANT |
Клиент не предоставил доступы или аннулировал их | Клиенту заново необходимо пройти oauth идентификацию |
После авторизации: