Enrollment V2 - FIDO Registration API

Visão Geral

Esta API permite registrar a credencial FIDO (WebAuthn) no enrollment. O payload enviado no campo data é o retorno do registro da credencial no WebAuthn, obtido após o processo de fido-registration-options. A resposta confirma o registro e atualiza o status do enrollment para autorizado.

Endpoint

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

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": {
        "id": "...",
        "rawId": "...",
        "type": "public-key",
        "response": {
            "clientDataJSON": "...",
            "attestationObject": "..."
        }
    }
}

Campos da Requisição

Nível Raiz

CampoTipoObrigatórioDescrição
dataObjectSimObjeto contendo os dados do registro FIDO, que é o retorno do processo de registro WebAuthn

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 \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
        "id": "...",
        "rawId": "...",
        "type": "public-key",
        "response": {
            "clientDataJSON": "...",
            "attestationObject": "..."
        }
    }
}'

Resposta da API

Sucesso (200 OK)

A API retorna um objeto confirmando o registro FIDO e atualizando o status do enrollment:

{
    "id": "{itp_enrollment_id}",
    "paymentInitiationApi": "ENROLLMENTS_V2",
    "ofEnrollment": {
        "status": "AUTHORISED"
    }
}

Nota: Após o sucesso, o enrollment está autorizado e pode ser usado para pagamentos subsequentes.

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 ou dados inválidos"
}

Causas comuns:

  • Campo data ausente ou malformado
  • Dados do WebAuthn inválidos ou incompletos
  • Enrollment não está no status correto para registro FIDO