openapi: 3.0.0 info: title: API OpenData Unarranged Account Overdraft do Open Finance Brasil​ description: A API descrita neste documento é referente as API Unarranged Account Overdraft da fase OpenData do Open Finance Brasil. version: 1.0.1 contact: url: 'https://servicedesk.openbankingbrasil.org.br/Login.jsp?navLanguage=pt-BR' servers: - url: 'http://api.banco.com.br/open-banking/opendata-unarranged/v1' tags: - name: Unarranged Account Overdraft paths: /personal-unarranged-account-overdraft: get: tags: - Unarranged Account Overdraft summary: Obtém a lista de adiantamento de depositante de Pessoa Natural. description: Obtém a lista de adiantamento de depositante de Pessoa Natural. operationId: getPersonalUnarrangedAccountOverdraft parameters: - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: '200': description: Lista de adiantamento de depositante de pessoa natural obtida com sucesso. content: application/json: schema: $ref: '#/components/schemas/ResponsePersonalUnarrangedAccountOverdraft' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: $ref: '#/components/responses/Default' /business-unarranged-account-overdraft: get: tags: - Unarranged Account Overdraft summary: Obtém a lista de adiantamento de depositante de Pessoa Jurídica. description: Obtém a lista de adiantamento de depositante de Pessoa Jurídica. operationId: getBusinessUnarrangedAccountOverdraft parameters: - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: '200': description: Lista de adiantamento de depositante de pessoa jurídica obtida com sucesso. content: application/json: schema: $ref: '#/components/schemas/ResponseBusinessUnarrangedAccountOverdraft' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' '504': $ref: '#/components/responses/GatewayTimeout' '529': $ref: '#/components/responses/SiteIsOverloaded' default: $ref: '#/components/responses/Default' components: schemas: ApplicationRate: type: object required: - interval - indexer - customers x-regulatory-required: - interval - indexer - customers properties: interval: $ref: '#/components/schemas/ApplicationIntervals' indexer: $ref: '#/components/schemas/Indexer' customers: $ref: '#/components/schemas/Customer' Indexer: type: object x-regulatory-required: - rate properties: rate: type: string pattern: '^\d{1}\.\d{6}$' minLength: 8 maxLength: 8 description: | Percentual que corresponde a mediana da taxa pré fixada cobrada do cliente pela contratação do crédito, no intervalo informado. Ex: 0.087000 = 8,7%. Nos casos de produtos puramente pós fixados, as faixas 1,2, 3 e 4 deverão receber o valor 0.000000 (zero). Nesse caso, o customers/rate deverá ser representado com 1.000000, ou seja, 100%. A apuração pode acontecer com até 6 casas decimais. O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.150000. Este valor representa 15%. O valor 1.000000 representa 100%). example: '0.087000' PriceIntervals: type: string enum: - 1_FAIXA - 2_FAIXA - 3_FAIXA - 4_FAIXA description: | Segundo Normativa nº 32, BCB, de 2020: Distribuição de frequência relativa dos valores de tarifas cobradas dos clientes, de que trata o § 2º do art. 3º da Circular nº 4.015, de 2020, deve dar-se com base em quatro faixas de igual tamanho, com explicitação dos valores sobre a mediana em cada uma dessas faixas. Informando: 1ª faixa, 2ª faixa, 3ª faixa e 4ª faixa example: 1_FAIXA ApplicationIntervals: type: string enum: - 1_FAIXA - 2_FAIXA - 3_FAIXA - 4_FAIXA description: | Faixas para cobrança da taxa efetiva aplicada pela contratação do crédito, no intervalo informado: 1ª faixa, 2ª faixa, 3ª faixa e 4ª faixa. Segundo Normativa nº32 de 2020: 'Distribuição de frequência relativa dos valores de tarifas e taxas de juros cobrados dos clientes, de que trata o § 2º do art. 3º da Circular nº 4.015, de 2020, deve dar-se com base em quatro faixas de igual tamanho, com explicitação dos valores sobre a mediana e o percentual de clientes em cada uma dessas faixas. example: 4_FAIXA ResponseBusinessUnarrangedAccountOverdraft: type: object required: - data - links - meta properties: data: type: array description: Conjunto de informações referente ao produto Adiantamento a Depositantes. minItems: 1 items: $ref: '#/components/schemas/BusinessUnarrangedAccountOverdraftData' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' BusinessUnarrangedAccountOverdraftData: type: object required: - fees - termsConditions x-regulatory-required: - termsConditions properties: participant: $ref: '#/components/schemas/Participant' fees: $ref: '#/components/schemas/BusinessUnarrangedAccountOverdraftFee' interestRates: type: array maxItems: 20 items: $ref: '#/components/schemas/UnarrangedAccountOverdraftRate' minItems: 1 description: Lista que traz o conjunto de informações necessárias para demonstrar a distribuição de frequências das taxas de juros remuneratórios da Modalidade de crédito termsConditions: type: string pattern: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 2000 description: Campo aberto para informar as condições contratuais relativas à Modalidade de Adiantamento a depositante para pessoa natural. Pode ser informada a URL referente ao endereço onde constam as condições informadas. Endereço eletrônico de acesso ao canal. example: 'https://empresaa1.com/business_unarranged_account_overdraft' BusinessUnarrangedAccountOverdraftFee: type: object description: Objeto que reúne informações de tarifas de serviços. properties: services: type: array items: $ref: '#/components/schemas/UnarrangedAccountOverdraftService' minItems: 1 maxItems: 31 description: Lista das Tarifas cobradas sobre Serviços Prioritários UnarrangedAccountOverdraftService: type: object required: - name - code - chargingTriggerInfo - prices - minimum - maximum x-regulatory-required: - name - code - chargingTriggerInfo properties: name: type: string enum: - CONCESSAO_ADIANTAMENTO_DEPOSITANTE default: CONCESSAO_ADIANTAMENTO_DEPOSITANTE description: 'Nome da Tarifa cobrada sobre Serviço que incide sobre Adiantamento a depositante, para pessoa jurídica.' example: CONCESSAO_ADIANTAMENTO_DEPOSITANTE code: type: string enum: - ADIANT_DEPOSITANTE default: ADIANT_DEPOSITANTE description: 'Sigla de identificação do serviço relacionado à Modalidade de Adiantamento a depositante, para pessoa jurídica.' example: ADIANT_DEPOSITANTE chargingTriggerInfo: type: string maxLength: 2000 pattern: '^(?!\s)[\w\W\s]*[^\s]$' description: 'Fato gerador de cobrança que incide sobre a Modalidade de Adiantamento a depositante informada, para pessoa jurídica.' example: Excesso no limite do cheque especial prices: type: array items: $ref: '#/components/schemas/Price' minItems: 4 maxItems: 4 description: lista das faixas dos valores de tarfas cobradas minimum: $ref: '#/components/schemas/MinimumPrice' maximum: $ref: '#/components/schemas/MaximumPrice' example: name: CONCESSAO_ADIANTAMENTO_DEPOSITANTE code: ADIANT_DEPOSITANTE chargingTriggerInfo: Levantamento de informações e avaliação de viabilidade e de riscos para a concessão de crédito em caráter emergencial para cobertura de saldo devedor em conta de depósitos à vista e de excesso sobre o limite previamente pactuado de cheque especial, cobrada no máximo uma vez nos últimos trinta dias prices: - interval: 1_FAIXA value: "500.00" currency: BRL customers: rate: "0.150000" - interval: 2_FAIXA value: "860.00" currency: BRL customers: rate: "0.350000" - interval: 3_FAIXA value: "1090.40" currency: "BRL" customers: rate: "0.200000" - interval: 4_FAIXA value: "2100.00" currency: BRL customers: rate: "0.300000" minimum: value: "430.00" currency: "BRL" maximum: value: "2200.00" currency: "BRL" UnarrangedAccountOverdraftRate: description: Tarifas cobradas sobre Serviços ofertados type: object required: - referentialRateIndexer - rate - applications - minimumRate - maximumRate x-regulatory-required: - referentialRateIndexer - rate - minimumRate - maximumRate properties: referentialRateIndexer: $ref: '#/components/schemas/ReferentialRateIndexer' rate: type: string description: | Percentual que representa o indexador Pós selecionado. Ex: 100% da TR = 1.000000 da TR, 90% da TR = 0.9000000. Em casos em que não haja indexador, deve ser selecionado Sem Indexador no campo /referentialRateIndexe e representado o rate de 0.000000 (zero). Em caso em que a taxa é somente Pré fixada, o rate também deverá ser colocado como 0.000000 (zero). A apuração pode acontecer com até 6 casas decimais. O preenchimento deve respeitar as 6 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem - Ex: 0.150000 = 15%. O valor 1.000000 representa 100%). pattern: '^\d{1}\.\d{6}$' minLength: 8 maxLength: 8 example: '0.150000' applications: description: Lista das faixas de cobrança da taxa efetiva de remuneração. type: array items: $ref: '#/components/schemas/ApplicationRate' minItems: 4 maxItems: 4 minimumRate: type: string description: | Percentual mínimo cobrado (taxa efetiva) no mês de referência, para o crédito contratado A apuração pode acontecer com até 4 casas decimais. O preenchimento deve respeitar as 4 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.1500. Este valor representa 15%. O valor 1 representa 100%) pattern: '^\d{1}\.\d{6}$' minLength: 8 maxLength: 8 example: '1.005343' maximumRate: type: string description: | Percentual máximo cobrado (taxa efetiva) no mês de referência, para o crédito contratado A apuração pode acontecer com até 4 casas decimais. O preenchimento deve respeitar as 4 casas decimais, mesmo que venham preenchidas com zeros (representação de porcentagem p.ex: 0.1500. Este valor representa 15%. O valor 1 representa 100%) pattern: '^\d{1}\.\d{6}$' minLength: 8 maxLength: 8 example: '3.005343' example: referentialRateIndexer: "SEM_INDEXADOR_TAXA" rate: "0.650000" applications: - interval: "1_FAIXA" indexer: rate: "0.018700" customers: rate: "0.150000" - interval: "2_FAIXA" indexer: rate: "0.290000" customers: rate: "0.350000" - interval: "3_FAIXA" indexer: rate: "0.360000" customers: rate: "0.200000" - interval: "4_FAIXA" indexer: rate: "0.799000" customers: rate: "0.300000" minimumRate: "0.005600" maximumRate: "0.856500" ResponsePersonalUnarrangedAccountOverdraft: type: object required: - data - links - meta properties: data: type: array description: Conjunto de informações referente ao produto Adiantamento a Depositantes. minItems: 1 items: $ref: '#/components/schemas/PersonalUnarrangedAccountOverdraftData' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' PersonalUnarrangedAccountOverdraftData: type: object required: - fees - termsConditions x-regulatory-required: - termsConditions properties: participant: $ref: '#/components/schemas/Participant' fees: $ref: '#/components/schemas/PersonalUnarrangedAccountOverdraftFee' interestRates: type: array items: $ref: '#/components/schemas/UnarrangedAccountOverdraftRate' minItems: 1 description: Lista que traz o conjunto de informações necessárias para demonstrar a distribuição de frequências das taxas de juros remuneratórios da Modalidade de crédito termsConditions: type: string pattern: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 2000 description: Campo aberto para informar as condições contratuais relativas à Modalidade de Adiantamento a depositante para pessoa natural. Pode ser informada a URL referente ao endereço onde constam as condições informadas. Endereço eletrônico de acesso ao canal. example: 'https://empresaa1.com/personal_unarranged_account_overdraft' Participant: type: object description: Conjunto de informações relativas ao participante do Open Finance que oferta este produto. required: - brand - name - cnpjNumber x-regulatory-required: - brand - name - cnpjNumber - urlComplementaryList properties: brand: type: string pattern: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 80 description: Nome da Marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes. example: "Organização A" name: type: string description: Nome da Instituição, pertencente à marca, responsável pela modalidade de Empréstimos. p.ex.'Empresa da Organização A' maxLength: 80 pattern: '^(?!\s)[\w\W\s]*[^\s]$' example: 'Empresa A1' cnpjNumber: type: string pattern: '^\d{14}$' minLength: 14 maxLength: 14 description: CNPJ example: "50685362000135" urlComplementaryList: type: string pattern: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 1024 description: | URL do link que conterá a lista complementar com os nomes e CNPJs agrupados sob o mesmo cnpjNumber. Os contidos nessa lista possuem as mesmas características para produtos e serviços. Endereço eletrônico de acesso ao canal. Será obrigatoriamente preenchido se houver lista complementar com os nomes e CNPJs a ser disponibilizada. Restrição: Será obrigatorimente preenchido se houver lista complementar com os nomes e CNPJs a ser disponibilizada example: 'https://empresadaorganizacaoa.com/complementarylist' PersonalUnarrangedAccountOverdraftFee: type: object description: Objeto que reúne informações de tarifas de serviços. properties: priorityServices: type: array description: Lista das Tarifas cobradas sobre Serviços Prioritários items: $ref: '#/components/schemas/UnarrangedAccountOverdraftService' maxItems: 20 minItems: 1 Price: type: object required: - interval - value - currency - customers x-regulatory-required: - interval - value - currency - customers properties: interval: $ref: '#/components/schemas/PriceIntervals' value: type: string pattern: '^(\d{1,9}\.\d{2}){1}$' minLength: 4 maxLength: 12 x-cds-type: AmountString description: | Valor da mediana de cada faixa relativa ao serviço ofertado, informado no período, conforme Res nº 32 BCB, 2020. p.ex. '45.00' (representa um valor monetário. p.ex: 1547368.92. Este valor, considerando que a moeda seja BRL, significa R$ 1.547.368,92. O único separador presente deve ser o '.' (ponto) para indicar a casa decimal. Não deve haver separador de milhar). Observação: Para efeito de comparação de taxas dos produtos, as instituições participantes, quando não cobram tarifas, devem enviar o valor 0.00 sinalizando que para aquela taxa não há cobrança pelo serviço. example: '2000.00' currency: $ref: '#/components/schemas/Currency' customers: $ref: '#/components/schemas/Customer' MinimumPrice: type: object required: - value - currency x-regulatory-required: - value - currency properties: value: type: string pattern: '^(\d{1,9}\.\d{2}){1}$' minLength: 4 maxLength: 12 x-cds-type: AmountString description: | Valor mínimo apurado para a tarifa de serviços sobre a base de clientes no mês de referência. Observação: Para efeito de comparação de taxas dos produtos, as instituições participantes, quando não cobram tarifas, devem enviar o valor 0.00 sinalizando que para aquela taxa não há cobrança pelo serviço. example: '1350.00' currency: $ref: "#/components/schemas/Currency" MaximumPrice: type: object required: - value - currency x-regulatory-required: - value - currency properties: value: type: string pattern: '^(\d{1,9}\.\d{2}){1}$' minLength: 4 maxLength: 12 x-cds-type: AmountString description: | Valor máximo apurado para a tarifa de serviços sobre a base de clientes no mês de referência. Observação: Para efeito de comparação de taxas dos produtos, as instituições participantes, quando não cobram tarifas, devem enviar o valor 0.00 sinalizando que para aquela taxa não há cobrança pelo serviço. example: '8800.00' currency: $ref: "#/components/schemas/Currency" Customer: type: object description: Informações relevantes para o cliente. required: - rate x-regulatory-required: - rate properties: rate: type: string description: | Percentual de clientes em cada faixa. pattern: '^\d{1}\.\d{6}$' example: '0.150000' minLength: 8 maxLength: 8 Currency: type: string pattern: '^(\w{3}){1}$' minLength: 3 maxLength: 3 x-cds-type: CurrencyString description: 'Moeda referente ao valor mínimo da Tarifa, segundo modelo ISO-4217' example: BRL ReferentialRateIndexer: type: string description: | Tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040 enum: - SEM_INDEXADOR_TAXA - PRE_FIXADO - POS_FIXADO_TR_TBF - POS_FIXADO_TJLP - POS_FIXADO_LIBOR - POS_FIXADO_TLP - OUTRAS_TAXAS_POS_FIXADAS - FLUTUANTES_CDI - FLUTUANTES_SELIC - OUTRAS_TAXAS_FLUTUANTES - INDICES_PRECOS_IGPM - INDICES_PRECOS_IPCA - INDICES_PRECOS_IPCC - OUTROS_INDICES_PRECO - CREDITO_RURAL_TCR_PRE - CREDITO_RURAL_TCR_POS - CREDITO_RURAL_TRFC_PRE - CREDITO_RURAL_TRFC_POS - OUTROS_INDEXADORES example: 'SEM_INDEXADOR_TAXA' Links: type: object description: Referências para outros recursos da API requisitada. properties: self: type: string format: url minLength: 5 maxLength: 2000 description: URL da página atualmente requisitada example: 'https://api.banco.com.br/open-banking/opendata-unarranged/v1/resource' first: type: string format: url minLength: 5 maxLength: 2000 description: URL da primeira página de registros example: 'https://api.banco.com.br/open-banking/opendata-unarranged/v1/resource' prev: type: string format: url minLength: 5 maxLength: 2000 description: URL da página anterior de registros example: 'https://api.banco.com.br/open-banking/opendata-unarranged/v1/resource' next: type: string format: url minLength: 5 maxLength: 2000 description: URL da próxima página de registros example: 'https://api.banco.com.br/open-banking/opendata-unarranged/v1/resource' last: type: string format: url minLength: 5 maxLength: 2000 description: URL da última página de registros example: 'https://api.banco.com.br/open-banking/opendata-unarranged/v1/resource' Meta: type: object description: Meta informações referente à API requisitada. properties: totalRecords: type: integer description: Total de registros encontrados example: 1 totalPages: type: integer description: Total de páginas para os registros encontrados example: 1 required: - totalRecords - totalPages ResponseErrorMetaSingle: 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: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 255 title: description: Título legível por humanos deste erro específico type: string pattern: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string pattern: '^(?!\s)[\w\W\s]*[^\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, formato UTC.' type: string maxLength: 20 format: date-time example: '2021-05-21T08:30:00Z' 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: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 255 title: description: Título legível por humanos deste erro específico type: string pattern: '^(?!\s)[\w\W\s]*[^\s]$' maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string pattern: '^(?!\s)[\w\W\s]*[^\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, formato UTC. type: string format: date-time minLength: 20 maxLength: 20 pattern: '^[2-9]\d{3}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$' example: '2023-10-09T14:10:00Z' securitySchemes: APIKey1: name: API Key type: apiKey in: query APIKey2: name: API Key type: apiKey in: query parameters: page: name: page in: query description: Número da página que está sendo requisitada (o valor da primeira página é 1). schema: type: integer format: int32 default: 1 minimum: 1 maximum: 2147483647 pageSize: name: page-size in: query description: Quantidade total de registros por páginas. schema: type: integer format: int32 default: 25 minimum: 1 maximum: 1000 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' NotFound: description: O recurso solicitado não existe ou não foi implementado. 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' 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' InternalServerError: description: Ocorreu um erro no gateway da API ou no microsserviço. 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' 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/ResponseErrorMetaSingle' Default: description: '\-' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError'