openapi: 3.0.0
info:
title: API Loans - Open Finance Brasil
description: |
API de informações de operações de empréstimos do Open Finance Brasil – Fase 2. API que retorna informações de operações de crédito do tipo empréstimo, mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação, modalidade, número do contrato, tarifas, prazo, prestações, pagamentos(ao menos para os últimos 12 meses), amortizações, garantias, encargos e taxas de juros remuneratórios.
Não possui segregação entre pessoa natural e pessoa jurídica.
Requer consentimento do cliente para todos os `endpoints.`
# Orientações
A `Role` do diretório de participantes relacionada à presente API é a `DADOS`.\
Para todos os `endpoints` desta API é previsto o envio de um `token` através do header `Authorization`.\
Este token deverá estar relacionado ao consentimento (`consentId`) mantido na instituição transmissora dos dados, o qual permitirá a pesquisa e retorno, na API em questão, dos
dados relacionados ao `consentId` específico relacionado.\
Os dados serão devolvidos na consulta desde que o `consentId` relacionado corresponda a um consentimento válido e com o status `AUTHORISED`.\
É também necessário que o recurso em questão (conta, contrato, etc) esteja disponível na instituição transmissora (ou seja, sem boqueios de qualquer natureza e com todas as autorizações/consentimentos já autorizados).\
Além disso as `permissions` necessárias deverão ter sido solicitadas quando da criação do consentimento relacionado (`consentId`).\
Relacionamos a seguir as `permissions` necessárias para a consulta de dados em cada `endpoint` da presente API.
### Observação:
- No endpoint `/contracts/{contratId}/payments` a paginação ocorrerá sob os dados contidos no campo `releases` do tipo lista.
## Permissions necessárias para a API Loans
Para cada um dos paths desta API, além dos escopos (`scopes`) indicados existem `permissions` que deverão ser observadas:
### `/contracts`
- permissions:
- GET: **LOANS_READ**
### `/contracts/{contractId}`
- permissions:
- GET **LOANS_READ**
### `/contracts/{contractId}/warranties`
- permissions:
- GET: **LOANS_WARRANTIES_READ**
### `/contracts/{contractId}/scheduled-instalments`
- permissions:
- GET: **LOANS_SCHEDULED_INSTALMENTS_READ**
### `/contracts/{contractId}/payments`
- permissions:
- GET: **LOANS_PAYMENTS_READ**
version: 2.1.0
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: gt-interfaces@openbankingbr.org
url: 'https://openbanking-brasil.github.io/areadesenvolvedor/'
servers:
- url: 'https://api.banco.com.br/open-banking/loans/v2'
description: Servidor de Produção
- url: 'https://apih.banco.com.br/open-banking/loans/v2'
description: Servidor de Homologação
tags:
- name: Loans
paths:
/contracts:
get:
tags:
- Loans
summary: Conjunto de informações de contratos de empréstimo mantidos pelo cliente na instituição transmissora e para os quais ele tenha fornecido consentimento
description: Método para obter a lista de contratos de empréstimo mantidos pelo cliente na instituição transmissora e para os quais ele tenha fornecido consentimento
operationId: loansGetContracts
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pagination-key'
responses:
'200':
$ref: '#/components/responses/OKResponseLoansContractList'
'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/UnprocessableEntity'
'423':
$ref: '#/components/responses/Locked'
'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'
security:
- OpenId:
- openid
OAuth2Security:
- 'consent:consentId'
- loans
'/contracts/{contractId}':
get:
tags:
- Loans
summary: Obtém os dados do contrato de empréstimo identificado por contractId
description: Método para obter os dados do contrato de empréstimo identificado por contractId mantido pelo cliente na instituição transmissora
operationId: loansGetContractsContractId
parameters:
- $ref: '#/components/parameters/contractId'
- $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/OKResponseLoansContract'
'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/UnprocessableEntity'
'423':
$ref: '#/components/responses/Locked'
'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'
security:
- OpenId:
- openid
OAuth2Security:
- 'consent:consentId'
- loans
'/contracts/{contractId}/warranties':
get:
tags:
- Loans
summary: Obtém a lista de garantias vinculadas ao contrato de empréstimo identificado por contractId
description: Método para obter a lista de garantias vinculadas ao contrato de empréstimo identificado por contractId mantido pelo cliente na instituição transmissora
operationId: loansGetContractsContractIdWarranties
parameters:
- $ref: '#/components/parameters/contractId'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
- $ref: '#/components/parameters/pagination-key'
responses:
'200':
$ref: '#/components/responses/OKResponseLoansWarranties'
'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/UnprocessableEntity'
'423':
$ref: '#/components/responses/Locked'
'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'
security:
- OpenId:
- openid
OAuth2Security:
- 'consent:consentId'
- loans
'/contracts/{contractId}/scheduled-instalments':
get:
tags:
- Loans
summary: Obtém os dados do cronograma de parcelas do contrato de empréstimo identificado por contractId
description: Método para obter os dados do cronograma de parcelas do contrato de empréstimo identificado por contractId mantido pelo cliente na instituição transmissora
operationId: loansGetContractsContractIdScheduledInstalments
parameters:
- $ref: '#/components/parameters/contractId'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
- $ref: '#/components/parameters/pagination-key'
responses:
'200':
$ref: '#/components/responses/OKResponseLoansInstalments'
'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/UnprocessableEntity'
'423':
$ref: '#/components/responses/Locked'
'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'
security:
- OpenId:
- openid
OAuth2Security:
- 'consent:consentId'
- loans
'/contracts/{contractId}/payments':
get:
tags:
- Loans
summary: Obtém os dados de pagamentos do contrato de empréstimo identificado por contractId
description: Método para obter os dados de pagamentos do contrato de empréstimo identificado por contractId mantido pelo cliente na instituição transmissora
operationId: loansGetContractsContractIdPayments
parameters:
- $ref: '#/components/parameters/contractId'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
- $ref: '#/components/parameters/pagination-key'
responses:
'200':
$ref: '#/components/responses/OKResponseLoansPayments'
'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/UnprocessableEntity'
'423':
$ref: '#/components/responses/Locked'
'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'
security:
- OpenId:
- openid
OAuth2Security:
- 'consent:consentId'
- loans
components:
schemas:
ResponseErrorWithAbleAdditionalProperties:
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'
EnumContractAmortizationScheduled:
type: string
description: |
Sistema de amortização (Vide Enum):
- SAC (Sistema de Amortização Constante) - É aquele em que o valor da amortização permanece igual até o final. Os juros cobrados sobre o parcelamento não entram nesta conta.
- PRICE (Sistema Francês de Amortização) - As parcelas são fixas do início ao fim do contrato. Ou seja, todas as parcelas terão o mesmo valor, desde a primeira até a última. Nos primeiros pagamentos, a maior parte do valor da prestação corresponde aos juros. Ao longo do tempo, a taxa de juros vai decrescendo. Como o valor da prestação é fixo, com o passar das parcelas, o valor de amortização vai aumentando.
- SAM (Sistema de Amortização Misto) - Cada prestação (pagamento) é a média aritmética das prestações respectivas no Sistemas Price e no Sistema de Amortização Constante (SAC).
- SEM SISTEMA DE AMORTIZAÇÃO
enum:
- SAC
- PRICE
- SAM
- SEM_SISTEMA_AMORTIZACAO
- OUTROS
example: SAC
EnumContractCalculation:
type: string
description: Base de cálculo
enum:
- 21/252
- 30/360
- 30/365
example: 21/252
EnumContractFeeCharge:
type: string
description: |
"Forma de cobrança relativa a tarifa pactuada no contrato. (Vide Enum)
- Mínimo
- Máximo
- Fixo
- Percentual"
enum:
- MINIMO
- MAXIMO
- FIXO
- PERCENTUAL
example: MINIMO
EnumContractFeeChargeType:
type: string
description: Tipo de cobrança para a tarifa pactuada no contrato.
enum:
- UNICA
- POR_PARCELA
example: UNICA
EnumContractFinanceChargeType:
type: string
description: Tipo de encargo pactuado no contrato.
enum:
- JUROS_REMUNERATORIOS_POR_ATRASO
- MULTA_ATRASO_PAGAMENTO
- JUROS_MORA_ATRASO
- IOF_CONTRATACAO
- IOF_POR_ATRASO
- SEM_ENCARGO
- OUTROS
example: JUROS_REMUNERATORIOS_POR_ATRASO
EnumContractInstalmentPeriodicity:
type: string
description: |
"Informação relativa à periodicidade regular das parcelas. (Vide Enum)
sem periodicidade regular, semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual"
enum:
- SEM_PERIODICIDADE_REGULAR
- SEMANAL
- QUINZENAL
- MENSAL
- BIMESTRAL
- TRIMESTRAL
- SEMESTRAL
- ANUAL
- OUTROS
example: SEMANAL
EnumContractInterestRateType:
type: string
description: |
"Tipo de Juros (vide Enum)
- SIMPLES (aplicada/cobrada sempre sobre o capital inicial, que é o valor emprestado/investido. Não há cobrança de juros sobre juros acumulados no(s) período(s) anterior(es). Exemplo: em um empréstimo de R$1.000, com taxa de juros simples de 8% a.a., com duração de 2 anos, o total de juros será R$80 no primeiro ano e R$ 80 no segundo ano. Ao final do contrato, o tomador irá devolver o principal e os juros simples de cada ano: R$1.000+R$80+R$80=R$1.160)
- COMPOSTO (para cada período do contrato (diário, mensal, anual etc.), há um “novo capital” para a cobrança da taxa de juros contratada. Esse “novo capital” é a soma do capital e do juro cobrado no período anterior. Exemplo: em um empréstimo de R$1.000, com taxa de juros composta de 8% a.a., com duração de 2 anos, o total de juros será R$80 no primeiro ano. No segundo ano, os juros vão ser somados ao capital (R$1.000 + R$ 80 = R$ 1.080), resultando em juros de R$ 86 (8%de R$ 1.080))"
enum:
- SIMPLES
- COMPOSTO
example: SIMPLES
EnumContractReferentialRateIndexerSubType:
type: string
description: |
"Sub tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040"
enum:
- SEM_SUB_TIPO_INDEXADOR
- PRE_FIXADO
- TR_TBF
- TJLP
- LIBOR
- TLP
- OUTRAS_TAXAS_POS_FIXADAS
- CDI
- SELIC
- OUTRAS_TAXAS_FLUTUANTES
- IGPM
- IPCA
- IPCC
- OUTROS_INDICES_PRECO
- TCR_PRE
- TCR_POS
- TRFC_PRE
- TRFC_POS
- OUTROS_INDEXADORES
example: TJLP
EnumContractReferentialRateIndexerType:
type: string
description: |
"Tipos de taxas referenciais ou indexadores, conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040"
enum:
- SEM_TIPO_INDEXADOR
- PRE_FIXADO
- POS_FIXADO
- FLUTUANTES
- INDICES_PRECOS
- CREDITO_RURAL
- OUTROS_INDEXADORES
example: PRE_FIXADO
EnumContractTaxPeriodicity:
type: string
description: |
"Periodicidade da taxa . (Vide Enum)
a.m - ao mês
a.a. - ao ano"
enum:
- AM
- AA
example: AA
EnumContractTaxType:
type: string
description: |
"Tipo de Taxa (vide Enum)
- NOMINAL (taxa nominal é uma taxa de juros em que a unidade referencial não coincide com a unidade de tempo da capitalização. Ela é sempre fornecida em termos anuais, e seus períodos de capitalização podem ser diários, mensais, trimestrais ou semestrais. p.ex. Uma taxa de 12% ao ano com capitalização mensal)
- EFETIVA (É a taxa de juros em que a unidade referencial coincide com a unidade de tempo da capitalização. Como as unidades de medida de tempo da taxa de juros e dos períodos de capitalização são iguais, usa-se exemplos simples como 1% ao mês, 60% ao ano)"
enum:
- NOMINAL
- EFETIVA
example: EFETIVA
EnumContractProductSubTypeLoans:
type: string
description: 'Sub tipo da modalidades de crédito Empréstimos contratadas, conforme circular 4.015 e descrição do DOC3040 do SCR).'
enum:
- HOME_EQUITY
- CHEQUE_ESPECIAL
- CONTA_GARANTIDA
- CAPITAL_GIRO_TETO_ROTATIVO
- CREDITO_PESSOAL_SEM_CONSIGNACAO
- CREDITO_PESSOAL_COM_CONSIGNACAO
- MICROCREDITO_PRODUTIVO_ORIENTADO
- CAPITAL_GIRO_PRAZO_VENCIMENTO_ATE_365_DIAS
- CAPITAL_GIRO_PRAZO_VENCIMENTO_SUPERIOR_365_DIAS
example: CREDITO_PESSOAL_COM_CONSIGNACAO
EnumContractProductTypeLoans:
type: string
description: 'Tipo da modalidade de crédito contratada, conforme circular 4.015 e descrição do DOC3040 do SCR).'
enum:
- EMPRESTIMOS
example: EMPRESTIMOS
EnumWarrantySubType:
type: string
description: |
Denominação/Identificação do sub tipo da garantia que avaliza a Modalidade da Operação de Crédito contratada (Doc 3040, Anexo 12).
enum:
- ACOES_DEBENTURES
- ACORDOS_COMPENSACAO_LIQUIDACAO_OBRIGACOES
- APLICACOES_FINANCEIRAS_RENDA_FIXA
- APLICACOES_FINANCEIRAS_RENDA_VARIAVEL
- APOLICES_CREDITO_EXPORTACAO
- CCR_CONVENIO_CREDITOS_RECIPROCOS
- CHEQUES
- CIVIL
- DIREITOS_SOBRE_ALUGUEIS
- DEPOSITOS_A_VISTA_A_PRAZO_POUPANCA_OURO_TITULOS_PUBLICOS_FEDERAIS_ART_36
- DEPOSITO_TITULOS_EMITIDOS_ENTIDADES_ART_23
- DUPLICATAS
- EMD_ENTIDADES_MULTILATERAIS_DESENVOLVIMENTO_ART_37
- EQUIPAMENTOS
- ESTADUAL_OU_DISTRITAL
- FATURA_CARTAO_CREDITO
- FEDERAL
- FCVS_FUNDO_COMPENSACAO_VARIACOES_SALARIAIS
- FGI_FUNDO_GARANTIDOR_INVESTIMENTOS
- FGPC_FUNDO_GARANTIA_PROMOCAO_COMPETIT
- FGTS_FUNDO_GARANTIA_TEMPO_SERVICO
- FUNDO_GARANTIDOR_AVAL
- GARANTIA_PRESTADA_FGPC_LEI_9531_ART_37
- GARANTIA_PRESTADA_FUNDOS_QUAISQUER_OUTROS_MECANISMOS_COBERTURA_RISCO_CREDITO_ART_37
- GARANTIA_PRESTADA_TESOURO_NACIONAL_OU_BACEN_ART_37_BENS_DIREITOS_INTEGRANTES_PATRIMONIO_AFETACAO
- IMOVEIS
- IMOVEIS_RESIDENCIAIS
- MITIGADORAS
- MUNICIPAL
- NAO_MITIGADORAS
- NOTAS_PROMISSORIAS_OUTROS_DIREITOS_CREDITO
- OUTRAS
- OUTROS
- OUTROS_BENS
- OUTROS_GRAUS
- OUTROS_IMOVEIS
- OUTROS_SEGUROS_ASSEMELHADOS
- PESSOA_FISICA
- PESSOA_FISICA_EXTERIOR
- PESSOA_JURIDICA
- PESSOA_JURIDICA_EXTERIOR
- PRIMEIRO_GRAU_BENS_DIREITOS_INTEGRANTES_PATRIMONIO_AFETACAO
- PRIMEIRO_GRAU_IMOVEIS_RESIDENCIAIS
- PRIMEIRO_GRAU_OUTROS
- PROAGRO
- PRODUTOS_AGROPECUARIOS_COM_WARRANT
- PRODUTOS_AGROPECUARIOS_SEM_WARRANT
- SBCE_SOCIEDADE_BRASILEIRA_CREDITO_EXPORTAÇÃO
- SEGURO_RURAL
- SEM_SUB_TIPO_GARANTIA
- TRIBUTOS_RECEITAS_ORCAMENTARIAS
- VEICULOS
- VEICULOS_AUTOMOTORES
example: NOTAS_PROMISSORIAS_OUTROS_DIREITOS_CREDITO
EnumWarrantyType:
type: string
description: 'Denominação/Identificação do tipo da garantia que avaliza a Modalidade da Operação de Crédito contratada (Doc 3040, Anexo 12)'
enum:
- CESSAO_DIREITOS_CREDITORIOS
- CAUCAO
- PENHOR
- ALIENACAO_FIDUCIARIA
- HIPOTECA
- OPERACOES_GARANTIDAS_PELO_GOVERNO
- OUTRAS_GARANTIAS_NAO_FIDEJUSSORIAS
- SEGUROS_ASSEMELHADOS
- GARANTIA_FIDEJUSSORIA
- BENS_ARRENDADOS
- GARANTIAS_INTERNACIONAIS
- OPERACOES_GARANTIDAS_OUTRAS_ENTIDADES
- ACORDOS_COMPENSACAO
example: CESSAO_DIREITOS_CREDITORIOS
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@:%_\+.~#?&\/\/=]*)$'
LoansBalloonPayment:
type: object
description: Lista que traz as datas de vencimento e valor das parcelas não regulares do contrato da modalidade de crédito consultada.
required:
- dueDate
- amount
properties:
dueDate:
type: string
maxLength: 10
minLength: 2
format: date
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2021-05-21'
description: |
'Data de vencimento da parcela não regular a vencer do contrato da modalidade de crédito consultada, conforme especificação RFC-3339. p.ex. 2014-03-19'
amount:
$ref: '#/components/schemas/LoansBalloonPaymentAmount'
LoansContract:
type: object
description: Conjunto de informações referentes à identificação da operação de crédito de empréstimo
required:
- contractNumber
- ipocCode
- productName
- productType
- productSubType
- contractDate
- contractAmount
- instalmentPeriodicity
- CET
- amortizationScheduled
- interestRates
- contractedFees
- contractedFinanceCharges
properties:
contractNumber:
type: string
maxLength: 100
minLength: 1
pattern: '^\d{1,100}$'
example: '1324926521496'
description: Número do contrato dado pela instituição contratante.
ipocCode:
type: string
maxLength: 67
minLength: 22
pattern: '^\d{22,67}$'
example: '92792126019929279212650822221989319252576'
description: |
Número padronizado do contrato - IPOC (Identificação Padronizada da Operação de Crédito). Segundo DOC 3040, composta por:
- **CNPJ da instituição:** 8 (oito) posições iniciais;
- **Modalidade da operação:** 4 (quatro) posições;
- **Tipo do cliente:** 1 (uma) posição( 1 = pessoa natural - CPF, 2= pessoa jurídica – CNPJ, 3 = pessoa física no exterior, 4 = pessoa jurídica no exterior, 5 = pessoa natural sem CPF e 6 = pessoa jurídica sem CNPJ);
- **Código do cliente:** O número de posições varia conforme o tipo do cliente:
1. Para clientes pessoa física com CPF (tipo de cliente = 1), informar as 11 (onze) posições do CPF;
2. Para clientes pessoa jurídica com CNPJ (tipo de cliente = 2), informar as 8 (oito) posições iniciais do CNPJ;
3. Para os demais clientes (tipos de cliente 3, 4, 5 e 6), informar 14 (catorze) posições com complemento de zeros à esquerda se a identificação tiver tamanho inferior;
- **Código do contrato:** 1 (uma) até 40 (quarenta) posições, sem complemento de caracteres.
productName:
type: string
maxLength: 140
pattern: '[\w\W\s]*'
example: Crédito Pessoal Consignado
description: |
Denominação/Identificação do nome da Modalidade da Operação de Crédito divulgado ao cliente
productType:
$ref: '#/components/schemas/EnumContractProductTypeLoans'
productSubType:
$ref: '#/components/schemas/EnumContractProductSubTypeLoans'
contractDate:
type: string
format: date
maxLength: 10
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2018-01-05'
description: Data de contratação da operação de crédito. Especificação RFC-3339
disbursementDates:
type: array
minItems: 1
description: |
Lista que traz as Datas de Desembolso do valor contratado.
items:
type: string
format: date
maxLength: 10
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2018-01-15'
description: |
Data do Desembolso do valor contratado. Especificação RFC-3339.
No caso de uma liberação de recursos feita em D0 mas com referência retroativa feita em D -1, contabilmente a data correta seria D -1.
settlementDate:
type: string
format: date
maxLength: 10
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2018-01-15'
description: |
Data de liquidação da operação.
contractAmount:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
example: '1000.0400'
description: Valor contratado da operação. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais. Nos casos em que não houver este valor explícito no contrato do produto, enviar como 0.00
currency:
type: string
maxLength: 3
pattern: '^(\w{3}){1}$'
example: BRL
description: |
Moeda referente ao valor da garantia, segundo modelo ISO-4217. p.ex. 'BRL'
Todos os valores monetários informados estão representados com a moeda vigente do Brasil
dueDate:
type: string
format: date
maxLength: 10
minLength: 2
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2028-01-15'
description: |
Data de vencimento Final da operação. Especificação RFC-3339.
Informação deve ser enviada caso ela exista.
instalmentPeriodicity:
$ref: '#/components/schemas/EnumContractInstalmentPeriodicity'
instalmentPeriodicityAdditionalInfo:
type: string
pattern: '[\w\W\s]*'
maxLength: 50
example: Informações adicionais sobre periodicidade
description: |
Campo obrigatório para complementar a informação relativa à periodicidade de pagamento regular quando tiver a opção OUTROS.
firstInstalmentDueDate:
type: string
format: date
maxLength: 10
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2018-02-15'
description: |
Data de vencimento primeira parcela do principal.
Informação deve ser enviada caso ela exista.
CET:
type: string
pattern: '^\d{1,2}\.\d{6}$'
format: double
maxLength: 9
minLength: 8
example: '0.290000'
description: |
CET – Custo Efetivo Total deve ser expresso na forma de taxa percentual anual e incorpora todos os encargos e despesas incidentes nas operações de crédito (taxa de juro, mas também tarifas, tributos, seguros e outras despesas cobradas).
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 representa 100%).
Para o público PF (pessoa física) o campo é de envio obrigatório para contratos firmados a partir de 2008, conforme Resolução CMN 3.517. Para o público PJ (pessoa jurídica) o campo é de envio obrigatório para contratos firmados a partir de 2011, conforme Resolução CMN 3.909. O campo poderá ser preenchido com 0.00 em cenários nos quais a casa não tenha a informação de CET (Custo efetivo total) apenas para as exceções listadas abaixo:
- Em contratos anteriores a 2008 (para o público PF);
- Em contratos anteriores a 2011 (para o público PJ);
- Público PJ de médio ou grande porte.
amortizationScheduled:
$ref: '#/components/schemas/EnumContractAmortizationScheduled'
amortizationScheduledAdditionalInfo:
type: string
pattern: '[\w\W\s]*'
maxLength: 200
example: Informações complementares relativa à amortização do tipo 'OUTROS'
description: |
Campo obrigatório para complementar a informação relativa à amortização quando selecionada a opção OUTROS.
cnpjConsignee:
type: string
maxLength: 14
pattern: '^\d{14}$'
example: '60500998000135'
description: |
CNPJ do consignante (CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica).
Deve-se ter apenas os números do CNPJ, sem máscara.
[Restrição] Informação adicional específica para quando o productSubType for igual a CREDITO_PESSOAL_COM_CONSIGNACAO
interestRates:
type: array
description: |
Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito.
Caso o contrato não possua taxas de juros, deve ser compartilhada uma lista vazia. Caso o contrato possua uma taxa de juros com valor 0, deve ser compartilhado um objeto com o valor 0 de forma explícita.
items:
$ref: '#/components/schemas/LoansContractInterestRate'
minItems: 0
contractedFees:
type: array
description: Lista que traz as informações das tarifas pactuadas no contrato.
items:
$ref: '#/components/schemas/LoansContractedFee'
minItems: 0
contractedFinanceCharges:
type: array
description: Lista que traz os encargos pactuados no contrato
items:
$ref: '#/components/schemas/LoansFinanceCharge'
minItems: 0
LoansContractedFee:
type: object
description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito
required:
- feeName
- feeCode
- feeChargeType
- feeCharge
properties:
feeName:
type: string
maxLength: 140
pattern: '[\w\W\s]*'
description: Denominação da Tarifa pactuada
example: Renovação de cadastro
feeCode:
type: string
maxLength: 140
pattern: '[\w\W\s]*'
description: Sigla identificadora da tarifa pactuada
example: CADASTRO
feeChargeType:
$ref: '#/components/schemas/EnumContractFeeChargeType'
feeCharge:
$ref: '#/components/schemas/EnumContractFeeCharge'
feeAmount:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
description: |
Valor monetário da tarifa pactuada no contrato.
[Restrição] Preenchimento obrigatório quando a forma de cobrança for diferente de Percentual.
example: '100000.0400'
feeRate:
type: string
pattern: '^[01]\.\d{6}$'
format: double
maxLength: 8
minLength: 8
description: |
É o valor da tarifa em percentual pactuada no contrato.
[Restrição] Preenchimento obrigatório quando a forma de cobrança for Percentual.
example: '0.062000'
LoansContractInterestRate:
type: object
description: Objeto que traz o conjunto de informações necessárias para demonstrar a composição das taxas de juros remuneratórios da Modalidade de crédito
required:
- taxType
- interestRateType
- taxPeriodicity
- calculation
- referentialRateIndexerType
- preFixedRate
- postFixedRate
properties:
taxType:
$ref: '#/components/schemas/EnumContractTaxType'
interestRateType:
$ref: '#/components/schemas/EnumContractInterestRateType'
taxPeriodicity:
$ref: '#/components/schemas/EnumContractTaxPeriodicity'
calculation:
$ref: '#/components/schemas/EnumContractCalculation'
referentialRateIndexerType:
$ref: '#/components/schemas/EnumContractReferentialRateIndexerType'
referentialRateIndexerSubType:
$ref: '#/components/schemas/EnumContractReferentialRateIndexerSubType'
referentialRateIndexerAdditionalInfo:
type: string
description: |
Campo livre para complementar a informação relativa ao Tipo de taxa referencial ou indexador.
[Restrição] Obrigatório para complementar a informação relativa ao Tipo de taxa referencial ou indexador, quando selecionada o tipo ou subtipo OUTRO.
maxLength: 140
pattern: '[\w\W\s]*'
example: Informações adicionais
preFixedRate:
type: string
pattern: '^\d{1,2}\.\d{6}$'
format: double
maxLength: 9
minLength: 8
example: '0.600000'
description: |
Taxa pré fixada aplicada sob o contrato da modalidade crédito. p.ex. 0.014500.
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 representa 100%).
postFixedRate:
type: string
pattern: '^\d{1,2}\.\d{6}$'
format: double
maxLength: 9
minLength: 8
description: |
Taxa pós fixada aplicada sob o contrato da modalidade crédito.
p.ex. 0.0045 .O preenchimento deve respeitar as 6 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%)
example: '0.550000'
additionalInfo:
type: string
maxLength: 1200
pattern: '[\w\W\s]*'
example: Informações adicionais
description: |
Texto com informações adicionais sobre a composição das taxas de juros pactuadas.
[Restrição] Caso a instituição possua a informação para compartilhamento, esta deverá ser informada.
LoansChargeOverParcel:
type: object
required:
- chargeType
- chargeAmount
properties:
chargeType:
$ref: '#/components/schemas/EnumContractFinanceChargeType'
chargeAdditionalInfo:
type: string
pattern: '[\w\W\s]*'
maxLength: 140
example: Informações adicionais
description: |
Campo livre para preenchimento das informações adicionais referente ao encargo.
[Restrição] Obrigatório quando chargeType for igual 'OUTROS'.
chargeAmount:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
example: '1000.0400'
description: Valor do pagamento do encargo pago fora da parcela. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais.
LoansFinanceCharge:
type: object
description: Conjunto de informações referentes à identificação da operação de crédito
required:
- chargeType
properties:
chargeType:
$ref: '#/components/schemas/EnumContractFinanceChargeType'
chargeAdditionalInfo:
type: string
maxLength: 140
description: |
Campo para informações adicionais.
[Restrição] Obrigatório se selecionada a opção 'OUTROS' em Tipo de encargo pactuado no contrato.
pattern: '[\w\W\s]*'
example: Informações adicionais sobre encargos.
chargeRate:
type: string
pattern: '^[01]\.\d{6}$'
format: double
maxLength: 8
minLength: 8
description: |
Representa o valor do encargo em percentual pactuado no contrato.
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 representa 100%).
example: '0.070000'
LoansInstalments:
type: object
description: Conjunto de informações referentes ao prazo remanescente e às parcelas de uma operação de crédito de empréstimos
required:
- dueInstalments
- pastDueInstalments
- typeContractRemaining
- typeNumberOfInstalments
- paidInstalments
properties:
typeNumberOfInstalments:
type: string
description: Tipo de prazo total do contrato referente à modalidade de crédito informada.
enum:
- DIA
- SEMANA
- MES
- ANO
- SEM_PRAZO_TOTAL
example: MES
totalNumberOfInstalments:
type: number
maximum: 999999999
example: 130632
description: |
Prazo Total segundo o tipo (dia, semana, mês, ano) referente à Modalidade de Crédito informada.
[Restrição] Obrigatoriamente deve ser preenchido caso o typeNumberOfInstalments seja diferente de SEM_PRAZO_TOTAL.
typeContractRemaining:
type: string
enum:
- DIA
- SEMANA
- MES
- ANO
- SEM_PRAZO_REMANESCENTE
description: |
Tipo de prazo remanescente do contrato referente à modalidade de crédito informada.
contractRemainingNumber:
type: number
maximum: 999999999
example: 14600
description: |
Prazo Remanescente segundo o tipo (dia, semana, mês, ano) referente à Modalidade de Crédito informada.
[Restrição] Obrigatoriamente deve ser preenchido caso o typeContractRemaining seja diferente de SEM_PRAZO_REMANESCENTE.
paidInstalments:
type: number
description: 'Quantidade de prestações pagas. (No caso de modalidades que não possuam parcelas, o número de prestações é igual a zero)'
maximum: 999
example: 73
dueInstalments:
type: number
maximum: 999
description: 'Quantidade de prestações a vencer.(No caso de modalidades que não possuam parcelas, o número de prestações é igual a zero)'
example: 57
pastDueInstalments:
type: number
maximum: 999
description: 'Quantidade de prestações vencidas. (No caso de modalidades que não possuam parcelas, o número de prestações é igual a zero)'
example: 73
balloonPayments:
type: array
items:
$ref: '#/components/schemas/LoansBalloonPayment'
minItems: 1
description: Lista que traz as datas de vencimento e valor das parcelas não regulares do contrato da modalidade de crédito consultada
LoansListContract:
type: object
description: Conjunto de informações de contratos de empréstimo mantidos pelo cliente na instituição transmissora e para os quais ele tenha fornecido consentimento
required:
- contractId
- brandName
- companyCnpj
- productType
- productSubType
- ipocCode
properties:
contractId:
type: string
pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$'
maxLength: 100
minLength: 1
example: '92792126019929279212650822221989319252576'
description: 'Identifica de forma única o contrato da operação de crédito do cliente, mantendo as regras de imutabilidade dentro da instituição transmissora.'
brandName:
type: string
pattern: '[\w\W\s]*'
maxLength: 80
example: Organização A
description: 'Nome da Marca reportada pelo participante no Open Finance. Recomenda-se utilizar, sempre que possível, o mesmo nome de marca atribuído no campo do diretório Customer Friendly Server Name (Authorisation Server).'
companyCnpj:
type: string
pattern: '\d{14}$'
maxLength: 14
example: '21128159000166'
description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara.'
productType:
$ref: '#/components/schemas/EnumContractProductTypeLoans'
productSubType:
$ref: '#/components/schemas/EnumContractProductSubTypeLoans'
ipocCode:
type: string
maxLength: 67
minLength: 22
pattern: '^\d{22,67}$'
example: '92792126019929279212650822221989319252576'
description: |
Número padronizado do contrato - IPOC (Identificação Padronizada da Operação de Crédito). Segundo DOC 3040, composta por:
- **CNPJ da instituição:** 8 (oito) posições iniciais;
- **Modalidade da operação:** 4 (quatro) posições;
- **Tipo do cliente:** 1 (uma) posição( 1 = pessoa natural - CPF, 2= pessoa jurídica – CNPJ, 3 = pessoa física no exterior, 4 = pessoa jurídica no exterior, 5 = pessoa natural sem CPF e 6 = pessoa jurídica sem CNPJ);
- **Código do cliente:** O número de posições varia conforme o tipo do cliente:
1. Para clientes pessoa física com CPF (tipo de cliente = 1), informar as 11 (onze) posições do CPF;
2. Para clientes pessoa jurídica com CNPJ (tipo de cliente = 2), informar as 8 (oito) posições iniciais do CNPJ;
3. Para os demais clientes (tipos de cliente 3, 4, 5 e 6), informar 14 (catorze) posições com complemento de zeros à esquerda se a identificação tiver tamanho inferior;
- **Código do contrato:** 1 (uma) até 40 (quarenta) posições, sem complemento de caracteres.
LoansPayments:
type: object
description: Conjunto de informações referentes aos pagamentos realizados de uma operação de crédito de empréstimos.
required:
- contractOutstandingBalance
- releases
properties:
paidInstalments:
type: number
maximum: 2147483647
example: 73
description: Quantidade total de parcelas pagas do contrato referente à Modalidade de Crédito informada.
contractOutstandingBalance:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
example: '1000.0400'
description: Valor necessário para o cliente liquidar a dívida.
releases:
type: array
minItems: 0
items:
$ref: '#/components/schemas/LoansReleases'
description: Lista dos pagamentos realizados no período
LoansReleases:
type: object
description: Lista dos pagamentos realizados no período
required:
- paymentId
- isOverParcelPayment
- paidDate
- currency
- paidAmount
properties:
paymentId:
type: string
maxLength: 100
minLength: 1
example: XlthLXpBLVowLTldW2EtekEtWjAtOVwtXXswLDk5fSQ
pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$'
description: Código ou identificador único prestado pela instituição para representar o pagamento individual.
isOverParcelPayment:
type: boolean
example: true
description: Identifica se é um pagamento pactuado (false) ou avulso (true).
instalmentId:
type: string
maxLength: 100
minLength: 1
pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$'
example: WGx0aExYcEJMVm93TFRsZFcyRXRla0V0V2pBdE9Wd3RYWH
description: |
Identificador de parcela, de responsabilidade de cada Instituição transmissora.
[Restrição] Informação de envio obrigatório quando isOverParcelPayment tiver o valor FALSE.
paidDate:
type: string
format: date
maxLength: 10
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2021-05-21'
description: 'Data efetiva do pagamento referente ao contrato da modalidade de crédito consultada, conforme especificação RFC-3339. p.ex. 2014-03-19'
currency:
type: string
maxLength: 3
pattern: '^(\w{3}){1}$'
example: BRL
description: |
Moeda referente ao valor monetário informado, segundo modelo ISO-4217. p.ex. 'BRL'.
Todos os valores monetários informados estão representados com a moeda vigente do Brasil.
paidAmount:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
example: '1000.0400'
description: |
Valor do pagamento referente ao contrato da modalidade de crédito consultada.
Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais.
overParcel:
type: object
description: |
Objeto das tarifas e encargos que foram pagos fora da parcela.
[Restrição] Informação deve ser enviada caso ela exista.
required:
- fees
- charges
properties:
fees:
type: array
minItems: 0
items:
$ref: '#/components/schemas/LoansFeeOverParcel'
description: 'Lista das tarifas que foram pagas fora da parcela, só para pagamento avulso.'
charges:
type: array
minItems: 0
items:
$ref: '#/components/schemas/LoansChargeOverParcel'
description: Lista dos encargos que foram pagos fora da parcela.
LoansFeeOverParcel:
type: object
required:
- feeName
- feeCode
- feeAmount
properties:
feeName:
type: string
maxLength: 140
pattern: '[\w\W\s]*'
example: Reavaliação periódica do bem
description: |
Denominação da Tarifa pactuada.
feeCode:
type: string
maxLength: 140
pattern: '[\w\W\s]*'
example: aval_bem
description: |
Sigla identificadora da tarifa pactuada.
feeAmount:
type: string
pattern: '^-?\d{1,15}\.\d{2,4}$'
maxLength: 21
minLength: 4
example: '100000.0400'
description: |
Valor monetário da tarifa pactuada no contrato.
Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais.
LoansWarranties:
type: object
description: Conjunto de informações referentes à identificação da operação de crédito de empréstimo
required:
- currency
- warrantyAmount
- warrantyType
- warrantySubType
properties:
currency:
type: string
pattern: '^(\w{3}){1}$'
maxLength: 3
description: 'Moeda referente ao valor da garantia, segundo modelo ISO-4217. p.ex. ''BRL''. Todos os valores monetários informados estão representados com a moeda vigente do Brasil'
example: BRL
warrantyType:
$ref: '#/components/schemas/EnumWarrantyType'
warrantySubType:
$ref: '#/components/schemas/EnumWarrantySubType'
warrantyAmount:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
example: '1000.0400'
description: |
Valor original da garantia. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais.
[Restrição] Para casos em que warrantyType for igual a "GARANTIA_FIDEJUSSORIA" o valor da garantia corresponde a uma porcentagem do total garantido.
Dessa forma, os casos de garantia fidejussória para os quais não é possível determinar um valor monetário para a garantia devem ser preenchidos com 0.00.
LoansBalloonPaymentAmount:
type: object
required:
- amount
- currency
description: Valor monetário da parcela não regular a vencer.
properties:
amount:
type: string
format: double
pattern: '^\d{1,15}\.\d{2,4}$'
maxLength: 20
minLength: 4
example: '1000.0400'
description: Valor monetário da parcela não regular a vencer. Expresso em valor monetário com no mínimo 2 casas e no máximo 4 casas decimais.
currency:
type: string
pattern: '^[A-Z]{3}$'
maxLength: 3
description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.'
example: BRL
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'
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, formato UTC.'
type: string
maxLength: 20
format: date-time
example: '2021-05-21T08:30:00Z'
ResponseLoansContractList:
type: object
required:
- data
- links
- meta
properties:
data:
type: array
minItems: 0
description: Conjunto de informações de contratos de empréstimo mantidos pelo cliente na instituição transmissora e para os quais ele tenha fornecido consentimento
items:
$ref: '#/components/schemas/LoansListContract'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/Meta'
ResponseLoansContract:
type: object
required:
- data
- links
- meta
properties:
data:
$ref: '#/components/schemas/LoansContract'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/Meta'
ResponseLoansInstalments:
type: object
required:
- data
- links
- meta
properties:
data:
$ref: '#/components/schemas/LoansInstalments'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/Meta'
ResponseLoansPayments:
type: object
required:
- data
- links
- meta
properties:
data:
$ref: '#/components/schemas/LoansPayments'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/Meta'
ResponseLoansWarranties:
type: object
required:
- data
- links
- meta
properties:
data:
type: array
minItems: 0
description: Conjunto de informações referentes à identificação da operação de crédito de empréstimo
items:
$ref: '#/components/schemas/LoansWarranties'
links:
$ref: '#/components/schemas/Links'
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:
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
contractId:
name: contractId
in: path
description: Identificador do contrato para todos os tipos de operação de crédito.
required: true
schema:
type: string
pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$'
maxLength: 100
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
default: 1
minimum: 1
maximum: 2147483647
format: int32
pageSize:
name: page-size
in: query
description: Quantidade total de registros por páginas.
schema:
type: integer
default: 25
minimum: 1
format: int32
maximum: 1000
pagination-key:
name: pagination-key
in: query
description: 'Identificador de rechamada, utilizado para evitar a contagem de chamadas ao endpoint durante a paginação.'
schema:
type: string
maxLength: 2048
pattern: '[\w\W\s]*'
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
securitySchemes:
OpenId:
type: openIdConnect
openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration'
OAuth2Security:
type: oauth2
description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Requer o processo de redirecionamento e autenticação do usuário a que se referem os dados.
flows:
authorizationCode:
authorizationUrl: 'https://authserver.example/authorization'
tokenUrl: 'https://authserver.example/token'
scopes:
loans: Escopo necessário para acesso à API Loans. O controle dos endpoints específicos é feito via permissions.
responses:
OKResponseLoansContractList:
description: Dados dos contratos de empréstimos obtidos com sucesso.
headers:
x-fapi-interaction-id:
schema:
$ref: '#/components/schemas/XFapiInteractionId'
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseLoansContractList'
OKResponseLoansContract:
description: Dados do contrato de empréstimo identificado por contractId
headers:
x-fapi-interaction-id:
schema:
$ref: '#/components/schemas/XFapiInteractionId'
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseLoansContract'
OKResponseLoansWarranties:
description: Lista de garantias vinculadas ao contrato de empréstimo identificado por contractId
headers:
x-fapi-interaction-id:
schema:
$ref: '#/components/schemas/XFapiInteractionId'
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseLoansWarranties'
OKResponseLoansInstalments:
description: Dados do cronograma de parcelas do contrato de empréstimo identificado por contractId
headers:
x-fapi-interaction-id:
schema:
$ref: '#/components/schemas/XFapiInteractionId'
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseLoansInstalments'
OKResponseLoansPayments:
description: Dados de pagamentos do contrato de empréstimo identificado por contractId
headers:
x-fapi-interaction-id:
schema:
$ref: '#/components/schemas/XFapiInteractionId'
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseLoansPayments'
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/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
InternalServerError:
description: Ocorreu um erro no gateway da API ou no microsserviço
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
Locked:
description: Locked
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
NotFound:
description: O recurso solicitado não existe ou não foi implementado
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
Unauthorized:
description: Cabeçalho de autenticação ausente/inválido ou token inválido
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
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/ResponseErrorWithAbleAdditionalProperties'
Default:
description: Erro inesperado.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties'