diff --git a/swagger-apis/loans/2.1.1-rc.1.yml b/swagger-apis/loans/2.1.1-rc.1.yml new file mode 100644 index 000000000..74f01e849 --- /dev/null +++ b/swagger-apis/loans/2.1.1-rc.1.yml @@ -0,0 +1,1653 @@ +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, 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.1-rc.1 + license: + name: Apache 2.0 + url: 'https://www.apache.org/licenses/LICENSE-2.0' + contact: + name: Governança do Open Finance Brasil – Especificações + email: 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 + - instalmentPeriodicity + - 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. + 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%). + 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: + - 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: Identificador de pagamento de responsabilidade de cada Instituição transmissora. + 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: + - 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. + 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' diff --git a/swagger-apis/loans/index.html b/swagger-apis/loans/index.html index 0e2ce4a15..06aff33cf 100644 --- a/swagger-apis/loans/index.html +++ b/swagger-apis/loans/index.html @@ -54,8 +54,9 @@ {"name": "1.0.4", "url": "./1.0.4.yml"}, {"name": "2.0.0-RC1.0", "url": "./2.0.0-RC1.0.yml"}, {"name": "2.0.0", "url": "./2.0.0.yml"}, - {"name": "2.0.1", "url": "./2.0.1.yml"}], - "urls.primaryName": "2.0.1", // default spec + {"name": "2.0.1", "url": "./2.0.1.yml"}, + {"name": "2.1.1-rc.1", "url": "./2.1.1-rc.1.yml"}], + "urls.primaryName": "2.1.1-rc.1", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[],