openapi: 3.0.0 info: title: API Consents - Open Finance Brasil description: | API que trata da criação, consulta e revogação de consentimentos para o Open Finance Brasil Dados cadastrais e transacionais - customer-data. Não possui segregação entre pessoa natural e pessoa jurídica. # Orientações importantes A API Consents trata dos consentimentos exclusivamente para a Dados cadastrais e transacionais do Open Finance Brasil. - As informações da instituição receptora não trafegam na API Consents – a autenticação da receptora se dá através do [DCR](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/17378307/Dynamic+Client+Registration). - Na chamada para a criação do consentimento deve-se utilizar um token gerado via `client_credentials`. - Após o `POST` de criação do consentimento, o `STATUS` devolvido na resposta deverá ser `AWAITING_AUTHORISATION`. - O `STATUS` será alterado para `AUTHORISED` somente após autenticação e confirmação por parte do usuário na instituição transmissora dos dados. - Alteração obrigatória do status `AWAITING_AUTHORISATION` para `REVOKED` após 60 minutos. - Todas as datas trafegadas nesta API seguem o padrão da [RFC3339](https://tools.ietf.org/html/rfc3339) e formato "zulu". - A descrição do fluxo de consentimento encontra-se disponível no [Portal do desenvolvedor](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/17369300/Dados+Cadastrais+e+Transacionais#Fluxo-b%C3%A1sico-de-consentimento). - O arquivo com o mapeamento completo entre `Roles`, `scopes` e `permissions` está disponibilizado no Portal do desenvolvedor, no mesmo item acima - descrição do fluxo de consentimento. - A receptora deve enviar obrigatoriamente, no pedido de criação de consentimento, todas as permissions dos agrupamentos de dados as quais ela deseja consentimento, conforme tabela abaixo: ``` |----------------------|-------------------------------|----------------------------------------------------------| | CATEGORIA DE DADOS | AGRUPAMENTO | PERMISSIONS | |----------------------|-------------------------------|----------------------------------------------------------| | Cadastro | Dados Cadastrais PF | CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Cadastro | Informações complementares PF | CUSTOMERS_PERSONAL_ADITTIONALINFO_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Cadastro | Dados Cadastrais PJ | CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Cadastro | Informações complementares PJ | CUSTOMERS_BUSINESS_ADITTIONALINFO_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Contas | Saldos | ACCOUNTS_READ | | | | ACCOUNTS_BALANCES_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Contas | Limites | ACCOUNTS_READ | | | | ACCOUNTS_OVERDRAFT_LIMITS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Contas | Extratos | ACCOUNTS_READ | | | | ACCOUNTS_TRANSACTIONS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Cartão de Crédito | Limites | CREDIT_CARDS_ACCOUNTS_READ | | | | CREDIT_CARDS_ACCOUNTS_LIMITS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Cartão de Crédito | Transações | CREDIT_CARDS_ACCOUNTS_READ | | | | CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Cartão de Crédito | Faturas | CREDIT_CARDS_ACCOUNTS_READ | | | | CREDIT_CARDS_ACCOUNTS_BILLS_READ | | | | CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Operações de Crédito | Dados do Contrato | LOANS_READ | | | | LOANS_WARRANTIES_READ | | | | LOANS_SCHEDULED_INSTALMENTS_READ | | | | LOANS_PAYMENTS_READ | | | | FINANCINGS_READ | | | | FINANCINGS_WARRANTIES_READ | | | | FINANCINGS_SCHEDULED_INSTALMENTS_READ | | | | FINANCINGS_PAYMENTS_READ | | | | UNARRANGED_ACCOUNTS_OVERDRAFT_READ | | | | UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ | | | | UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ | | | | UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ | | | | INVOICE_FINANCINGS_READ | | | | INVOICE_FINANCINGS_WARRANTIES_READ | | | | INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ | | | | INVOICE_FINANCINGS_PAYMENTS_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| | Investimento | Dados da Operação | BANK_FIXED_INCOMES_READ | | | | CREDIT_FIXED_INCOMES_READ | | | | FUNDS_READ | | | | VARIABLE_INCOMES_READ | | | | TREASURE_TITLES_READ | | | | RESOURCES_READ | |----------------------|-------------------------------|----------------------------------------------------------| ``` - A instituição transmissora deve validar o preenchimento correto desses agrupamentos no momento da geração do consentimento. - Caso a instiuição receptora envie permissões divergentes ao agrupamento especificado na tabela, a transmissora deve rejeitar o pedido da receptora dando retorno HTTP Status Code 400. - A transmissora deve retornar, da lista de permissions requisitadas, apenas o subconjunto de permissions por ela suportada, removendo da lista as permissions de produtos não suportados e retornando HTTP Status Code 201. Caso não restem permissões funcionais, a instituição transmissora deve retornar o erro HTTP Code "422 Unprocessable Entity". - O endpoint `POST /consents/{consentId}/extends` é utilizado para renovação de consentimento ativo do cliente. Ou seja, quando a receptora recebe pedido de renovação de consentimento com status ainda ativo para a transmissora, ela deve requisitar este endpoint. - Apenas consentimentos autorizados (status AUTHORISED) podem ser renovados pelo uso do endpoint `POST /consents/{consentId}/extends`. Essa renovação é feita exclusivamente via backende resulta em: - Alteração do `expirationDateTime` do consentimento vigente; - Persistência de informações para listar histórico de alterações que podem ser acessadas via endpoint `GET /consents/{consentId}/extends`. - A data de expiração `2300-01-01T00:00:00Z` (`expirationDateTime= 2300-01-01T00:00:00Z`) é a representação técnica de um consentimento com prazo de expiração indeterminado. Ou seja, sempre que o cliente escolher prazo indeterminado para expiração de consentimento, a instituição receptora deve preencher `expirationDateTime= 2300-01-01T00:00:00Z` e assim informá-la para à instituição transmissora. De igual forma, a instituição transmissora deve entender e representar consentimento com `expirationDateTime= 2300-01-01T00:00:00Z` como um consentimento com prazo de expiração indeterminado. - Os consentimentos em estado expirado ou cancelado não podem ser renovados sem redirecionamento. Ou seja, não é possível utilizar o endpoint `POST /consents/{consentId}/extends` para consentimentos nesses estados (status REJECTED). A transmissora deve retornar status de erro 422 (`ESTADO_CONSENTIMENTO_INVALIDO`) para requisições que não seguem essa definição. - A renovação de consentimento (`POST /consents/{consentId}/extends`) deve ser possível por apenas um cliente logado. Isso implica que qualquer usuário (`loggedUser`) com permissão para o consentimento associado deve ser capaz de finalizar o fluxo de renovação sem redirecionamento. A transmissora deve retornar status de erro 422 (DEPENDE_MULTIPLA_ALCADA) para requisições que necessitam de múltipla alçada. - Para consentimentos Pessoa Natural apenas o loggedUser criador do consentimento consegue renovar sem redirecionamento (`POST /consents/{consentId}/extends`). A transmissora deve retornar status de erro 403 para requisições que não seguem essa definição. - A renovação de consentimento (`POST /consents/{consentId}/extends`) deve ser possível para consentimento para o qual foi emitido um refresh token opaco. Não deve ser possível quando o consentimento está vinculado a um refresh token do tipo JWT (com prazo não prorrogável). A transmissora deve retornar status de erro 422 (`REFRESH_TOKEN_JWT`) para requisições que não seguem essa definição. - A renovação de consentimento (`POST /consents/{consentId}/extends`) deve ocorrer apenas até o período de 12 meses após a data de requisição (`current_datetime<= expirationDateTime<= current_datetime+12meses`), ou com prazo de expiração indeterminado (`expirationDateTime=2300-01-01T00:00:00Z`). A transmissora deve retornar status de erro 422 (`DATA_EXPIRACAO_INVALIDA`) para requisições que não seguem essa definição. - A renovação de consentimento (`POST /consents/{consentId}/extends`) sempre aumenta a data de expiração final do consentimento em relação à data de expiração vigente. Ou seja, um consentimento com prazo de expiração para 6 meses no futuro não pode ter sua data de expiração alterada para apenas 3 meses no futuro. A transmissora deve retornar status de erro 422 (`DATA_EXPIRACAO_INVALIDA`) para requisições que não seguem essa definição. - A renovação de consentimento ativo do cliente somente poderá ser aceita pela transmissora para um usuário logado na receptora, identificado por seu documento (`loggedUser`; `businessEntity` quando aplicável) e permitido a partir de token de acesso (informado no cabeçalho `Authorization`) conseguido anteriormente durante a criação e confirmação do consentimento vigente. A transmissora deve validar documento fornecido (`loggedUser`; `businessEntity` quando aplicável) e token de acesso para executar a renovação de consentimento. Caso a transmissora detecte que trata-se de acesso inválido por questões de segurança, é esperado status de erro 401 ou 403. - Após a renovação de consentimento (`POST /consents/{consentId}/extends`) a transmissora deve garantir que a data de expiração do refresh token opaco, ao qual o consentimento está associado, seja: - sem expiração: refresh token permanece ativo, desde que o consentimento associado permaneça ativo (status AUTHORIZED); - com expiração: desde que, no mínimo, a nova data de expiração do refreshtoken seja igual à nova data do consentimento. - A lista do payload de resposta do endpoint de histórico de renovações feitas (`GET /consents/{consentId}/extends`) deve ser entregue em ordem decrescente pela data de requisição (`data[].requestDateTime`). Dessa forma, o primeiro item da lista apresentará a mesma data de expiração do consentimento vigente, pois foi a última renovação feita. version: 2.2.0 license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0' contact: name: Governança do Open Finance Brasil - Especificações email: gt-interfaces@openbankingbr.org url: 'https://openbanking-brasil.github.io/areadesenvolvedor/' servers: - url: 'https://api.banco.com.br/open-banking/consents/v2' description: Servidor de Produção - url: 'https://apih.banco.com.br/open-banking/consents/v2' description: Servidor de Homologação tags: - name: Consents description: 'Operações para criação, consulta e revogação do consentimento dado pelo cliente.' paths: /consents: post: tags: - Consents summary: Criar novo pedido de consentimento. operationId: consentsPostConsents description: Método para a criação de um novo consentimento. parameters: - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/xCustomerUserAgent' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateConsent' description: Payload para criação do consentimento. required: true responses: '201': $ref: '#/components/responses/201ConsentsCreated' '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/UnprocessableEntity' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2Security: - consents '/consents/{consentId}': get: tags: - Consents summary: Obter detalhes do consentimento identificado por consentId. operationId: consentsGetConsentsConsentId description: Método para obter detalhes do consentimento identificado por consentId. 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' responses: '200': $ref: '#/components/responses/200ConsentsConsentIdRead' '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' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2Security: - consents delete: tags: - Consents summary: Deletar / Revogar o consentimento identificado por consentId. operationId: consentsDeleteConsentsConsentId description: Método para deletar / revogar o consentimento identificado por consentId. 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' responses: '204': $ref: '#/components/responses/204ConsentsConsentIdDeleted' '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' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2Security: - consents '/consents/{consentId}/extends': get: tags: - Consents summary: Obter detalhes de extensões feitas no consentimento identificado por consentId. operationId: consentsGetConsentsConsentIdExtends description: Método para obter detalhes de extensões consentimento identificado por consentId. parameters: - $ref: '#/components/parameters/ConsentId' - $ref: '#/components/parameters/AuthorizationExtends' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddress' - $ref: '#/components/parameters/xFapiInteractionIdExtends' - $ref: '#/components/parameters/xCustomerUserAgent' responses: '200': $ref: '#/components/responses/200ConsentsConsentIdReadExtends' '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' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2Security: - consents post: tags: - Consents summary: Renovar consentimento identificado por consentId. operationId: consentsPostConsentsConsentIdExtends description: Método para renovar consentimento identificado por consentId, exceto casos com múltiplas alçadas. Nos casos de múltiplas alçadas, a transmissora deve retornar o status 422. parameters: - $ref: '#/components/parameters/ConsentId' - $ref: '#/components/parameters/AuthorizationExtends' - $ref: '#/components/parameters/xFapiAuthDate' - $ref: '#/components/parameters/xFapiCustomerIpAddressExtends' - $ref: '#/components/parameters/xFapiInteractionIdExtends' - $ref: '#/components/parameters/xCustomerUserAgentExtends' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateConsentExtends' description: Payload para renovação do consentimento. required: true responses: '201': $ref: '#/components/responses/201ConsentsCreatedExtends' '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/UnprocessableEntityConsents' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: description: Erro inesperado. content: application/json: schema: $ref: '#/components/schemas/ResponseError' security: - OAuth2AuthorizationCode: - openid - 'consent:consentId' components: schemas: Links: 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@:%_\+.~#?&\/\/=]*)$' first: type: string format: uri maxLength: 2000 description: URI da primeira página que originou essa lista de resultados. Restrição - Obrigatório quando não for a primeira página da resposta 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@:%_\+.~#?&\/\/=]*)$' prev: type: string format: uri maxLength: 2000 description: "URI da página anterior dessa lista de resultados. Restrição - \tObrigatório quando não for a primeira página da resposta" 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@:%_\+.~#?&\/\/=]*)$' next: type: string format: uri maxLength: 2000 description: URI da próxima página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta 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@:%_\+.~#?&\/\/=]*)$' last: type: string format: uri maxLength: 2000 description: URI da última página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta 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@:%_\+.~#?&\/\/=]*)$' Meta: type: object description: Meta informações referente à API requisitada. required: - totalRecords - totalPages - requestDateTime properties: totalRecords: type: integer format: int32 description: Número total de registros no resultado example: 1 totalPages: type: integer format: int32 description: Número total de páginas no resultado example: 1 requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string maxLength: 20 format: date-time example: '2021-05-21T08:30:00Z' CreateConsent: type: object required: - data properties: data: type: object required: - permissions - loggedUser - expirationDateTime properties: loggedUser: $ref: '#/components/schemas/LoggedUser' businessEntity: $ref: '#/components/schemas/BusinessEntity' permissions: type: array items: description: 'Especifica os tipos de permissões de acesso às APIs no escopo do Open Finance Brasil - Dados cadastrais e transacionais, de acordo com os blocos de consentimento fornecidos pelo usuário e necessários ao acesso a cada endpoint das APIs. Esse array não deve ter duplicidade de itens.' type: string enum: - ACCOUNTS_READ - ACCOUNTS_BALANCES_READ - ACCOUNTS_TRANSACTIONS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ - CREDIT_CARDS_ACCOUNTS_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ - CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ - CUSTOMERS_PERSONAL_ADITTIONALINFO_READ - CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ - CUSTOMERS_BUSINESS_ADITTIONALINFO_READ - FINANCINGS_READ - FINANCINGS_SCHEDULED_INSTALMENTS_READ - FINANCINGS_PAYMENTS_READ - FINANCINGS_WARRANTIES_READ - INVOICE_FINANCINGS_READ - INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ - INVOICE_FINANCINGS_PAYMENTS_READ - INVOICE_FINANCINGS_WARRANTIES_READ - LOANS_READ - LOANS_SCHEDULED_INSTALMENTS_READ - LOANS_PAYMENTS_READ - LOANS_WARRANTIES_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ - RESOURCES_READ - BANK_FIXED_INCOMES_READ - CREDIT_FIXED_INCOMES_READ - FUNDS_READ - VARIABLE_INCOMES_READ - TREASURE_TITLES_READ minItems: 1 example: - ACCOUNTS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - RESOURCES_READ expirationDateTime: description: Data e hora de expiração da permissão. De preenchimento obrigatório, reflete a data limite de validade do consentimento. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC (UTC time format). type: string maxLength: 20 format: date-time example: '2021-05-21T08:30:00Z' CreateConsentExtends: type: object required: - data properties: data: type: object required: - permissions - loggedUser - expirationDateTime properties: expirationDateTime: description: Data e hora de expiração da permissão. De preenchimento obrigatório, reflete a data limite de validade do consentimento. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format). Para consentimentos com prazo indeterminado, preencher com valor '2300-01-01T00:00:00Z'. Esse valor deve ser refletido no expirationDateTime do consentimento relacionado. type: string format: date-time 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 example: '2021-05-21T08:30:00Z' loggedUser: $ref: '#/components/schemas/LoggedUserExtends' businessEntity: $ref: '#/components/schemas/BusinessEntityExtends' EnumRejectedBy: type: string description: | Informar usuário responsável pela rejeição. 1. USER usuário 2. ASPSP instituição transmissora 3. TPP instituição receptora enum: - USER - ASPSP - TPP example: USER EnumReasonCode: type: string description: | Define o código da razão pela qual o consentimento foi rejeitado. - CONSENT_EXPIRED – consentimento que ultrapassou o tempo limite para autorização. - CUSTOMER_MANUALLY_REJECTED – cliente efetuou a rejeição do consentimento manualmente através de interação nas instituições participantes. - CUSTOMER_MANUALLY_REVOKED – cliente efetuou a revogação após a autorização do consentimento. - CONSENT_MAX_DATE_REACHED – consentimento que ultrapassou o tempo limite de compartilhamento. - CONSENT_TECHNICAL_ISSUE – consentimento que foi rejeitado devido a um problema técnico que impossibilita seu uso pela instituição receptora, por exemplo: falha associada a troca do AuthCode pelo AccessToken, durante o processo de Hybid Flow. - INTERNAL_SECURITY_REASON – consentimento que foi rejeitado devido as políticas de segurança aplicada pela instituição transmissora. enum: - CONSENT_EXPIRED - CUSTOMER_MANUALLY_REJECTED - CUSTOMER_MANUALLY_REVOKED - CONSENT_MAX_DATE_REACHED - CONSENT_TECHNICAL_ISSUE - INTERNAL_SECURITY_REASON example: CONSENT_EXPIRED RejectedReason: type: object description: Define a razão pela qual o consentimento foi rejeitado. required: - code properties: code: $ref: '#/components/schemas/EnumReasonCode' additionalInformation: type: string description: Contém informações adicionais a critério da transmissora. maxLength: 140 pattern: '[\w\W\s]*' example: Tempo de confirmação da múltipla alçada excedido. ResponseConsent: type: object required: - data properties: data: type: object required: - consentId - creationDateTime - status - statusUpdateDateTime - permissions - expirationDateTime properties: consentId: 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). type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 example: 'urn:bancoex:C1DD33123' creationDateTime: description: 'Data e hora em que o recurso foi criado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format).' type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 status: description: Estado atual do consentimento cadastrado. type: string enum: - AUTHORISED - AWAITING_AUTHORISATION - REJECTED example: AWAITING_AUTHORISATION statusUpdateDateTime: description: 'Data e hora em que o recurso foi atualizado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format).' type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 permissions: type: array minItems: 1 description: 'Especifica os tipos de permissões de acesso às APIs no escopo do Open Finance Brasil - Dados cadastrais e transacionais, de acordo com os blocos de consentimento fornecidos pelo usuário e necessários ao acesso a cada endpoint das APIs. Esse array não deve ter duplicidade de itens.' items: type: string enum: - ACCOUNTS_READ - ACCOUNTS_BALANCES_READ - ACCOUNTS_TRANSACTIONS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ - CREDIT_CARDS_ACCOUNTS_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ - CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ - CUSTOMERS_PERSONAL_ADITTIONALINFO_READ - CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ - CUSTOMERS_BUSINESS_ADITTIONALINFO_READ - FINANCINGS_READ - FINANCINGS_SCHEDULED_INSTALMENTS_READ - FINANCINGS_PAYMENTS_READ - FINANCINGS_WARRANTIES_READ - INVOICE_FINANCINGS_READ - INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ - INVOICE_FINANCINGS_PAYMENTS_READ - INVOICE_FINANCINGS_WARRANTIES_READ - LOANS_READ - LOANS_SCHEDULED_INSTALMENTS_READ - LOANS_PAYMENTS_READ - LOANS_WARRANTIES_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ - RESOURCES_READ - BANK_FIXED_INCOMES_READ - CREDIT_FIXED_INCOMES_READ - FUNDS_READ - VARIABLE_INCOMES_READ - TREASURE_TITLES_READ example: - ACCOUNTS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - RESOURCES_READ expirationDateTime: description: Data e hora de expiração da permissão. De preenchimento obrigatório, reflete a data limite de validade do consentimento. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC (UTC time format). type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' ResponseConsentExtends: type: object required: - data properties: data: type: object required: - consentId - creationDateTime - status - statusUpdateDateTime - permissions properties: consentId: 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). type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 example: 'urn:bancoex:C1DD33123' creationDateTime: description: Data e hora em que o recurso foi criado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format). type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 status: description: Estado atual do consentimento cadastrado. type: string enum: - AUTHORISED - AWAITING_AUTHORISATION - REJECTED example: AWAITING_AUTHORISATION statusUpdateDateTime: description: Data e hora em que o recurso foi atualizado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format). type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 permissions: type: array minItems: 1 description: Especifica os tipos de permissões de acesso às APIs no escopo do Open Finance Brasil - Dados cadastrais e transacionais, de acordo com os blocos de consentimento fornecidos pelo usuário e necessários ao acesso a cada endpoint das APIs. Esse array não deve ter duplicidade de itens. items: type: string enum: - ACCOUNTS_READ - ACCOUNTS_BALANCES_READ - ACCOUNTS_TRANSACTIONS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ - CREDIT_CARDS_ACCOUNTS_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ - CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ - CUSTOMERS_PERSONAL_ADITTIONALINFO_READ - CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ - CUSTOMERS_BUSINESS_ADITTIONALINFO_READ - FINANCINGS_READ - FINANCINGS_SCHEDULED_INSTALMENTS_READ - FINANCINGS_PAYMENTS_READ - FINANCINGS_WARRANTIES_READ - INVOICE_FINANCINGS_READ - INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ - INVOICE_FINANCINGS_PAYMENTS_READ - INVOICE_FINANCINGS_WARRANTIES_READ - LOANS_READ - LOANS_SCHEDULED_INSTALMENTS_READ - LOANS_PAYMENTS_READ - LOANS_WARRANTIES_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ - RESOURCES_READ - BANK_FIXED_INCOMES_READ - CREDIT_FIXED_INCOMES_READ - FUNDS_READ - VARIABLE_INCOMES_READ - TREASURE_TITLES_READ example: - ACCOUNTS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - RESOURCES_READ expirationDateTime: description: | Data e hora de expiração da permissão. Deve ser preenchido caso o consentimento tenha data limite de validade. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format). [Restrição] Aceitar apenas data no futuro em relação à data de requisição. type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' ResponseConsentRead: type: object required: - data properties: data: type: object required: - consentId - creationDateTime - status - statusUpdateDateTime - permissions - expirationDateTime properties: consentId: 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). type: string pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' maxLength: 256 example: 'urn:bancoex:C1DD33123' creationDateTime: description: 'Data e hora em que o recurso foi criado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format).' type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 status: description: Estado atual do consentimento cadastrado. type: string enum: - AUTHORISED - AWAITING_AUTHORISATION - REJECTED example: AWAITING_AUTHORISATION statusUpdateDateTime: description: 'Data e hora em que o recurso foi atualizado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format).' type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 permissions: type: array minItems: 1 description: 'Especifica os tipos de permissões de acesso às APIs no escopo do Open Finance Brasil - Dados cadastrais e transacionais, de acordo com os blocos de consentimento fornecidos pelo usuário e necessários ao acesso a cada endpoint das APIs. Esse array não deve ter duplicidade de itens.' items: type: string enum: - ACCOUNTS_READ - ACCOUNTS_BALANCES_READ - ACCOUNTS_TRANSACTIONS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_READ - CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ - CREDIT_CARDS_ACCOUNTS_LIMITS_READ - CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ - CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ - CUSTOMERS_PERSONAL_ADITTIONALINFO_READ - CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ - CUSTOMERS_BUSINESS_ADITTIONALINFO_READ - FINANCINGS_READ - FINANCINGS_SCHEDULED_INSTALMENTS_READ - FINANCINGS_PAYMENTS_READ - FINANCINGS_WARRANTIES_READ - INVOICE_FINANCINGS_READ - INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ - INVOICE_FINANCINGS_PAYMENTS_READ - INVOICE_FINANCINGS_WARRANTIES_READ - LOANS_READ - LOANS_SCHEDULED_INSTALMENTS_READ - LOANS_PAYMENTS_READ - LOANS_WARRANTIES_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ - UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ - RESOURCES_READ - BANK_FIXED_INCOMES_READ - CREDIT_FIXED_INCOMES_READ - FUNDS_READ - VARIABLE_INCOMES_READ - TREASURE_TITLES_READ example: - ACCOUNTS_READ - ACCOUNTS_OVERDRAFT_LIMITS_READ - RESOURCES_READ expirationDateTime: description: Data e hora de expiração da permissão. De preenchimento obrigatório, reflete a data limite de validade do consentimento. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC (UTC time format). Para consentimentos com prazo indeterminado, é esperado preenchimento com `2300-01-01T00:00:00Z`. type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 rejection: type: object description: Objeto a ser retornado caso o consentimento seja rejeitado. required: - rejectedBy - reason properties: rejectedBy: $ref: '#/components/schemas/EnumRejectedBy' reason: $ref: '#/components/schemas/RejectedReason' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' ResponseConsentReadExtends: type: object required: - data properties: data: type: array minItems: 0 items: type: object required: - loggedUser - requestDateTime properties: expirationDateTime: description: Data e hora de expiração da permissão. De preenchimento obrigatório, reflete a data limite de validade do consentimento. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format), utilizado apenas para consulta de alterações históricas de extensão do consentimento. type: string format: date-time 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 example: '2021-05-21T08:30:00Z' loggedUser: $ref: '#/components/schemas/LoggedUserExtends' requestDateTime: description: Data e hora em que o recurso foi criado. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format). type: string format: date-time example: '2021-05-21T08:30:00Z' maxLength: 20 links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' 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: $ref: '#/components/schemas/Meta' 422ResponseErrorCreateConsent: type: object required: - errors properties: errors: type: array minItems: 1 maxItems: 3 items: type: object required: - code - title - detail properties: code: type: string enum: - DEPENDE_MULTIPLA_ALCADA - REFRESH_TOKEN_JWT - ESTADO_CONSENTIMENTO_INVALIDO - DATA_EXPIRACAO_INVALIDA example: DEPENDE_MULTIPLA_ALCADA description: | Códigos de erros previstos na durante o processo de extensão do consentimento: - DEPENDE_MULTIPLA_ALCADA: Necessário aprovação de múltipla alçada. - REFRESH_TOKEN_JWT: Refresh token não pode ser expandido. - ESTADO_CONSENTIMENTO_INVALIDO: Estado inválido do consentimento. - DATA_EXPIRACAO_INVALIDA: Nova data para expiração do consentimento é inválida. title: type: string maxLength: 255 pattern: '[\w\W\s]*' example: Necessário aprovação de múltipla alçada. description: | Título específico do erro reportado, de acordo com o código enviado: - DEPENDE_MULTIPLA_ALCADA: Necessário aprovação de múltipla alçada. - REFRESH_TOKEN_JWT: Refresh token não pode ser expandido. - ESTADO_CONSENTIMENTO_INVALIDO: Estado inválido do consentimento. - DATA_EXPIRACAO_INVALIDA: Nova data para expiração do consentimento é inválida. detail: type: string maxLength: 2048 pattern: '[\w\W\s]*' example: O consentimento informado não pode ser renovado sem redirecionamento porque depende de múltipla alçada para aprovação. description: | Título específico do erro reportado, de acordo com o código enviado: - DEPENDE_MULTIPLA_ALCADA: O consentimento informado não pode ser renovado sem redirecionamento porque depende de múltipla alçada para aprovação. - REFRESH_TOKEN_JWT: O consentimento informado não pode ser renovado sem redirecionamento porque está vinculado a um refresh token JWT e não pode ter seu prazo de validade alterado. - ESTADO_CONSENTIMENTO_INVALIDO: O consentimento informado não pode ser renovado sem redirecionamento porque está em um estado que não permite a renovação. - DATA_EXPIRACAO_INVALIDA: O consentimento informado não pode ser renovado pois a nova data de expiração não segue a convenção do ecossistema. meta: $ref: '#/components/schemas/Meta' LoggedUser: type: object description: Usuário (pessoa natural) que encontra-se logado na instituição receptora e que iniciará o processo de consentimento para compartilhamento de dados. required: - document properties: document: $ref: '#/components/schemas/LoggedUserDocument' LoggedUserExtends: type: object description: | Usuário (pessoa natural) que encontra-se logado na instituição receptora e que iniciará o processo de consentimento para compartilhamento de dados. Deve ser armazenado como novo usuário logado responsável pela renovação do consentimento atual. required: - document properties: document: $ref: '#/components/schemas/LoggedUserDocument' LoggedUserDocument: 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}$' BusinessEntity: type: object description: 'Titular, pessoa jurídica a quem se referem os dados que são objeto de compartilhamento.' required: - document properties: document: $ref: '#/components/schemas/BusinessEntityDocument' BusinessEntityExtends: type: object description: | Titular, pessoa jurídica a quem se referem os dados que são objeto de compartilhamento. Deve ser informado apenas para casos de consentimento pessoa jurídica. Não precisa ser armazenado separadamente. Para fins de renovação de consentimento, será utilizado apenas para verificação do consentimento vigente, pois é um atributo imutável. required: - document properties: document: $ref: '#/components/schemas/BusinessEntityDocument' BusinessEntityDocument: 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}$' 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: - namespace(urn) - identificador associado ao namespace da instituição transnmissora (bancoex) - 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()+,\-.:=@;$_!*''%\/?#]+$' minLength: 6 maxLength: 256 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]*' minLength: 1 maxLength: 2048 AuthorizationExtends: 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: '[^\s][\w\W\s][^\s]*' minLength: 1 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 xCustomerUserAgentExtends: name: x-customer-user-agent in: header description: Indica o user-agent que o usuário utiliza. required: true 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 xFapiCustomerIpAddressExtends: name: x-fapi-customer-ip-address in: header description: O endereço IP do usuário se estiver atualmente logado com o receptor. required: true 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 xFapiInteractionIdExtends: name: x-fapi-interaction-id in: header description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta.' required: true schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 securitySchemes: OAuth2Security: type: oauth2 flows: clientCredentials: tokenUrl: 'https://authserver.example/token' scopes: consents: Criação do consentimento. OAuth2AuthorizationCode: type: oauth2 description: Fluxo OAuthnecessário para que a receptora tenha acesso aos endpoints de consentimento na instituição transmissora. Requer o processo de redirecionamento e autenticação do usuário. flows: authorizationCode: authorizationUrl: 'https://authserver.example/code' tokenUrl: 'https://authserver.example/token' scopes: openid: Indica que a autorização está sendo realizada utilizando o protocolo definido pela openid. 'consent:consentId': Escopo contendo o identificador único do consentimento criado para compartilhamento de dados solicitada. responses: UnsupportedMediaType: description: O formato do payload não é um formato suportado. content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' 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' 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' GatewayTimeout: description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' InternalServerError: description: Ocorreu um erro no gateway da API ou no microsserviço content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' 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' 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' NotFound: description: O recurso solicitado não existe ou não foi implementado 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' UnprocessableEntity: description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' UnprocessableEntityConsents: description: 'A sintaxe da requisição está correta, mas não foi possível processar as instruções presentes.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/422ResponseErrorCreateConsent' examples: Necessário aprovação de múltipla alçada: summary: Necessário aprovação de múltipla alçada value: errors: - code: DEPENDE_MULTIPLA_ALCADA title: Necessário aprovação de múltipla alçada. detail: 'O consentimento informado não pode ser renovado sem redirecionamento porque depende de múltipla alçada para aprovação' meta: requestDateTime: '2021-05-21T08:30:00Z' totalPages: 1 totalRecords: 1 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' 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: 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 additionalProperties: false meta: type: object description: Meta informações referente a API requisitada. required: - totalRecords - totalPages - requestDateTime properties: totalRecords: type: integer format: int32 description: Número total de registros no resultado example: 1 totalPages: type: integer format: int32 description: Número total de páginas no resultado example: 1 requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string maxLength: 20 format: date-time example: '2021-05-21T08:30:00Z' additionalProperties: false additionalProperties: false 201ConsentsCreated: description: Consentimento criado com sucesso. headers: x-fapi-interaction-id: 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. schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 example: 73cac523-d3ae-2289-b106-330a6218710d content: application/json: schema: $ref: '#/components/schemas/ResponseConsent' 201ConsentsCreatedExtends: description: Renovação do consentimento finalizada com sucesso. headers: x-fapi-interaction-id: 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. schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 example: 73cac523-d3ae-2289-b106-330a6218710d content: application/json: schema: $ref: '#/components/schemas/ResponseConsentExtends' 200ConsentsConsentIdRead: description: Consentimento consultado com sucesso. headers: x-fapi-interaction-id: 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. schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 example: 92cac523-d3ae-2289-b106-330a6218710d content: application/json: schema: $ref: '#/components/schemas/ResponseConsentRead' 200ConsentsConsentIdReadExtends: description: Renovações de consentimento consultado com sucesso. headers: x-fapi-interaction-id: 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. schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 example: 92cac523-d3ae-2289-b106-330a6218710d content: application/json: schema: $ref: '#/components/schemas/ResponseConsentReadExtends' 204ConsentsConsentIdDeleted: description: Consentimento revogado com sucesso. headers: x-fapi-interaction-id: 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. schema: type: string pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' minLength: 1 maxLength: 100 example: 85bac523-d3ae-2289-b106-330a6218710d