Справочник API
АутентификацияPOST

Создать сессию авторизации провайдера

Создаёт публичную сессию авторизации WhatsApp для дополнительного шага Passkey в QR-потоке. Используйте размещённый authorize_url или auth_payload.public_key для прямого WebAuthn-вызова. Не записывайте URL, challenge или учётные данные в публичные логи и не передавайте их другим лицам.

https://api.unifyport.ai/v1/accounts/{account_id}/auth-sessions

Заголовки

X-Api-Key
stringобязательно

API-ключ рабочей области. Рабочая область определяется по этому заголовку.

Параметры пути

account_id
stringобязательно

Идентификатор для маршрута раздела authentication.

Тело запроса

Этот эндпоинт не требует JSON-тела запроса.

Тело ответа

account_id
string

Аккаунт провайдера, к которому относится этот ответ.

provider
string

Каноническое имя provider в ответе. whatsapp-protocol поддерживает только аутентификацию session, а сейчас — text, image и сведения о контакте; reply, mentions, список контактов и операции их записи, диалоги и группы не поддерживаются. Доступность зависит от adapter, зарегистрированных в развёртывании.

enum: whatsapp

auth_mode
string

Режим авторизации сессии. Passkey является дополнительной веткой WhatsApp qrcode.

status
string

Текущий статус потока авторизации, например pending_auth, awaiting_qr_scan, awaiting_code, pending, passkey_required, passkey_pending, passkey_confirmation, passkey_confirmation_sent, authorized или failed.

auth_payload
object

Стандартная полезная нагрузка для текущего шага. QR использует qr_code; шаг проверки кода использует type=code; Passkey использует type=passkey и public_key. Полезные нагрузки взаимоисключающих шагов не появляются вместе.

authorize_url
string

Временный размещённый URL для завершения шага Passkey. Не записывайте и не передавайте это значение.

format: uri

expires_at
string

Метка времени RFC3339, после которой текущий auth_payload становится недействительным.

format: date-time

switchable
boolean

Указывает, может ли пользователь переключиться на другой доступный режим авторизации.

available_auth_modes[]
string[]

Режимы авторизации, на которые можно безопасно переключиться из текущей сессии.

Ответы

201
201 Created

Запрос выполнен. См. пример тела ответа.

400
Bad Request

Тело запроса, путь или параметры некорректны.

401
Unauthorized

Заголовок X-Api-Key отсутствует или недействителен.

500
Internal Server Error

Сервис столкнулся с неожиданной ошибкой.

503
Service Unavailable

Необходимая серверная служба временно недоступна.

Запрос

curl -X POST https://api.unifyport.ai/v1/accounts/{account_id}/auth-sessions \
  -H "X-Api-Key: <YOUR_API_KEY>"

Ответ

{
  "data": {
    "account_id": "acc_example",
    "provider": "whatsapp",
    "auth_mode": "qrcode",
    "status": "passkey_required",
    "auth_payload": {
      "type": "passkey",
      "public_key": {
        "challenge": "<BASE64URL_CHALLENGE>"
      }
    },
    "authorize_url": "https://auth.example.com/authorize/whatsapp/<SESSION_TOKEN>",
    "expires_at": "2026-08-12T08:10:00Z",
    "switchable": false,
    "available_auth_modes": ["qrcode"]
  }
}