openapi: 3.0.0 info: title: API Enrollments for Payment Initiation - Open Finance Brasil description: | API de Dispositivo Vínculado para suportar Iniciação de Pagamentos na Jornada Sem Redirecionamento do Open Finance Brasil. version: 1.0.0-rc.1 license: name: Apache 2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0' contact: name: Governança do Open Finance Brasil – Especificações email: squad-jornada@openfinancebrasil.org.br url: 'https://openfinancebrasil.atlassian.net/wiki/spaces/OF' servers: - url: 'https://mtls-api.banco.com.br/open-banking/enrollments/v2' description: Servidor de Produção - url: 'https://mtls-api.hml.banco.com.br/open-banking/enrollments/v2' description: Servidor de Homologação tags: - name: Dispositivo vinculado paths: /enrollments: post: tags: - Dispositivo vinculado summary: Criar vínculo de conta. operationId: postEnrollments description: Método para criar um novo vínculo de conta que será utilizado na ativação de um consentimento sem redirecionamento do usuário ao ambiente da detentora. parameters: - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Payload para criação de vínculo de conta. content: application/jwt: schema: $ref: '#/components/schemas/CreateEnrollment' responses: '201': $ref: '#/components/responses/201EnrollmentsCreated' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/UnprocessableEntityEnrollment' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2ClientCredentials: - payments '/enrollments/{enrollmentId}': get: tags: - Dispositivo vinculado summary: Consultar vínculo de conta. operationId: getEnrollment description: Método para consultar um novo vínculo de conta para iniciação de pagamento sem redirecionamento. parameters: - $ref: '#/components/parameters/enrollmentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' responses: '200': $ref: '#/components/responses/200EnrollmentsEnrollmentIdRead' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2ClientCredentials: - payments patch: tags: - Dispositivo vinculado summary: Revogar ou rejeitar vínculo de conta. operationId: deleteEnrollment description: | Método para revogar ou rejeitar um vínculo de conta. Após a execução com sucesso deste método irreversível, o vínculo de conta não poderá mais ser utilizado para autenticação nem autorização de iniciação de pagamentos. Os conceitos de revogação e rejeição estão associados à máquina de estados do vínculo de conta\: • Revogação: Cancelamento de um vínculo de conta no status "AUTHORISED"; • Rejeição: Cancealemento do vínculo de conta nos status "AWATING_AUTHORISATION" e "AWATING_ENROLLMENT". Cabe ao cliente desta API distinguir entre os dois cenários para determinar o motivo adequado. parameters: - $ref: '#/components/parameters/enrollmentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Dados para regovação do vínculo de conta. content: application/jwt: schema: type: object required: - data properties: data: type: object required: - cancellation description: | Objeto que agrupa as informações de qual foi o usuário logado que solicitou o cancelamento do vínculo de conta. properties: cancellation: type: object required: - reason properties: cancelledBy: type: object description: | Informação relacionada ao usuário pagador que solicitou o cancelamento do vínculo de conta. Pode estar ausente em cenários de processos automatizados realizarem o cancelamento do vínculo, por exemplo, por data de expiração. required: - document properties: document: type: object description: Objeto que consolida os dados do documento do usuário que solicitou o cancelamento. required: - identification - rel properties: identification: type: string maxLength: 11 description: Número do documento do usuário responsável pelo cancelamento do vínculo de conta. example: '11111111111' pattern: '^\d{11}$' rel: type: string maxLength: 3 description: Tipo do documento do usuário responsável pelo cancelamento do vínculo de conta. example: CPF pattern: '^[A-Z]{3}$' reason: oneOf: - type: object required: - rejectionReason description: Motivo da rejeição do vínculo de conta. properties: rejectionReason: $ref: '#/components/schemas/EnrollmentRejectionReason' - type: object required: - revocationReason description: Motivo da revogação do vínculo de conta. properties: revocationReason: $ref: '#/components/schemas/EnrollmentRevocationReason' additionalInformation: type: string pattern: '[\w\W\s]*' example: Contrato entre iniciadora e detentora interrompido maxLength: 2048 responses: '204': $ref: '#/components/responses/204EnrollmentsEnrollmentIdDelete' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '422': $ref: '#/components/responses/UnprocessableEntityEnrollmentCancel' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2ClientCredentials: - payments '/enrollments/{enrollmentId}/fido-registration-options': post: tags: - Dispositivo vinculado summary: Obter parâmetros para criação de credenciais FIDO2. operationId: enrollmentCreateFidoRegistrationOptions description: | Método para obter os parâmetros para criação de uma nova credencial FIDO2. Um novo challenge deve ser criado a cada chamada. Os parâmetros da resposta devem ser compatíveis com a definição [W3C](https://www.w3.org/TR/webauthn-2/#dictionary-makecredentialoptions) parameters: - $ref: '#/components/parameters/enrollmentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Payload para criação de parâmetros de registro de nova credencial FIDO2. content: application/jwt: schema: $ref: '#/components/schemas/EnrollmentFidoOptionsInput' responses: '201': $ref: '#/components/responses/201EnrollmentFidoRegistrationOptions' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/UnprocessableEntityEnrollmentFidoRegistrationOptions' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2AuthorizationCode: - openid - 'enrollment:enrollmentId' - payments '/enrollments/{enrollmentId}/fido-registration': post: tags: - Dispositivo vinculado summary: Associação da credencial FIDO2 ao vínculo de conta. operationId: enrollmentRegisterFidoCredential description: | O vínculo de conta deve estar no status "AWAITING_ENROLLMENT". Após o registro com sucesso, o vínculo de conta deve transitar ao status "AUTHORISED". A falha de verificação da credencial FIDO2 deve causar a revogação do vínculo de conta por parte da detentora, uma vez que não é possível reusar um mesmo "challenge" para mais de um registro. parameters: - $ref: '#/components/parameters/enrollmentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Payload para criação de parâmetros de registro de nova credencial FIDO2. content: application/jwt: schema: $ref: '#/components/schemas/EnrollmentFidoRegistration' responses: '204': $ref: '#/components/responses/204EnrollmentsFidoRegistration' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/UnprocessableEntityEnrollmentFidoRegistration' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2AuthorizationCode: - openid - 'enrollment:enrollmentId' - payments /enrollments/{enrollmentId}/fido-sign-options: post: tags: - Dispositivo vinculado summary: Obter parâmetros para autenticação FIDO2. operationId: enrollmentCreateFidoSigningOptions description: | Método para obter os parâmetros para autenticação a partir de uma credencial FIDO2 previamente registrada. Um novo challenge deve ser criado a cada chamada. Os parâmetros da resposta devem ser compatíveis com a definição [W3C](https://www.w3.org/TR/webauthn-2/#dictionary-assertion-options) parameters: - $ref: '#/components/parameters/enrollmentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Payload para autenticação a partir de uma credencial FIDO2 previamente registrada. content: application/jwt: schema: type: object required: - data properties: data: type: object description: | Objeto que contém as informações sobre a Relying Party e a plataforma sobre a qual o usuário está utilizando o serviço da iniciadora para utilização de FIDO2. required: - rp - platform - consentId properties: rp: type: string description: Identificador único da Relying Party. platform: type: string description: | Indica a plataforma em que o usuário criará a nova credencial FIDO2. Este campo permite que o servidor FIDO inclua extensões de acordo com a plataforma utilizada. enum: - ANDROID - BROWSER - CROSS_PLATFORM - IOS consentId: $ref: '#/components/schemas/consentId' responses: '201': $ref: '#/components/responses/201EnrollmentFidoSignOptions' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/UnprocessableEntityEnrollmentFidoSignOptions' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2ClientCredentials: - payments /enrollments/{enrollmentId}/risk-signals: post: tags: - Dispositivo vinculado summary: Autorização de um consentimento de pagamentos na jornada sem redirecionamento operationId: riskSignals description: | Autorização de um consentimento de pagamentos a partir do access token emitido pela jornada sem redirecionamento e envio de sinais de risco. O consentimento de pagamento deve transitar ao status "AUTHORISED" na execução com sucesso deste método. Em caso de falha, o status do consentimento do pagamento transitará par o status "REJECTED". parameters: - $ref: '#/components/parameters/enrollmentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Payload para criação de vínculo de conta. content: application/jwt: schema: $ref: '#/components/schemas/RiskSignals' responses: '204': $ref: '#/components/responses/204EnrollmentsRiskSignals' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/UnprocessableEntityEnrollmentRiskSignals' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2ClientCredentials: - payments /consents/{consentId}/authorize: post: tags: - Dispositivo vinculado summary: Autorização de um consentimento de pagamentos na jornada sem redirecionamento operationId: authorizeConsent description: | Autorização de um consentimento de pagamentos a partir do access token emitido pela jornada sem redirecionamento e envio de sinais de risco. O consentimento de pagamento deve transitar ao status "AUTHORISED" na execução com sucesso deste método. Em caso de falha, o status do consentimento do pagamento transitará par o status "REJECTED". parameters: - $ref: '#/components/parameters/consentId' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' - $ref: '#/components/parameters/XIdempotencyKey' requestBody: required: true description: Payload para criação de vínculo de conta. content: application/jwt: schema: $ref: '#/components/schemas/ConsentAuthorization' responses: '204': $ref: '#/components/responses/204PaymentsConsentsAuthorized' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/UnprocessableEntityConsentsAuthorization' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2JwtBearer: - openid - 'consent:consentId' - payments components: headers: xFapiInteractionId: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' schemas: 422ResponseErrorCreateEnrollment: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - PERMISSOES_INVALIDAS - CONTA_INVALIDA example: PERMISSOES_INVALIDAS description: | Códigos de erros previstos na criação do vínculo de conta: • PERMISSOES_INVALIDAS: As permissões associadas ao vínculo de conta não contêm "PAYMENTS_INITIATE". • CONTA_INVALIDA: A conta informada inexiste ou não é compatível com o fluxo de não-redirecionamento. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: • PERMISSOES_INVALIDAS: Permissões inválidas. • CONTA_INVALIDA: Conta inválida. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: • PERMISSOES_INVALIDAS: As permissões associadas ao vínculo de conta não contêm "PAYMENTS_INITIATE" ou contém valores não suportados para esta operação. • CONTA_INVALIDA: A conta informada inexiste ou não é compatível com o fluxo de não-redirecionamento. meta: $ref: '#/components/schemas/Meta' 422ResponseErrorCancelEnrollment: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - STATUS_INVALIDO example: STATUS_INVALIDO description: | Códigos de erros previstos na criação do vínculo de conta: • STATUS_INVALIDO: O status do vínculo de conta não permite cancelamento. • MOTIVO_REJEICAO: A rejeição do vínculo de conta deve estar associada a um motivo de rejeição. • REJEITADO_OUTRO_SEM_DETALHES: O uso do motivo REJEITADO_OUTRO, deve estar acompanhado de descrição (additionalInformation). • MOTIVO_REVOGACAO: A revogação do vínculo de conta deve estar associada a um motivo de revogação. • REVOGADO_OUTRO_SEM_DETALHES: O uso do motivo REVOGADO_OUTRO deve estar acompanhado de descrição (additionalInformation) title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: • STATUS_INVALIDO: Status inválido. • MOTIVO_REJEICAO: Motivo de rejeição não especificado. • REJEITADO_OUTRO_SEM_DETALHES: O campo additionalInformation é obrigatório. • MOTIVO_REVOGACAO: Motivo de revogação não especificado. • REVOGADO_OUTRO_SEM_DETALHES: O campo additionalInformation é obrigatório. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: • STATUS_INVALIDO: O status do vínculo de conta não permite cancelamento. • MOTIVO_REJEICAO: A rejeição do vínculo de conta deve estar associada a um motivo de rejeição. • REJEITADO_OUTRO_SEM_DETALHES: O uso do motivo REJEITADO_OUTRO, deve estar acompanhado de descrição (additionalInformation). • MOTIVO_REVOGACAO: A revogação do vínculo de conta deve estar associada a um motivo de revogação. • REVOGADO_OUTRO_SEM_DETALHES: O uso do motivo REVOGADO_OUTRO deve estar acompanhado de descrição (additionalInformation) meta: $ref: '#/components/schemas/Meta' 422ResponseErrorFidoRegistrationOptions: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - RP_INVALIDA - STATUS_VINCULO_INVALIDO example: STATUS_VINCULO_INVALIDO description: | Códigos de erros previstos: • RP_INVALIDA: O identificador da Relying Party informado não pode ser verificado. • STATUS_VINCULO_INVALIDO: O status do vínculo de conta é tal que não permite o registro de nova credencial. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: • RP_INVALIDA: Relying party inválida. • STATUS_VINCULO_INVALIDO: Status do vínculo de conta inválido. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: • RP_INVALIDA: O identificador da Relying Party informado não pode ser verificado. • STATUS_VINCULO_INVALIDO: O status do vínculo de conta é tal que não permite o registro de nova credencial. meta: $ref: '#/components/schemas/Meta' 422ResponseErrorRiskSignals: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - STATUS_VINCULO_INVALIDO example: STATUS_VINCULO_INVALIDO description: | Códigos de erros previstos: - STATUS_VINCULO_INVALIDO: O status do vínculo de conta é incompatível com a operação. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: - STATUS_VINCULO_INVALIDO: Status do vínculo de conta inválido. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: - STATUS_VINCULO_INVALIDO: O status do vínculo de conta é incompatível com a operação. meta: $ref: '#/components/schemas/Meta' 422ResponseErrorFidoSignOptions: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - RP_INVALIDA - STATUS_VINCULO_INVALIDO - STATUS_CONSENTIMENTO_INVALIDO example: STATUS_VINCULO_INVALIDO description: | Códigos de erros previstos: • RP_INVALIDA: O identificador da Relying Party informado não pode ser verificado. • STATUS_VINCULO_INVALIDO: O status do vínculo de conta é tal que não permite o registro de nova credencial. • STATUS_CONSENTIMENTO_INVALIDO: O status do consentimento não permite autorização. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: • RP_INVALIDA: Relying party inválida. • STATUS_VINCULO_INVALIDO: Status do vínculo de conta inválido. • STATUS_CONSENTIMENTO_INVALIDO: Status do consentimento de pagamento inválido. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: • RP_INVALIDA: O identificador da Relying Party informado não pode ser verificado. • STATUS_VINCULO_INVALIDO: O status do vínculo de conta é tal que não permite o registro de nova credencial. • STATUS_CONSENTIMENTO_INVALIDO: O status do consentimento não permite autorização. meta: $ref: '#/components/schemas/Meta' 422ResponseErrorFidoRegistration: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - STATUS_VINCULO_INVALIDO - ORIGEM_FIDO_INVALIDA - RP_ID_HASH_INVALIDO - CHALLENGE_INVALIDO - PUBLIC_KEY_INVALIDA - EXTENSION_INVALIDA example: STATUS_VINCULO_INVALIDO description: | Códigos de erros previstos: • STATUS_VINCULO_INVALIDO: O status do vínculo de conta é tal que não permite o registro de nova credencial. • ORIGEM_FIDO_INVALIDA: O valor contido no campo response.clientDataJSON.origin não pode ser verificado. • RP_INVALIDA: O valor contido no campo response.attestationObject.authData.rpIdHash não pode ser verificado. • CHALLENGE_INVALIDO: O campo response.clientDataJSON.challenge possui valor codificado diferente do valor gerado pelo servidor. • PUBLIC_KEY_INVALIDA: A chave pública enviada é incompatível com as definições do servidor FIDO2. • EXTENSION_INVALIDA: As extensões extraídas são incompatíveis com as diretrizes de segurança do servidor FIDO2. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: • STATUS_VINCULO_INVALIDO: Status inválido do vínculo de conta. • ORIGEM_FIDO_INVALIDA: "Origin" não pode ser verificada. • RP_INVALIDA: "RpIdHash" não pode ser verificado. • CHALLENGE_INVALIDO: Challenge inválido. • PUBLIC_KEY_INVALIDA: Chave pública inválida. • EXTENSION_INVALIDA: Extensões inválidas. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: • STATUS_VINCULO_INVALIDO: O status do vínculo de conta é tal que não permite o registro de nova credencial. • ORIGEM_FIDO_INVALIDA: O valor contido no campo response.clientDataJSON.origin não pode ser verificado. • RP_INVALIDA: O valor contido no campo response.attestationObject.authData.rpIdHash não pode ser verificado. • CHALLENGE_INVALIDO: O campo response.clientDataJSON.challenge possui valor codificado diferente do valor gerado pelo servidor. • PUBLIC_KEY_INVALIDA: A chave pública enviada é incompatível com as definições do servidor FIDO2. • EXTENSION_INVALIDA: As extensões extraídas são incompatíveis com as diretrizes de segurança do servidor FIDO2. meta: $ref: '#/components/schemas/Meta' 422ResponseConsentsAuthorization: type: object required: - errors - meta properties: errors: type: array minItems: 1 items: type: object required: - code - title - detail properties: code: type: string enum: - STATUS_VINCULO_INVALIDO - STATUS_CONSENTIMENTO_INVALIDO - RISCO - FALTAM_SINAIS_OBRIGATORIOS_DA_PLATAFORMA example: STATUS_VINCULO_INVALIDO description: | Códigos de erros previstos: • STATUS_VINCULO_INVALIDO: O vínculo de conta não possui status AUTHORISED. • STATUS_CONSENTIMENTO_INVALIDO: O consentimento de pagamentos não possui status AWAITING_AUTHORISATION. • RISCO: Validação síncrona dos sinais de risco impediram a ativação do consentimento. • FALTAM_SINAIS_OBRIGATORIOS_DA_PLATAFORMA: Os sinais obrigatórios para a plataforma do usuário não foram enviados em sua totalidade. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Permissões inválidas description: | Título específico do erro reportado, de acordo com o código enviado: • STATUS_VINCULO_INVALIDO: Status do vínculo de conta inválido. • STATUS_CONSENTIMENTO_INVALIDO: Status do consentimento inválido. • RISCO: Validação síncrona dos sinais de risco impediram a ativação do consentimento. • FALTAM_SINAIS_OBRIGATORIOS_DA_PLATAFORMA: Falta de sinais obrigatórios para a plataforma do usuário. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: 'Permissões inválidas' description: | Descrição específica do erro de acordo com o código reportado: • STATUS_VINCULO_INVALIDO: O vínculo de conta não possui status AUTHORISED. • STATUS_CONSENTIMENTO_INVALIDO: O consentimento de pagamentos não possui status AWAITING_AUTHORISATION. • RISCO: Validação síncrona dos sinais de risco impediram a ativação do consentimento. • FALTAM_SINAIS_OBRIGATORIOS_DA_PLATAFORMA: Os sinais obrigatórios para a plataforma do usuário não foram enviados em sua totalidade. meta: $ref: '#/components/schemas/Meta' BusinessEntity: type: object description: 'Usuário (pessoa jurídica) que encontra-se logado na iniciadora. [Restrição] Preenchimento obrigatório se usuário logado na iniciadora for um CNPJ (pessoa jurídica).' required: - document properties: document: type: object required: - identification - rel properties: identification: type: string maxLength: 14 description: Número do documento de identificação oficial do titular pessoa jurídica. example: '11111111111111' pattern: '^\d{14}$' rel: type: string maxLength: 4 description: Tipo do documento de identificação oficial do titular pessoa jurídica. example: CNPJ pattern: '^[A-Z]{4}$' CreateEnrollment: type: object required: - data properties: data: type: object description: Objeto contendo as informações para criação de vínculo de conta. required: - loggedUser - permissions properties: loggedUser: $ref: '#/components/schemas/LoggedUser' permissions: type: array minItems: 1 items: $ref: '#/components/schemas/EnumEnrollmentPermission' businessEntity: $ref: '#/components/schemas/BusinessEntity' debtorAccount: $ref: '#/components/schemas/DebtorAccount' RiskSignals: type: object required: - data properties: data: type: object description: Informa a integridade do dispositivo e app required: - deviceId - isRootedDevice - screenBrightness - elapsedTimeSinceBoot - osVersion - userTimeZone - language - screenDimensions - accountTenure properties: deviceId: type: string description: ID único do dispositivo gerado pela plataforma. isRootedDevice: type: boolean description: Indica se o dispositivo sofreu processo de “root”. screenBrightness: type: integer description: Indica o nível de brilho da tela do dispositivo. elapsedTimeSinceBoot: type: integer format: int64 description: Indica por quanto tempo o dispositivo está ligado. osVersion: type: string description: Versão do sistema operacional. userTimeZone: type: string description: Detalha o fuso horário em que o dispositivo está definido. language: type: string description: Idioma configurado no dispositivo. screenDimensions: type: string description: Tamanho de tela do dispositivo accountTenure: type: string description: Tempo que o cliente fez cadastro no ITP. latitudeLongitude: type: string description: | Latitude (2 casas decimais) e Longitude. [Restrição] Caso o sinal de risco esteja disponível (cliente permitiu que fosse coletado), o mesmo deverá ser enviado isCallingProgress: type: boolean description: | Indica chamada ativa no momento do vínculo. [Restrição] Caso o sinal de risco esteja disponível (cliente permitiu que fosse coletado), o mesmo deverá ser enviado isDevModeEnabled: type: boolean description: Indica se o dispositivo está em modo de desenvolvedor. isMockGPS: type: boolean description: Indica se o dispositivo está usando um GPS falso. isEmulated: type: boolean description: Indica se o dispositivo é emulado ou real. isMonkeyRunner: type: boolean description: Indica o uso do MonkeyRunner. isCharging: type: boolean description: Indica se a bateria do dispositivo está sendo carregada. antennaInformation: type: string description: Indica em qual antena o dispositivo está conectado. isUsbConnected: type: boolean description: Indica se o dispositivo está conectado em um USB de um computador. integrity: type: object description: Informa a integridade do dispositivo e app properties: appRecognitionVerdict: type: string description: Informa a integridade do app deviceRecognitionVerdict: type: string description: Informa a integridade do dispositivo ConsentAuthorization: type: object required: - data properties: data: type: object description: Objeto que contém sinais de risco e o id do vínculo de conta para avaliação da autorização de um consentimento de pagamento. required: - enrollmentId - riskSignals - fidoAssertion properties: enrollmentId: $ref: '#/components/schemas/enrollmentId' riskSignals: type: object description: | Conjunto de sinais extraídos do dispositivo do usuário para ativação do consentimento de pagamento. A obrigatoriedade das informações variam de acordo com a plataforma utilizada. properties: geolocation: type: object properties: latitude: type: number longitude: type: number type: type: string enum: - COARSE - FINE - INFERRED deviceId: type: string description: Identificador do dispositivo. isRootedDevice: type: boolean description: Indica se o usuário possui permissão root no dispositivo. screenBrightness: type: integer description: Indica o nível de brilho da tela do dispositivo. elapsedTimeSinceBoot: type: integer format: int64 description: Indica por quanto tempo o dispositivo está ligado desde a última inicialização. isCallInProgress: type: boolean description: Indica se há uma chamada em curso isDevModeEnabled: type: boolean description: Indica se o modo desenvolvedor está ativado no dispositivo. isMockGPS: type: boolean description: Indica se o dispositivo está utilizando geolocalização fictícia. isEmulated: type: boolean description: Indica se o dispositivo é emulado. isMonkeyRunner: type: boolean description: Indica se o dispositivo está sob controle de uma ferramenta de automação. isCharging: type: boolean description: Indica se a bateria do dispositivo está em carregamento. antennaInformation: type: string description: Indica o tipo de conexão com a rede de celular do dispositivo. example: 3G, 4G, 4G+, 5G isUsbConnected: type: boolean description: Indica se existe ao menos uma conexão USB ao dispositivo. userTimeZone: type: string description: 'Indica a configuração de fuso horário do dispositivo no formato UTC offset: ±hh[:mm]' example: '-03' language: type: string description: Indica o idioma do dispositivo no formato ISO 639-1. example: 'pt' screenDimensions: type: object description: Dimensões da tela do dispositivo required: - height - width properties: height: type: integer description: Altura da tela, em pixels. width: type: integer description: Largura da tela, em pixels. accountTenure: type: integer description: Indica há quanto tempo o cliente realizou seu cadastro na iniciadora. fidoAssertion: type: object description: Dados da asserção required: - id - rawId - type - response properties: id: type: string description: Identificador da credencial. rawId: type: string description: Identificador da credencial. Pode ser igual ao campo id. type: type: string description: Tipo da credencial. response: type: object description: Tras as informações da resposta a asserção. required: - clientDataJSON - authenticatorData - signature - userHandle properties: clientDataJSON: type: string format: bytes description: Agrega as informações do aplicativo que gerou a credencial. authenticatorData: type: string format: bytes description: Representa a estrutura de dados do autenticador. signature: type: string format: bytes description: Sequencia de bytes contendo a assinatura. userHandle: type: string format: bytes description: Nome de usuário que foi enviado durante a criação da credencial. clientExtensionResults: type: object description: Estrutura para extensão de resultados properties: additionalProp1: type: string description: Propriedade adicional. additionalProp2: type: string description: Propriedade adicional. DebtorAccount: type: object description: | Objeto que contém a identificação da conta de origem do pagador. As informações quanto à conta de origem do pagador poderão ser trazidas no vínculo para a detentora, caso a iniciadora tenha coletado essas informações do cliente. Do contrário, será coletada na detentora e trazida para a iniciadora como resposta à criação do vínculo. required: - ispb - number - accountType properties: ispb: type: string minLength: 8 maxLength: 8 pattern: '^[0-9]{8}$' example: '12345678' description: | Deve ser preenchido com o ISPB (Identificador do Sistema de Pagamentos Brasileiros) do participante do SPI (Sistema de pagamentos instantâneos) somente com números. issuer: type: string minLength: 1 maxLength: 4 pattern: '^[0-9]{1,4}$' example: '1774' description: | Código da Agência emissora da conta sem dígito. (Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito, no exercício de atividades da instituição, não podendo ser móvel ou transitória). [Restrição] Preenchimento obrigatório para os seguintes tipos de conta: CACC (CONTA_DEPOSITO_A_VISTA) e SVGS (CONTA_POUPANCA). number: type: string minLength: 1 maxLength: 20 pattern: '^[0-9]{1,20}$' example: '1234567890' description: | Deve ser preenchido com o número da conta transacional do usuário pagador, com dígito verificador (se este existir), se houver valor alfanumérico, este deve ser convertido para 0. accountType: $ref: '#/components/schemas/EnumAccountPaymentsType' enrollmentId: type: string maxLength: 256 pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' example: 'urn:bancoex:C1DD33123' description: | Identificador único do vínculo de conta criado para a iniciação de pagamento solicitada. Deverá ser um URN - Uniform Resource Name. Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN seja um identificador de recurso persistente e independente da localização. Considerando a string urn:bancoex:C1DD33123 como exemplo para consentId temos: - o namespace(urn) - o identificador associado ao namespace da instituição transnmissora (bancoex) - o identificador específico dentro do namespace (C1DD33123). Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141). consentId: type: string maxLength: 256 pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' description: | O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name. Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN seja um identificador de recurso persistente e independente da localização. Considerando a string urn:bancoex:C1DD33123 como exemplo para consentId temos: - o namespace(urn) - o identificador associado ao namespace da instituição transnmissora (bancoex) - o identificador específico dentro do namespace (C1DD33123). Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141). EnrollmentCancellation: type: object required: - data properties: data: type: object description: | Objeto que agrupa as informações de qual foi o usuário logado que solicitou o cancelamento do vínculo de conta. properties: cancellation: type: object required: - reason properties: cancelledBy: type: object description: | Informação relacionada ao usuário pagador que solicitou o cancelamento do vínculo de conta. Pode estar ausente em cenários de processos automatizados realizarem o cancelamento do vínculo, por exemplo, por data de expiração. required: - document properties: document: type: object description: Objeto que consolida os dados do documento do usuário que solicitou o cancelamento. required: - identification - rel properties: identification: type: string maxLength: 11 description: Número do documento do usuário responsável pelo cancelamento do vínculo de conta. example: '11111111111' pattern: '^\d{11}$' rel: type: string maxLength: 3 description: Tipo do documento do usuário responsável pelo cancelamento do vínculo de conta. example: CPF pattern: '^[A-Z]{3}$' reason: oneOf: - type: object required: - rejectionReason description: Motivo da rejeição do vínculo de conta. properties: rejectionReason: $ref: '#/components/schemas/EnrollmentRejectionReason' - type: object required: - revocationReason description: Motivo da revogação do vínculo de conta. properties: revocationReason: $ref: '#/components/schemas/EnrollmentRevocationReason' additionalInformation: type: string pattern: '[\w\W\s]*' example: Contrato entre iniciadora e detentora interrompido maxLength: 2048 EnrollmentRejectionReason: type: string enum: - REJEITADO_TEMPO_EXPIRADO_AUTHORISATION - REJEITADO_TEMPO_EXPIRADO_ENROLLMENT - REJEITADO_MAXIMO_CHALLENGES_ATINGIDO - REJEITADO_MANUALMENTE - REJEITADO_DISPOSITIVO_INCOMPATIVEL - REJEITADO_FALHA_INFRAESTRUTURA - REJEITADO_FALHA_HYBRID_FLOW - REJEITADO_FALHA_FIDO - REJEITADO_SEGURANCA_INTERNA - REJEITADO_OUTRO description: | Indica o motivo do cancelamento do vínculo de conta. Valores possíveis: • REJEITADO_TEMPO_EXPIRADO_AUTHORISATION: Expiração automática devido a timeout no status "AWAITING_AUTHORISATION". O processo de redirecionamento não foi concluído com sucesso a tempo. • REJEITADO_TEMPO_EXPIRADO_ENROLLMENT: Expiração automática devido a timeout no status "AWAITING_ENROLLMENT". O processo de criação e envio de credenciais FIDO2 não foi condluído com sucesso a tempo. • REJEITADO_MAXIMO_CHALLENGES_ATINGIDO: Vínculo de conta rejeitado devido várias tentativas frustradas. • REJEITADO_MANUALMENTE: Cancelamento manual, explicitamente a mando do usuário. • REJEITADO_DISPOSITIVO_INCOMPATIVEL: Dispositivo não suporta o protocolo FIDO. • REJEITADO_FALHA_INFRAESTRUTURA: Falha na infraestrutura na detentora na etapa anterior ao aceite de vínculo. • REJEITADO_SEGURANCA_INTERNA: Vínculo de conta rejeitado devido à política de segurança de instituição detentora ou iniciadora considerando a análise dos sinais de risco. • REJEITADO_FALHA_HYBRID_FLOW: Vínculo de conta rejeitado por falha técnica no processo de redirecionamento (por exemplo: troca de authorization code por access token no FAPI Hybrid flow) • REJEITADO_FALHA_FIDO: Vínculo de conta rejeitado por falha técnica no processo de validação ou associação da credencial pública FIDO. • REJEITADO_OUTRO: Outros motivos não descritos pelas demais. Indicar, neste caso, o motivo em "additionalInformation". EnrollmentRevocationReason: type: string enum: - REVOGADO_MANUALMENTE - REVOGADO_VALIDADE_EXPIRADA - REVOGADO_FALHA_INFRAESTRUTURA - REVOGADO_SEGURANCA_INTERNA - REVOGADO_OUTRO description: | Indica o motivo do cancelamento do vínculo de conta. Valores possíveis: • REVOGADO_MANUALMENTE: Cancelamento manual, explicitamente a mando do usuário. • REVOGADO_VALIDADE_EXPIRADA: Expiração automática ao atingir o prazo limite do vínculo de conta. • REVOGADO_FALHA_INFRAESTRUTURA: Falha na infraestrutura na detentora na etapa após o aceite de vínculo. • REVOGADO_SEGURANCA_INTERNA: Vínculo de conta rejeitado devido à políticas de segurança tanto da iniciadora quanto da detentora em momento após o vínculo do dispositivo. • REVOGADO_OUTRO: Outros motivos não descritos pelas demais. Indicar, neste caso, o motivo em "additionalInformation". EnrollmentFidoRegistration: type: object description: Objeto que contém a resposta da criação de uma nova credencial FIDO2. required: - data properties: data: type: object required: - id - rawId - response properties: id: type: string description: Identificador da credencial. rawId: type: string description: Identificador da credencial. Pode ser igual ao campo id. response: type: object required: - clientDataJSON - attestationObject properties: clientDataJSON: type: string format: bytes description: Agrega as informações do aplicativo que gerou a credencial. example: eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiTVRBeU16azRhMkZxYUhOclpHcG9ZV3R6Iiwib3JpZ2luIjoiaHR0cHM6Ly93d3cudzMub3JnIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ== attestationObject: type: string format: bytes description: Agrega as informações da chave pública da credencial. example: o2NmbXRoZmlkby11MmZnYXR0U3RtdKJjc2lnWEcwRQIgZyUMtm43lCCqzoIbSDeoCUpJzh/VSchwQNxFR2UM/DsCIQDWpp4+/nklI7G2HPVZCIqw08R9omcn9kJrKPsuIO5k22N4NWOBWQFIMIIBRDCB6qADAgECAgkBcwb/////QwMwCgYIKoZIzj0EAwIwGzEZMBcGA1UEAxMQR251YmJ5IEhTTSBDQSAwMDAiGA8yMDEyMDYwMTAwMDAwMFoYDzIwNjIwNTMxMjM1OTU5WjAwMRkwFwYDVQQDExBHb29nbGUgR251YmJ5IHYwMRMwEQYDVQQtAwoAAXMG/////0MDMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELuWVatmVMfAOr53T6fh7X/iIgqKz5SCnKTBUnFo3FtbbslUGi8Qetr1nbyr6BVqGHqcJiXyvF6rVbj5fZqbiBTAKBggqhkjOPQQDAgNJADBGAiEA5GaaFxllkOr24b5s6Qu/4ch3ZgU+3GIAv/D8kj4EGMgCIQDXYfaVAMe7Jzht3ra4TaCKKpaUxp+nRkIO/SKiQZPjgmhhdXRoRGF0YVjEIYvQ2gJvAWdQFFLPcpStJJWLnFoQO0f5vT1T51P/rm5BAAAAAAAAAAAAAAAAAAAAAAAAAAAAQCJ8iR8CqPctr4tz/YAICs6bDwVqhDzdt3oohVVWRQruy+E1AFeEWgPMWsIS4UU0n+sRGW3m2K90z1d9ujtFPxylAQIDJiABIVggaUaH0XDx9F2UOrT0ao02wL+xjGR/BxnCB4WOU2w0H8YiWCATuK2PUWGPophwPsfNIC3CZw4TGlCMEq1R15cw1w5KDg== authenticatorAttachment: type: string description: Indica a forma de comunicação com o autenticador. example: platform, cross-platform type: type: string description: Tipo da credencial example: public-key clientExtensionResults: type: object description: Extensões da credencial, específicas por plataforma additionalProperties: type: string EnrollmentFidoOptionsInput: type: object required: - data properties: data: type: object description: | Objeto que contém as informações sobre a Relying Party e a plataforma sobre a qual o usuário está utilizando o serviço da iniciadora para utilização de FIDO2. required: - rp - platform properties: rp: type: string description: Identificador único da Relying Party. platform: type: string description: | Indica a plataforma em que o usuário criará a nova credencial FIDO2. Este campo permite que o servidor FIDO inclua extensões de acordo com a plataforma utilizada. enum: - ANDROID - BROWSER - CROSS_PLATFORM - IOS EnrollmentFidoRegistrationOptions: type: object required: - data - links - meta properties: data: type: object description: Objeto que contém as informações necessárias para registro de uma nova credencial FIDO2. required: - enrollmentId - rp - user - challenge - pubKeyCredParams properties: enrollmentId: $ref: '#/components/schemas/enrollmentId' rp: $ref: '#/components/schemas/FidoRelyingParty' user: $ref: '#/components/schemas/FidoUser' challenge: type: string format: byte description: Sequência de bytes aleatórios gerados pelo servidor FIDO2, codificados em base64. pubKeyCredParams: type: array items: $ref: '#/components/schemas/FidoPublicKeyCredentialCreationOptions' timeout: type: integer description: Timeout, em milissegundos, para registro da credencial FIDO2. excludeCredentials: type: array items: $ref: '#/components/schemas/FidoPublicKeyCredentialDescriptor' authenticatorSelection: $ref: '#/components/schemas/FidoAuthenticatorSelectionCriteria' attestation: type: string description: Indica o tipo de attestation que o autenticador pode utilizar. example: none, indirect, direct, enterprise attestationFormats: type: array description: Indica as preferências de formato sobre o campo attestation. items: type: string example: packed, tpm, android-key, android-safetynet, fido-u2f, apple, none extensions: type: object description: Campo de extensão com opções que variam por plataforma. additionalProperties: type: string links: $ref: '#/components/schemas/LinkSingle' meta: $ref: '#/components/schemas/Meta' EnrollmentRejectionFrom: type: object required: - data properties: data: type: object properties: cancellation: type: object required: - cancelledFrom properties: cancelledFrom: $ref: '#/components/schemas/EnumEnrollmentCancelledFrom' rejectedAt: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: Instante de rejeição do vínculo de conta no ambiente da detentora. EnrollmentLimits: type: object required: - data properties: data: type: object required: - dailyLimit - debtorAccount - transactionLimit properties: transactionLimit: type: string minLength: 4 maxLength: 19 pattern: '^((\d{1,16}\.\d{2}))$' example: '100000.12' description: | Valor máximo, por transação, admitido para este vínculo de conta. Este limite não garante a autorização de iniciações de pagamento; servindo como referência para a iniciadora evitar a criação de consentimentos de valores tais que, garantidamente, não serão autorizados. dailyLimit: type: string minLength: 4 maxLength: 19 pattern: '^((\d{1,16}\.\d{2}))$' example: '100000.12' description: | Limite diário cumulativo para este vínculo de conta. Este limite não garante a autorização de iniciações de pagamento; servindo como referência para a iniciadora evitar a criação de consentimentos para valores tais que, garantidamente, não serão autorizados. EnrollmentFidoSignOptions: type: object required: - data - links - meta properties: data: type: object description: Objeto que contém as informações necessárias para assinatura com uma credencial FIDO2 previamente registrada. required: - challenge properties: challenge: type: string format: byte description: Sequência de bytes aleatórios gerados pelo servidor FIDO2, codificados em base64. timeout: type: integer format: int32 description: Expiração, em milissegundos, do challenge. rpId: type: string description: Identificador da Relying Party. allowCredentials: type: array items: $ref: '#/components/schemas/FidoPublicKeyCredentialDescriptor' userVerification: type: string example: required, preferred, discouraged extensions: type: object description: Campo de extensão com opções que variam por plataforma. additionalProperties: type: string links: $ref: '#/components/schemas/LinkSingle' meta: $ref: '#/components/schemas/Meta' EnumAccountPaymentsType: type: string enum: - CACC - SVGS - TRAN example: CACC description: | Tipos de contas usadas para pagamento via Pix. Modalidades tradicionais previstas pela Resolução 4.753, não contemplando contas vinculadas, conta de domiciliados no exterior, contas em moedas estrangeiras e conta correspondente moeda eletrônica. Segue descrição de cada valor do ENUM para o escopo do Pix. CACC - Current - Conta Corrente. SVGS - Savings - Conta de Poupança. TRAN - TransactingAccount - Conta de Pagamento pré-paga. EnumEnrollmentPermission: type: string enum: - PAYMENTS_INITIATE example: PAYMENTS_INITIATE description: | Permissões atribuídas ao vínculo de conta: • PAYMENTS_INITIATE: Iniciação de pagamentos sem redirecionamento à detentora. EnumEnrollmentCancelledFrom: type: string enum: - INICIADORA - DETENTORA description: | Campo utilizado para informar o meio pelo qual foi realizado o cancelamento do vínculo de conta. Valores possíveis: INICIADORA - Vínculo de conta nos canais da iniciadora. DETENTORA - Vínculo de conta nos canais da detentora. EnumEnrollmentStatus: type: string enum: - AWAITING_AUTHORISATION - AWAITING_ENROLLMENT - AUTHORISED - REVOKED - REJECTED description: | Status do vínculo de conta: • AWAITING_AUTHORISATION: Vínculo de conta criado e aguando autorização no ambiente da dentora de conta. • AWAITING_ENROLLMENT: Vínculo de conta autorizado no ambiente da detentora e aguardando o vínculo de credenciais (FIDO2). • AUTHORISED: Vínculo de conta pronto para uso. • REVOKED: Vínculo de conta revogado. • REJECTED: Vínculo de conta rejeitado. FidoAuthenticatorSelectionCriteria: type: object description: Restrições adicionais sobre os tipos de autenticadores permitidos para o registro. properties: authenticatorAttachment: type: string description: 'Indica os tipos de autenticadores suportados (ex: Sistema Operacional ou Cross-Platform como uma chave USB)' example: platform, cross-platform requireResidentKey: type: string description: Indica o tipo de "discoverability" da credencial. example: discouraged, preferred, required userVerification: type: boolean description: Indica o requisito de verificação do usuário. FidoRelyingParty: type: object required: - id - name properties: id: type: string description: Identificador único da Relying Party. name: type: string description: Nome amigável da Relying Party para exibição aos usuários. FidoUser: type: object required: - id - name - displayName properties: id: type: string description: Identificador único do usuário sob registro. name: type: string description: Identificador do usuário human-readable. displayName: type: string description: Identificador do usuário para fins de apresentação. FidoPublicKeyCredentialCreationOptions: type: object required: - alg - type properties: alg: type: integer description: Identificador do algoritmo (COSE) example: -7 type: type: string description: Identificador do tipo de credencial. example: public-key FidoPublicKeyCredentialDescriptor: type: object required: - id - type properties: id: type: string description: Identificador único da credencial. type: type: string description: Identificador do tipo de credencial. example: public-key transports: type: array description: Indicação opcional de como o cliente pode se comunicar com o autenticador do dispositivo. items: type: string example: usb, nfc, ble, smart-card, hybrid, internal LoggedUser: type: object description: Usuário (pessoa natural) que encontra-se logado na iniciadora. required: - document properties: document: type: object required: - identification - rel properties: identification: type: string maxLength: 11 description: Número do documento de identificação oficial do usuário. example: '11111111111' pattern: '^\d{11}$' rel: type: string maxLength: 3 description: Tipo do documento de identificação oficial do usuário. example: CPF pattern: '^[A-Z]{3}$' Meta: type: object description: Meta informação referente a API requisitada. required: - requestDateTime properties: requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, timezone UTC(UTC time format).' type: string maxLength: 20 format: date-time example: '2023-07-12T08:30:00Z' LinkSingle: type: object description: Referências para outros recusos da API requisitada. required: - self properties: self: type: string format: uri maxLength: 2000 description: URI completo que gerou a resposta atual. example: 'https://api.banco.com.br/open-banking/api/v1/resource' pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' ResponseError: type: object required: - errors properties: errors: type: array minItems: 1 maxItems: 13 items: type: object required: - code - title - detail properties: code: description: Código de erro específico do endpoint type: string pattern: '[\w\W\s]*' maxLength: 255 title: description: Título legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string pattern: '[\w\W\s]*' maxLength: 2048 meta: type: object description: Meta informações referente à API requisitada. required: - requestDateTime properties: requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, timezone UTC(UTC time format).' type: string maxLength: 20 format: date-time example: '2023-07-12T08:30:00Z' ResponseCreateEnrollment: type: object required: - data - links - meta properties: data: type: object description: Objeto contendo as informações de resposta da criação de vínculo de conta. required: - enrollmentId - creationDateTime - status - statusUpdateDateTime - permissions - expirationDateTime - loggedUser properties: enrollmentId: $ref: '#/components/schemas/enrollmentId' creationDateTime: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: O instante em que o vínculo de conta foi criado no ambiente da detentora. status: $ref: '#/components/schemas/EnumEnrollmentStatus' statusUpdateDateTime: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: O instante em que ocorreu a última alteração de status do vínculo de conta. permissions: type: array minItems: 1 items: $ref: '#/components/schemas/EnumEnrollmentPermission' expirationDateTime: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: O instante de expiração deste vínculo de conta, de acordo com a regulação vigente. loggedUser: $ref: '#/components/schemas/LoggedUser' businessEntity: $ref: '#/components/schemas/BusinessEntity' debtorAccount: $ref: '#/components/schemas/DebtorAccount' links: $ref: '#/components/schemas/LinkSingle' meta: $ref: '#/components/schemas/Meta' ResponseEnrollment: type: object required: - data - links - meta properties: data: type: object description: Objeto que agrupa as informações de qual foi o usuário logado que solicitou o cancelamento do vínculo de conta. required: - enrollmentId - creationDateTime - status - statusUpdateDateTime - permissions - expirationDateTime - loggedUser - dailyLimit - debtorAccount - transactionLimit properties: enrollmentId: $ref: '#/components/schemas/enrollmentId' creationDateTime: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: O instante em que o vínculo de conta foi criado no ambiente da detentora. status: $ref: '#/components/schemas/EnumEnrollmentStatus' statusUpdateDateTime: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: O instante em que ocorreu a última alteração de status do vínculo de conta. permissions: type: array minItems: 1 items: $ref: '#/components/schemas/EnumEnrollmentPermission' expirationDateTime: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: O instante de expiração deste vínculo de conta, de acordo com a regulação vigente. loggedUser: $ref: '#/components/schemas/LoggedUser' businessEntity: $ref: '#/components/schemas/BusinessEntity' debtorAccount: $ref: '#/components/schemas/DebtorAccount' cancellation: type: object required: - cancelledFrom - reason properties: cancelledBy: type: object description: | Informação relacionada ao usuário pagador que solicitou o cancelamento do vínculo de conta. Pode estar ausente em cenários de processos automatizados realizarem o cancelamento do vínculo, por exemplo, por data de expiração. required: - document properties: document: type: object description: Objeto que consolida os dados do documento do usuário que solicitou o cancelamento. required: - identification - rel properties: identification: type: string maxLength: 11 description: Número do documento do usuário responsável pelo cancelamento do vínculo de conta. example: '11111111111' pattern: '^\d{11}$' rel: type: string maxLength: 3 description: Tipo do documento do usuário responsável pelo cancelamento do vínculo de conta. example: CPF pattern: '^[A-Z]{3}$' reason: oneOf: - type: object required: - rejectionReason description: Motivo da rejeição do vínculo de conta. properties: rejectionReason: $ref: '#/components/schemas/EnrollmentRejectionReason' - type: object required: - revocationReason description: Motivo da revogação do vínculo de conta. properties: revocationReason: $ref: '#/components/schemas/EnrollmentRevocationReason' additionalInformation: type: string pattern: '[\w\W\s]*' example: Contrato entre iniciadora e detentora interrompido maxLength: 2048 cancelledFrom: $ref: '#/components/schemas/EnumEnrollmentCancelledFrom' rejectedAt: type: string format: date-time example: '2023-07-12T08:30:00Z' pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' maxLength: 20 description: Instante de rejeição do vínculo de conta no ambiente da detentora. transactionLimit: type: string minLength: 4 maxLength: 19 pattern: '^((\d{1,16}\.\d{2}))$' example: '100000.12' description: | Valor máximo, por transação, admitido para este vínculo de conta. Este limite não garante a autorização de iniciações de pagamento; servindo como referência para a iniciadora evitar a criação de consentimentos de valores tais que, garantidamente, não serão autorizados. dailyLimit: type: string minLength: 4 maxLength: 19 pattern: '^((\d{1,16}\.\d{2}))$' example: '100000.12' description: | Limite diário cumulativo para este vínculo de conta. Este limite não garante a autorização de iniciações de pagamento; servindo como referência para a iniciadora evitar a criação de consentimentos para valores tais que, garantidamente, não serão autorizados. links: $ref: '#/components/schemas/LinkSingle' meta: $ref: '#/components/schemas/Meta' XFapiInteractionId: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' maxLength: 100 description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.' parameters: consentId: name: consentId in: path description: | O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name. Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN seja um identificador de recurso persistente e independente da localização. Considerando a string urn:bancoex:C1DD33123 como exemplo para consentId temos: - o namespace(urn) - o identificador associado ao namespace da instituição transnmissora (bancoex) - o identificador específico dentro do namespace (C1DD33123). Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141). required: true schema: type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 enrollmentId: name: enrollmentId in: path required: true description: | Identificador único do vínculo de conta criado para a iniciação de pagamento solicitada. Deverá ser um URN - Uniform Resource Name. Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN seja um identificador de recurso persistente e independente da localização. Considerando a string urn:bancoex:C1DD33123 como exemplo para consentId temos: - o namespace(urn) - o identificador associado ao namespace da instituição transnmissora (bancoex) - o identificador específico dentro do namespace (C1DD33123). Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141). schema: $ref: '#/components/schemas/enrollmentId' Authorization: name: Authorization in: header description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado required: true schema: type: string pattern: '[\w\W\s]*' maxLength: 2048 xCustomerUserAgent: name: x-customer-user-agent in: header description: Indica o user-agent que o usuário utiliza. required: false schema: type: string pattern: '[\w\W\s]*' minLength: 1 maxLength: 100 xFapiAuthDate: name: x-fapi-auth-date in: header description: 'Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a [RFC7231](https://tools.ietf.org/html/rfc7231).Exemplo: Sun, 10 Sep 2017 19:43:31 UTC' required: false schema: type: string pattern: '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$' minLength: 29 maxLength: 29 xFapiCustomerIpAddress: name: x-fapi-customer-ip-address in: header description: O endereço IP do usuário se estiver atualmente logado com o receptor. required: false schema: type: string pattern: '[\w\W\s]*' minLength: 1 maxLength: 100 xFapiInteractionId: name: x-fapi-interaction-id in: header description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.' required: false schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 XIdempotencyKey: name: x-idempotency-key in: header description: Cabeçalho HTTP personalizado. Identificador de solicitação exclusivo para suportar a idempotência. required: true schema: type: string maxLength: 40 pattern: ^(?!\s)(.*)(\S)$ securitySchemes: OpenId: type: openIdConnect openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration' OAuth2ClientCredentials: type: oauth2 description: | Fluxo OAuth necessário para que a iniciadora possa iniciar pagamentos. Requer o processo de redirecionamento e autenticação do usuário. Apenas pagamentos iniciados pela mesma iniciadora podem ser consultados ou cancelados através de modelo client credentials. flows: clientCredentials: tokenUrl: 'https://authserver.example/token' scopes: payments: Escopo necessário para acesso à API Payment Initiation. OAuth2AuthorizationCode: type: oauth2 description: Fluxo OAuth necessário para que a iniciadora possa iniciar pagamentos. Requer o processo de redirecionamento e autenticação do usuário. flows: authorizationCode: authorizationUrl: 'https://authserver.example/token' tokenUrl: 'https://authserver.example/token' scopes: payments: Escopo necessário para acesso à API Payment Initiation. OAuth2JwtBearer: type: oauth2 description: Fluxo OAuth necessário para emitir um token de acesso a partir da validação de um challenge FIDO2, sem redirecionamento do usuário à detentora. flows: clientCredentials: tokenUrl: 'https://authserver.example/token' scopes: payments: Escopo necessário para acesso à API Payment Initiation. responses: BadRequest: description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' Forbidden: description: O token tem escopo incorreto ou uma política de segurança foi violada content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' InternalServerError: description: Ocorreu um erro no gateway da API ou no microsserviço content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' MethodNotAllowed: description: O consumidor tentou acessar o recurso com um método não suportado content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' NotAcceptable: description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' NotFound: description: O recurso solicitado não existe ou não foi implementado content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' SiteIsOverloaded: description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' TooManyRequests: description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' Retry-After: description: | Cabeçalho que indica o tempo (em segundos) que o cliente deverá aguardar para realizar uma nova tentativa de chamada. Este cabeçalho deverá estar presente quando o código HTTP de retorno for 429 Too many requests. schema: description: | Cabeçalho que indica o tempo (em segundos) que o cliente deverá aguardar para realizar uma nova tentativa de chamada. Este cabeçalho deverá estar presente quando o código HTTP de retorno for 429 Too many requests. type: integer UnprocessableEntityConsentsAuthorization: description: 'A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação.' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseConsentsAuthorization' headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' UnprocessableEntityEnrollment: description: 'A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação.' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseErrorCreateEnrollment' examples: Permissões inválidas: summary: Permissões inválidas value: errors: - code: PERMISSOES_INVALIDAS title: Permissões inválidas detail: 'As permissões associadas ao vínculo de conta não contêm "PAYMENTS_INITIATE" ou contém valores não suportados para esta operação.' meta: requestDateTime: '2023-07-12T08:30:00Z' headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' UnprocessableEntityEnrollmentCancel: description: 'A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação.' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseErrorCancelEnrollment' headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' UnprocessableEntityEnrollmentFidoRegistrationOptions: description: 'A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação.' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseErrorFidoRegistrationOptions' headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' UnprocessableEntityEnrollmentRiskSignals: description: 'A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação.' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseErrorRiskSignals' headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' UnprocessableEntityEnrollmentFidoSignOptions: description: 'A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação.' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseErrorFidoSignOptions' headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' UnprocessableEntityEnrollmentFidoRegistration: description: | A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação. A falha de verificação da credencial FIDO2 deve causar a revogação do vínculo de conta por parte da detentora, uma vez que não é possível reusar um mesmo "challenge" para mais de um registro. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' content: application/jwt: schema: $ref: '#/components/schemas/422ResponseErrorFidoRegistration' Unauthorized: description: Cabeçalho de autenticação ausente/inválido ou token inválido content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' UnsupportedMediaType: description: O formato do payload não é um formato suportado. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' 201EnrollmentsCreated: description: Vínculo de conta criado com sucesso. headers: x-fapi-interaction-id: description: | Um UUID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122. schema: $ref: '#/components/schemas/XFapiInteractionId' content: application/jwt: schema: $ref: '#/components/schemas/ResponseCreateEnrollment' 200EnrollmentsEnrollmentIdRead: description: Dados do vínculo de conta obtidos com sucesso. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' content: application/jwt: schema: $ref: '#/components/schemas/ResponseEnrollment' 204EnrollmentsEnrollmentIdDelete: description: Vínculo de conta revogado com sucesso. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' 204EnrollmentsFidoRegistration: description: Credenciais FIDO2 validadas e associadas ao vínculo de conta. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' 204PaymentsConsentsAuthorized: description: Sinais de risco recebidos com êxito. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' 204EnrollmentsRiskSignals: description: Sinais de risco recebidos com êxito. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' 201EnrollmentFidoRegistrationOptions: description: Dados para criação de uma nova credencial FIDO2. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' content: application/jwt: schema: $ref: '#/components/schemas/EnrollmentFidoRegistrationOptions' 201EnrollmentFidoSignOptions: description: Dados para autenticação a partir de uma credencial FIDO2. headers: x-fapi-interaction-id: $ref: '#/components/headers/xFapiInteractionId' content: application/jwt: schema: $ref: '#/components/schemas/EnrollmentFidoSignOptions'