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

Проверить QR-аутентификацию

Проверяет результат QR-входа до сообщения провайдера об успехе или ошибке. Ожидающий QR возвращает актуальный auth_payload.qr_code; WhatsApp вместо этого может вернуть passkey_required и auth_payload.public_key для следующего шага WebAuthn.

https://api.unifyport.ai/v1/accounts/{account_id}/auth/qr/check

Заголовки

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

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

Content-Type
stringобязательно

Используйте application/json при отправке JSON-тела запроса.

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

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

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

Тело запроса

Этот эндпоинт принимает пустой JSON-объект; отправьте {} как в примере запроса.

Тело ответа

provider
string

Провайдер, runtime которого обработал действие.

enum: telegram, whatsapp, line, twitter, zalo, tiktok, whatsapp_protocol

action
string

Запрошенное действие runtime.

status
string

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

auth_status
string

Нормализованное состояние аутентификации после действия Passkey. Опрашивайте GET /auth до authorized или failed.

auth_payload
object

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

type
string

Тип полезной нагрузки текущего шага; code обозначает шаг проверки кода, а passkey — шаг Passkey.

qr_code
string

Содержимое QR для отображения только при auth_status=awaiting_qr_scan.

public_key
object

WebAuthn PublicKeyCredentialRequestOptions для browser credentials API при auth_status=passkey_required.

account_id
string

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

expires_at
string

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

Ответы

200
200 OK

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

400
Bad Request

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

401
Unauthorized

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

409
Conflict

Запрошенная операция конфликтует с существующим аккаунтом провайдера или ресурсом.

500
Internal Server Error

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

502
Bad Gateway

Адаптер или вышестоящий провайдер не смог завершить операцию.

Запрос

curl -X POST https://api.unifyport.ai/v1/accounts/{account_id}/auth/qr/check \
  -H "X-Api-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{}'

Ответ

{
  "data": {
    "provider": "whatsapp",
    "action": "check_qr_auth",
    "status": "awaiting_qr_scan",
    "auth_status": "awaiting_qr_scan",
    "auth_payload": {
      "qr_code": "<QR_CODE>"
    }
  }
}

Ответ

{
  "data": {
    "provider": "whatsapp",
    "action": "check_qr_auth",
    "status": "passkey_required",
    "auth_status": "passkey_required",
    "auth_payload": {
      "type": "passkey",
      "public_key": {
        "challenge": "<BASE64URL_CHALLENGE>"
      }
    }
  }
}