Enrollment V2 - FIDO Registration Options API

Visão Geral

Esta API permite obter as opções de registro FIDO (WebAuthn) para o enrollment. A resposta contém os dados necessários para registrar a credencial no WebAuthn local, incluindo challenge, relying party (rp), usuário e configurações de autenticação.

Endpoint

POST /open-keys/itp/api/v2/enrollments/v2/payment-initiation/{itp_enrollment_id}/fido-registration-options

Autenticação

A API requer autenticação OAuth2 com uma das seguintes permissões:

  • journey: Para fluxos que utilizam redirecionamento à detentora de conta
  • app: Para integrações diretas via API

O token de acesso deve ser enviado no header:

Authorization: Bearer {access_token}

Estrutura da Requisição

Payload Completo

{
    "data": {
        "rp": "{fido_rp}",
        "platform": "{fido_platform}"
    }
}

Campos da Requisição

Nível Raiz

CampoTipoObrigatórioDescrição
dataObjectSimObjeto contendo os dados da requisição FIDO

Objeto data

CampoTipoObrigatórioDescrição
rpStringSimRelying Party ID
platformStringSimPlataforma do dispositivo

Exemplo de Requisição (cURL)

curl -X POST \
  https://api.exemplo.com/open-keys/itp/api/v2/enrollments/v2/payment-initiation/{itp_enrollment_id}/fido-registration-options \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
        "rp": "{fido_rp}",
        "platform": "{fido_platform}"
    }
}'

Resposta da API

Sucesso (200 OK)

A API retorna um objeto contendo as opções de registro FIDO:

{
    "challenge": "...",
    "rp": {
        "name": "Celcoin Sandbox",
        "id": "localhost:8000"
    },
    "user": {
        "id": "...",
        "name": "12345678909",
        "displayName": "12345678909"
    },
    "timeout": 300000,
    "attestation": "none",
    "authenticatorSelection": {
        "requireResidentKey": false,
        "userVerification": "preferred"
    }
}

Nota: Esta resposta deve ser usada diretamente para registrar a credencial no WebAuthn. Os dados incluem o challenge e configurações necessárias para o processo de registro.

Erros Comuns

401 Unauthorized

{
    "error": "Unauthorized",
    "message": "Token inválido ou expirado"
}

Solução: Verifique se o token de acesso é válido.

404 Not Found

{
    "error": "Not Found",
    "message": "Enrollment não encontrado"
}

Solução: Verifique se o itp_enrollment_id está correto e o enrollment existe.

400 Bad Request

{
    "error": "Bad Request",
    "message": "Campos obrigatórios ausentes"
}

Causas comuns:

  • Campos rp ou platform ausentes
  • Formato inválido dos dados