diff --git a/deprecated-swagger-components/_bank_fixed_incomes_apis_part.yml b/deprecated-swagger-components/_bank_fixed_incomes_apis_part.yml index 90143b392..7dece5c15 100644 --- a/deprecated-swagger-components/_bank_fixed_incomes_apis_part.yml +++ b/deprecated-swagger-components/_bank_fixed_incomes_apis_part.yml @@ -3,7 +3,7 @@ info: title: API Bank Fixed Incomes - Open Finance Brasil description: | API de informações de operações de Renda Fixa Bancária Open Finance Brasil (Fase 4). API que retorna informações de operações de investimento do tipo Renda Fixa Bancária (CDB/RDB, LCI e LCA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. - version: 1.0.0-rc1.0 + version: 1.0.0-rc2.0 license: name: Apache 2.0 url: "https://www.apache.org/licenses/LICENSE-2.0" @@ -24,9 +24,9 @@ tags: - name: Balances description: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. - name: Transactions - description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. - name: Transactions Current - description: Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6). + description: Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6). paths: /investments: @@ -75,11 +75,10 @@ paths: 'default': $ref: '#/components/responses/DefaultWithAdditionalProperties' security: - - OpenId: - - 'openid' - OAuth2Security: - - 'consent:consentId' - - 'bank-fixed-incomes' + - OAuth2AuthorizationCode: + - openid + - consent:consentId + - bank-fixed-incomes /investments/{investmentId}: get: @@ -125,11 +124,10 @@ paths: 'default': $ref: '#/components/responses/DefaultWithAdditionalProperties' security: - - OpenId: - - 'openid' - OAuth2Security: - - 'consent:consentId' - - 'bank-fixed-incomes' + - OAuth2AuthorizationCode: + - openid + - consent:consentId + - bank-fixed-incomes /investments/{investmentId}/balances: get: @@ -182,19 +180,18 @@ paths: 'default': $ref: '#/components/responses/DefaultWithAdditionalProperties' security: - - OpenId: - - 'openid' - OAuth2Security: - - 'consent:consentId' - - 'bank-fixed-incomes' + - OAuth2AuthorizationCode: + - openid + - consent:consentId + - bank-fixed-incomes /investments/{investmentId}/transactions: get: tags: - Transactions - summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactions - description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. parameters: - $ref: '#/components/parameters/InvestmentId' - $ref: '#/components/parameters/Authorization' @@ -237,19 +234,18 @@ paths: 'default': $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' security: - - OpenId: - - 'openid' - OAuth2Security: - - 'consent:consentId' - - 'bank-fixed-incomes' + - OAuth2AuthorizationCode: + - openid + - consent:consentId + - bank-fixed-incomes /investments/{investmentId}/transactions-current: get: tags: - Transactions Current - summary: Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6). + summary: Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6). operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent - description: Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6). + description: Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6). parameters: - $ref: '#/components/parameters/InvestmentId' - $ref: '#/components/parameters/Authorization' @@ -292,11 +288,10 @@ paths: 'default': $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' security: - - OpenId: - - 'openid' - OAuth2Security: - - 'consent:consentId' - - 'bank-fixed-incomes' + - OAuth2AuthorizationCode: + - openid + - consent:consentId + - bank-fixed-incomes components: schemas: ResponseError: @@ -315,8 +310,8 @@ components: $ref: ./schemas/bank_fixed_incomes_apis/IdentifyProduct.yaml EnumInvestmentType: $ref: ./schemas/bank_fixed_incomes_apis/EnumInvestmentType.yaml - EnumInvestmentsFixedIncomeBankIndexer: - $ref: ./schemas/enum/EnumInvestmentsFixedIncomeBankIndexer.yaml + EnumBankFixedIncomeIndexer: + $ref: ./schemas/bank_fixed_incomes_apis/EnumBankFixedIncomeIndexer.yaml Remuneration: $ref: ./schemas/bank_fixed_incomes_apis/Remuneration.yaml EnumRateType: @@ -344,18 +339,15 @@ components: BalanceAmount: $ref: ./schemas/bank_fixed_incomes_apis/BankFixedIncomesBalancesAmount.yaml securitySchemes: - OpenId: - type: openIdConnect - openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration' - OAuth2Security: + OAuth2AuthorizationCode: 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." + 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" + authorizationUrl: 'https://authserver.example/authorization' + tokenUrl: 'https://authserver.example/token' scopes: - bank_fixed_incomes: "Escopo necessário para acesso à API Bank Fixed Incomes. O controle dos endpoints específicos é feito via permissions." + bank_fixed_incomes: Escopo necessário para acesso à API Bank Fixed Incomes. O controle dos endpoints específicos é feito via permissions. parameters: InvestmentId: $ref: ./parameters/InvestmentId.yaml diff --git a/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/BankFixedIncomesProductMovement.yaml b/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/BankFixedIncomesProductMovement.yaml index 58c05169c..cf6ccf3a7 100644 --- a/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/BankFixedIncomesProductMovement.yaml +++ b/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/BankFixedIncomesProductMovement.yaml @@ -13,7 +13,7 @@ properties: $ref: ./EnumBankFixedIncomeMovementType.yaml transactionType: $ref: ./EnumBankFixedIncomeTransactionType.yaml - typeAdditionalInfo: + trasanctionTypeAdditionalInfo: type: string maxLength: 100 pattern: '[\w\W\s]*' diff --git a/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/EnumBankFixedIncomeIndexer.yaml b/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/EnumBankFixedIncomeIndexer.yaml new file mode 100644 index 000000000..8d802183a --- /dev/null +++ b/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/EnumBankFixedIncomeIndexer.yaml @@ -0,0 +1,16 @@ +type: string +description: Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS) +enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS +example: CDI diff --git a/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/Remuneration.yaml b/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/Remuneration.yaml index ff9f9ca64..a1f89855d 100644 --- a/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/Remuneration.yaml +++ b/deprecated-swagger-components/schemas/bank_fixed_incomes_apis/Remuneration.yaml @@ -39,7 +39,7 @@ properties: calculation: $ref: ./EnumCalculation.yaml indexer: - $ref: ../enum/EnumInvestmentsFixedIncomeBankIndexer.yaml + $ref: ./EnumBankFixedIncomeIndexer.yaml indexerAdditionalInfo: type: string description: | diff --git a/deprecated-swagger-components/schemas/enum/EnumInvestmentsFixedIncomeBankIndexer.yaml b/deprecated-swagger-components/schemas/enum/EnumInvestmentsFixedIncomeBankIndexer.yaml index 34110bcce..26eafc164 100644 --- a/deprecated-swagger-components/schemas/enum/EnumInvestmentsFixedIncomeBankIndexer.yaml +++ b/deprecated-swagger-components/schemas/enum/EnumInvestmentsFixedIncomeBankIndexer.yaml @@ -1,6 +1,6 @@ type: string description: | - – Qualquer operação com taxa mista em CDI, DI, SELIC deverá ser ignorada - serão consideradas apenas taxas sem cupom + – Qualquer operaçrão com taxa mista em CDI, DI, SELIC deverá ser ignorada - serão consideradas apenas taxas sem cupom – No caso do pré-fixado será utilizado apenas o cupom, mesmo que haja outro indexador misturado – No caso de TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC E OUTROS, o cálculo será feito em cima do cupom (mesmo que ele seja zero), desconsiderando as operações que tenham indexador diferente de 100% diff --git a/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv b/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv index b22b33ea0..8dd2e726f 100644 --- a/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv +++ b/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv @@ -11,27 +11,25 @@ /data/netAmount;netAmount;Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR).;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/netAmount/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/netAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/incomeTax;incomeTax;Valor do imposto considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/incomeTax;incomeTax;Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/incomeTax/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/incomeTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/financialTransactionTax;financialTransactionTax;Valor do imposto (IOF) considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/financialTransactionTax;financialTransactionTax;Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/financialTransactionTax/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/financialTransactionTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/blockedBalance;blockedBalance;Valor líquido não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/blockedBalance;blockedBalance;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/blockedBalance/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/blockedBalance/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/purchaseUnitPrice;purchaseUnitPrice;Valor unitário negociado com o cliente na data de aquisição;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/purchaseUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.000004; /data/purchaseUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/preFixedRate;preFixedRate;"Taxa de remuneração acordada com o cliente na contratação. Em casos de produtos progressivos, considerar taxa vigente. 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%). - -[Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. -";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. -";Não permitido;string;0.300000;8 -/data/postFixedIndexerPercentage;postFixedIndexerPercentage;"Percentual do indexador acordado com o cliente na contratação. Em casos de produtos progressivos, considerar taxa vigente. 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%). - -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. -";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. -";Não permitido;string;1.000000;8 +/data/preFixedRate;preFixedRate;"Taxa de remuneração acordada com o cliente na contratação. +Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. +";Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.300000;8 +/data/postFixedIndexerPercentage;postFixedIndexerPercentage;"Percentual do indexador acordado com o cliente na contratação. +Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentage do endpoint /investment/{investmentId}. +";Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;1.000000;8 diff --git a/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv b/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv index 995c530dd..70f0ea459 100644 --- a/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv +++ b/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv @@ -1,16 +1,24 @@ Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; -/data/type;type;"Tipo de movimentação na visão de investimento (entrada ou saída) . (Nos casos de motivo de pagamento ""pagamento de juros"" e ""amortização"", fica convencionado que será considerado que o tipo de movimento será saída).";Texto;;Obrigatório;;"ENTRADA +/data/type;type;"Tipo de movimentação na visão de investimento + +- ENTRADA: APLICACAO, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + +- SAIDA: RESGATE, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + +Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de APLICACAO, considera-se type SAIDA; para cancelamento de RESGATE, considera-se type ENTRADA. +";Texto;;Obrigatório;;"ENTRADA SAIDA";1;1;"";Não permitido;string;ENTRADA; -/data/transactionType;transactionType;Aplicação, resgate, cancelamento, vencimento, pagamento de juros/amortização, transferência de titularidade, transferência de custódia e outros.;Texto;;Obrigatório;;"APLICACAO +/data/transactionType;transactionType;Aplicação, resgate, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título.;Texto;;Obrigatório;;"APLICACAO RESGATE CANCELAMENTO VENCIMENTO -PAGAMENTO_JUROS_AMORTIZACAO +PAGAMENTO_JUROS +AMORTIZACAO TRANSFERENCIA_TITULARIDADE TRANSFERENCIA_CUSTODIA OUTROS";1;1;"";Não permitido;string;APLICACAO; -/data/typeAdditionalInfo;typeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. +/data/transactionTypeAdditionalInfo;transactionTypeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. ";Texto;100;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. @@ -44,10 +52,10 @@ OUTROS";1;1;"";Não permitido;string;APLICACAO; [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;0.300000;3 +";Não permitido;string;0.300000;8 /data/indexerPercentage;indexerPercentage;"Percentual máximo do indexador acordado com o cliente na contratação. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;1.100000;3 +";Não permitido;string;1.100000;8 /data/transactionId;transactionId;Código ou identificador único prestado pela instituição que mantém a representação individual do movimento.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; diff --git a/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv b/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv index 143dd15b3..70f0ea459 100644 --- a/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv +++ b/dictionary/banktFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv @@ -1,16 +1,24 @@ Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; -/data/type;type;"Tipo de movimentação na visão de investimento (entrada ou saída) . (Nos casos de motivo de pagamento ""pagamento de juros"" e ""amortização"", fica convencionado que será considerado que o tipo de movimento será saída).";Texto;;Obrigatório;;"ENTRADA -SAÍDA";1;1;"";Não permitido;string;ENTRADA; -/data/transactionType;transactionType;Aplicação, resgate, cancelamento, vencimento, pagamento de juros/amortização, transferência de titularidade, transferência de custódia e outros.;Texto;;Obrigatório;;"APLICACAO +/data/type;type;"Tipo de movimentação na visão de investimento + +- ENTRADA: APLICACAO, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + +- SAIDA: RESGATE, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + +Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de APLICACAO, considera-se type SAIDA; para cancelamento de RESGATE, considera-se type ENTRADA. +";Texto;;Obrigatório;;"ENTRADA +SAIDA";1;1;"";Não permitido;string;ENTRADA; +/data/transactionType;transactionType;Aplicação, resgate, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título.;Texto;;Obrigatório;;"APLICACAO RESGATE CANCELAMENTO VENCIMENTO -PAGAMENTO_JUROS_AMORTIZACAO +PAGAMENTO_JUROS +AMORTIZACAO TRANSFERENCIA_TITULARIDADE TRANSFERENCIA_CUSTODIA OUTROS";1;1;"";Não permitido;string;APLICACAO; -/data/typeAdditionalInfo;typeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. +/data/transactionTypeAdditionalInfo;transactionTypeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. ";Texto;100;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. @@ -44,10 +52,10 @@ OUTROS";1;1;"";Não permitido;string;APLICACAO; [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;0.300000;3 +";Não permitido;string;0.300000;8 /data/indexerPercentage;indexerPercentage;"Percentual máximo do indexador acordado com o cliente na contratação. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;1.100000;3 +";Não permitido;string;1.100000;8 /data/transactionId;transactionId;Código ou identificador único prestado pela instituição que mantém a representação individual do movimento.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; diff --git a/dictionary/banktFixedIncomesGetInvestmentsInvestmentId_v1.csv b/dictionary/banktFixedIncomesGetInvestmentsInvestmentId_v1.csv index e97fa66d3..443926149 100644 --- a/dictionary/banktFixedIncomesGetInvestmentsInvestmentId_v1.csv +++ b/dictionary/banktFixedIncomesGetInvestmentsInvestmentId_v1.csv @@ -55,6 +55,6 @@ OUTROS";1;1;"";Não permitido;string;CDI; /data/issueUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/dueDate;dueDate;Data de vencimento do título.;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-15;10 /data/issueDate;issueDate;Data de emissão do título.;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-16;10 -/data/clearingCode;clearingCode;Código de registro do ativo na clearing.;Texto;30;Opcional;[\w\W-]*;;0;1;"";Não permitido;string;; +/data/clearingCode;clearingCode;Código de registro do ativo na clearing.;Texto;30;Opcional;[\w\W-]*;;0;1;"";Não permitido;string;CDB421GPXXX; /data/purchaseDate;purchaseDate;Data de aquisição do cliente.;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-15;10 /data/gracePeriodDate;gracePeriodDate;Data até a qual o cliente não poderá resgatar antecipadamente seu investimento.;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-16;10 diff --git a/dictionary/capitalizationBondsGetProducts_v1.csv b/dictionary/capitalizationBondsGetProducts_v1.csv index e28beb520..3c63637dd 100644 --- a/dictionary/capitalizationBondsGetProducts_v1.csv +++ b/dictionary/capitalizationBondsGetProducts_v1.csv @@ -3,7 +3,7 @@ /data/participant;participant;Conjunto de informações relativas ao participante do produto de Open Finance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/participant/brand;brand;Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização; /data/participant/name;name;Nome do participante do Open Finance.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização A1; -/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/participant/urlComplementaryList;urlComplementaryList;"Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; @@ -13,10 +13,10 @@ - Ambos do tipo string; - Ambos obrigatórios. -";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; +";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)|(NA)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; /data/society;society;Conjunto de informações relativas à seguradora do produto de open insurance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/society/name;name;Nome da Sociedade Seguradora.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Society A1; -/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/name;name;Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;ACMEcap; /data/code;code;Código único a ser definido pela sociedade.;Texto;100;Obrigatório;;;1;1;"";Não permitido;string;01234589_cap; /data/modality;modality;"1. Tradicional: A modalidade tradicional tem por objetivo restituir ao titular, ao final do prazo de vigência, no mínimo, o valor total das contribuições efetuadas pelo subscritor, desde que todas as contribuições previstas tenham sido realizadas nas datas programadas. (Res CNSP 384/20) @@ -25,38 +25,43 @@ 4. Popular: A modalidade popular tem por objetivo propiciar a capitalização da contribuição e a participação do titular em sorteios, sem que haja devolução integral do valor pago. (Res CNSP 384/20) 5. Incentivo: A modalidade incentivo tem por objetivo a vinculação a um evento promocional de caráter comercial instituído pelo subscritor para alavancar a venda de seu(s) produto(s) ou serviços ou para fidelizar seus clientes. (Res CNSP 384/20) 6. Filantropia Premiável: A modalidade filantropia premiável é destinada ao subscritor interessado em contribuir com entidades beneficentes de assistências sociais, certificadas nos termos da legislação vigente, e participar de sorteio(s). (Res CNSP 384/20) +7. NA ";Texto;24;Obrigatório;;"TRADICIONAL INSTRUMENTO_GARANTIA COMPRA_PROGRAMADA POPULAR INCENTIVO -FILANTROPIA_PREMIAVEL";1;1;"";Não permitido;string;TRADICIONAL;7 +FILANTROPIA_PREMIAVEL +NA";1;1;"";Não permitido;string;TRADICIONAL;7 /data/costType;costType;"Pagamento efetuado ao subscritor à sociedade de capitalização para aquisição do título de capitalização, podendo ser única, periódica ou mensal. 1. Pagamento Único 2. Pagamento Mensal 3. Pagamento Periódico +4. NA ";Texto;19;Obrigatório;;"PAGAMENTO_UNICO PAGAMENTO_MENSAL -PAGAMENTO_PERIODICO";1;1;"";Não permitido;string;PAGAMENTO_UNICO;15 +PAGAMENTO_PERIODICO +NA";1;1;"";Não permitido;string;PAGAMENTO_UNICO;15 /data/termsAndConditions;termsAndConditions;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22;12 +/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$;;1;1;"";Não permitido;string;15414.622222/2222-22;2 /data/termsAndConditions/detail;detail;Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/quotas;quotas;Informações relativas às taxas da Quotas praticadas para cada Parcela;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/quotas/quota;quota;Número da parcela.;Número;3;Obrigatório;;;1;1;"";Não permitido;number;10; -/data/quotas/capitalizationQuota;capitalizationQuota;Percentual da contribuição destinado à constituição de capital referente ao direito de resgate. (Resolução CNSP 384/20) Em porcentagem(%).;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/quotas/raffleQuota;raffleQuota;Percentual da contribuição destinado a custear os sorteios, se previstos no plano. (Resolução CNSP 384/20) Em porcentagem(%).;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/quotas/chargingQuota;chargingQuota;Percentual da contribuição destinado aos custos de despesas com corretagem, colocação e administração do título de capitalização, emissão, divulgação, lucro da sociedade de capitalização e eventuais despesas relativas ao custeio da contemplação obrigatória e da distribuição de bônus. (Resolução CNSP 384/20) Em porcentagem(%).;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/quotas/capitalizationQuota;capitalizationQuota;Percentual da contribuição destinado à constituição de capital referente ao direito de resgate. (Resolução CNSP 384/20) Em porcentagem(%).;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 +/data/quotas/raffleQuota;raffleQuota;Percentual da contribuição destinado a custear os sorteios, se previstos no plano. (Resolução CNSP 384/20) Em porcentagem(%).;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 +/data/quotas/chargingQuota;chargingQuota;Percentual da contribuição destinado aos custos de despesas com corretagem, colocação e administração do título de capitalização, emissão, divulgação, lucro da sociedade de capitalização e eventuais despesas relativas ao custeio da contemplação obrigatória e da distribuição de bônus. (Resolução CNSP 384/20) Em porcentagem(%).;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/validity;validity;Período entre a data de início e a data final para constituição do capital a ser pago ao(s) titular(es) do direito de resgate. Prazo de vigência do título de capitalização em meses (Resolução CNSP 384/20). Em meses.;Inteiro;3;Opcional;;;0;1;"";Não permitido;integer;48; /data/serieSize;serieSize;Os títulos de capitalização que prevejam sorteio devem ser estruturados em séries, ou seja, em sequências ou em grupos de títulos submetidos às mesmas condições e características, à exceção do valor do pagamento.;Inteiro;10;Opcional;;;0;1;"";Não permitido;integer;5000000; /data/capitalizationPeriod;capitalizationPeriod;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/capitalizationPeriod/interestRate;interestRate;Taxa que remunera a parte da mensalidade destinada a formar o Capital, ou seja, a Provisão Matemática de Resgate, também chamada de saldo de capitalização. Em porcentagem ao mês (% a.m.).;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/capitalizationPeriod/interestRate;interestRate;Taxa que remunera a parte da mensalidade destinada a formar o Capital, ou seja, a Provisão Matemática de Resgate, também chamada de saldo de capitalização. Em porcentagem ao mês (% a.m.).;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/capitalizationPeriod/updateIndex;updateIndex;"Índice utilizado na atualização dos pagamentos mensais (para títulos com mais de 12 meses de vigência) (não aplicável a pagamento único). ";Texto;37;Obrigatório;;"IPCA IGPM INPC TR INDICE_REMUNERACAO_DEPOSITOS_POUPANCA -OUTROS";1;1;"";Não permitido;string;IPCA; +OUTROS +NA";1;1;"";Não permitido;string;IPCA; /data/capitalizationPeriod/updateIndexAdditionalInfo;updateIndexAdditionalInfo;Restrição: Campo obrigatório para complementar a informação quando selecionada a opção 'OUTROS';Texto;200;Opcional;;;0;1;"";Não permitido;string;""; /data/capitalizationPeriod/contributionAmount;contributionAmount;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/capitalizationPeriod/contributionAmount/periodicity;periodicity;"Intervalo de tempo regular previsto entre os sorteios. Conforme os domínios: @@ -71,6 +76,7 @@ OUTROS";1;1;"";Não permitido;string;IPCA; 9. Semestral 10. Anual 11. Outros + 12. NA ";Texto;13;Obrigatório;;"UNICO DIARIO SEMANAL @@ -81,28 +87,29 @@ TRIMESTRAL QUADRIMESTRAL SEMESTRAL ANUAL -OUTROS";1;1;"";Não permitido;string;UNICO; +OUTROS +NA";1;1;"";Não permitido;string;UNICO; /data/capitalizationPeriod/contributionAmount/periodicityAdditionalInfo;periodicityAdditionalInfo;Restrição: Campo obrigatório para complementar a informação quando selecionada a opção 'OUTROS';Texto;200;Opcional;;;0;1;"";Não permitido;string;""; /data/capitalizationPeriod/contributionAmount/minimum;minimum;"Condicional: Quando modalidade for igual 'TRADICIONAL' Valor mínimo correspondente ao pagamento efetuado pelo subscritor à sociedade de capitalização. -";Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;1.2222; +";Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;1.2222; /data/capitalizationPeriod/contributionAmount/maximum;maximum;"Condicional: Quando modalidade for igual 'TRADICIONAL' Valor máximo correspondente ao pagamento efetuado pelo subscritor à sociedade de capitalização. -";Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;1.2222; +";Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;1.2222; /data/capitalizationPeriod/contributionAmount/allowedValue;allowedValue;"Condicional: Quando modalidade for diferente de 'TRADICIONAL' Lista com os valores permitidos de contribuição ao plano. ";Número;;Obrigatório;;;1;1;"";Não permitido;number;5000; /data/capitalizationPeriod/earlyRedemptions;earlyRedemptions;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/capitalizationPeriod/earlyRedemptions/quota;quota;Parcela relativa ao Resgate Antecipado;Número;3;Obrigatório;;;1;1;"";Não permitido;number;10; -/data/capitalizationPeriod/earlyRedemptions/rate;rate;Taxa relativa ao Resgate Antecipado;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/capitalizationPeriod/redemptionPercentageEndTerm;redemptionPercentageEndTerm;Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/capitalizationPeriod/earlyRedemptions/rate;rate;Taxa relativa ao Resgate Antecipado;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 +/data/capitalizationPeriod/redemptionPercentageEndTerm;redemptionPercentageEndTerm;Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/capitalizationPeriod/gracePeriodRedemption;gracePeriodRedemption;Intervalo de tempo mínimo entre contratação e resgate do direito, em meses.;Número;3;Obrigatório;;;1;1;"";Não permitido;number;48; /data/latePayment;latePayment;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/latePayment/suspensionMonths;suspensionMonths;Conforme manual SUSEP: Prazo máximo (contínuo ou intermitente) em meses que o título fica suspenso por atraso de pagamento, antes de ser cancelado (não aplicável a pagamento único).;Número;3;Obrigatório;;;1;1;"";Não permitido;number;10; /data/latePayment/periodExtensionOption;periodExtensionOption;"Alteração do prazo de vigência original, pela suspensão (não aplicável a pagamento único). A considerar os seguintes domínios: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;true; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/contributionPayment;contributionPayment;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/contributionPayment/paymentMethod;paymentMethod;"Meio de Pagamento utilizado para pagamento da contribuição. A considerar os domínios abaixo: 1. Cartão de Crédito @@ -114,6 +121,7 @@ Lista com os valores permitidos de contribuição ao plano. 7. Consignação em Folha de Pagamento 8. Pontos de Programas de Benefício 9. Outros + 10. NA ";Texto;27;Obrigatório;;"CARTAO_CREDITO CARTAO_DEBITO DEBITO_CONTA_CORRENTE @@ -122,7 +130,8 @@ BOLETO_BANCARIO PIX CONSIGNACAO_FOLHA_PAGAMENTO PAGAMENTO_PONTOS -OUTROS";1;1;"";Não permitido;string;CARTAO_CREDITO; +OUTROS +NA";1;1;"";Não permitido;string;CARTAO_CREDITO; /data/contributionPayment/paymentMethodAdditionalInfo;paymentMethodAdditionalInfo;Restrição: Campo obrigatório para complementar a informação quando selecionada a opção 'OUTROS';Texto;200;Opcional;;;0;1;"";Não permitido;string;""; /data/contributionPayment/updateIndex;updateIndex;"Índice utilizado na atualização dos pagamentos mensais (para títulos com mais de 12 meses de vigência) (não aplicável a pagamento único). ";Texto;37;Obrigatório;;"IPCA @@ -130,10 +139,11 @@ IGPM INPC TR INDICE_REMUNERACAO_DEPOSITOS_POUPANCA -OUTROS";1;1;"";Não permitido;string;IPCA; +OUTROS +NA";1;1;"";Não permitido;string;IPCA; /data/contributionPayment/updateIndexAdditionalInfo;updateIndexAdditionalInfo;Restrição: Campo obrigatório para complementar a informação quando selecionada a opção 'OUTROS';Texto;200;Opcional;;;0;1;"";Não permitido;string;""; -/data/redemptionPercentageEndTerm;redemptionPercentageEndTerm;Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/finalRedemptionRate;finalRedemptionRate;Valor percentual (%) de resgate final permitido.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/redemptionPercentageEndTerm;redemptionPercentageEndTerm;Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 +/data/finalRedemptionRate;finalRedemptionRate;Valor percentual (%) de resgate final permitido.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/draws;draws;Informações relativas aos Sorteios;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/draws/timeInterval;timeInterval;"Intervalo de tempo regular previsto entre os sorteios. Conforme os domínios: - UNICO @@ -147,6 +157,7 @@ OUTROS";1;1;"";Não permitido;string;IPCA; - SEMESTRAL - ANUAL - OUTROS + - NA ";Texto;13;Obrigatório;;"UNICO DIÁRIO SEMANAL @@ -157,21 +168,22 @@ TRIMESTRAL QUADRIMESTRAL SEMESTRAL ANUAL -OUTROS";1;1;"";Não permitido;string;UNICO; +OUTROS +NA";1;1;"";Não permitido;string;UNICO; /data/draws/timeIntervalAdditionalInfo;timeIntervalAdditionalInfo;Restrição: Campo obrigatório para complementar a informação quando selecionada a opção 'OUTROS';Texto;200;Opcional;;;0;1;"";Não permitido;string;5; /data/draws/quantity;quantity;Número da quantidade de sorteios previstos ao longo da vigência.;Número;5;Obrigatório;;;1;1;"";Não permitido;number;10000; /data/draws/prizeMultiplier;prizeMultiplier;Valor dos sorteios representado por múltiplo do valor de contribuição. Por exemplo: 5 vezes valor da contribuição;Número;6;Obrigatório;;;1;1;"";Não permitido;number;5; /data/draws/earlySettlementRaffle;earlySettlementRaffle;"Modelo de sorteio que acarreta, ao título contemplado, o seu resgate total obrigatório (Resolução Normativa 384/20). Conforme os domínios: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;true; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/draws/mandatoryContemplation;mandatoryContemplation;"Possibilidade de realização de sorteio com previsão de que o título sorteado seja obrigatoriamente um título comercializado, desde que atingidos os requisitos definidos nas condições gerais do plano. Conforme os domínios: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;true; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/draws/ruleDescription;ruleDescription;Campo aberto para complementar a regra dos sorteios do produto, a ser feita para cada participante.;Texto;200;Opcional;;;0;1;"";Não permitido;string;Sorteios próprios às terças-feiras Toda quarta-feira sorteios através da loteria federal.; -/data/draws/minimumContemplationProbability;minimumContemplationProbability;Número representativo da probabilidade mínima de contemplação nos sorteios, em porcentagem (%).;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/draws/minimumContemplationProbability;minimumContemplationProbability;Número representativo da probabilidade mínima de contemplação nos sorteios, em porcentagem (%).;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/additionalInfo;additionalInfo;Campo aberto (possibilidade de incluir URL) Observação: As URLs são limitadas a 2048 caracteres mas, para o contexto do Open Insurance , foi adotado a metade deste tamanho (1024). tamanho p.ex. ‘https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais.;Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais; /data/minimumRequirementDetails;minimumRequirementDetails;"Campo aberto (possibilidade de incluir URL). Observação: As URLs são limitadas a 2048 caracteres mas, para o contexto do Open Insurance , foi adotado a metade deste tamanho (1024). @@ -182,6 +194,8 @@ tamanho. p.ex. ‘https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_g 1. Pessoa Natural 2. Pessoa Jurídica 3. Ambas (Pessoa Natural e Jurídica) + 4. NA ";Texto;23;Obrigatório;;"PESSOA_NATURAL PESSOA_JURIDICA -PESSOA_NATURAL_JURIDICA";1;1;"";Não permitido;string;PESSOA_NATURAL; +PESSOA_NATURAL_JURIDICA +NA";1;1;"";Não permitido;string;PESSOA_NATURAL; diff --git a/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv b/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv index 2a84a8180..16242f101 100644 --- a/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv +++ b/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdBalances_v1.csv @@ -2,7 +2,7 @@ /data;data;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/referenceDateTime;referenceDateTime;"data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z)";Date Hora;20;Obrigatório;(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$);;1;1;"";Não permitido;string;2022-07-21T17:32:00Z; /data/updatedUnitPrice;updatedUnitPrice;"valor bruto unitário atualizado na data de referência;";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/updatedUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;-1000.0400;4 +/data/updatedUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.0400;4 /data/updatedUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/quantity;quantity;quantidade de títulos detidos na data da posição do cliente;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;15.00;4 /data/grossAmount;grossAmount;valor do investimento que se refere a quantidade x PU atualizado na data de referência;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; @@ -11,35 +11,35 @@ /data/netAmount;netAmount;valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR);Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/netAmount/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/netAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/incomeTax;incomeTax;"Valor do imposto considerando a alíquota vigente na data de referência. -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'tipo da movimentação' for preenchido com o valor 'SAIDA'. -";Objeto;;Obrigatório;;;1;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'tipo da movimentação' for preenchido com o valor 'SAIDA'. -";Não permitido;object;; +/data/incomeTax;incomeTax;"Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. +";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/incomeTax/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/incomeTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/financialTransactionTax;financialTransactionTax;"Valor do imposto considerando a alíquota vigente na data de referência. -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'tipo da movimentação' for preenchido com o valor 'SAIDA'. -";Objeto;;Obrigatório;;;1;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'tipo da movimentação' for preenchido com o valor 'SAIDA'. -";Não permitido;object;; +/data/financialTransactionTax;financialTransactionTax;"Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. +";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/financialTransactionTax/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/financialTransactionTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/blockedBalance;blockedBalance;valor líquido não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros);Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/blockedBalance;blockedBalance;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/blockedBalance/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/blockedBalance/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/purchaseUnitPrice;purchaseUnitPrice;valor unitário negociado com o cliente na data de aquisição;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/purchaseUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.000004;4 /data/purchaseUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/preFixedRate;preFixedRate;"Taxa de remuneração acordada com o cliente na contratação. Em casos de produtos progressivos, considerar taxa vigente. -[Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. -";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. -";Não permitido;string;0.300000; -/data/postFixedIndexerPercentage;postFixedIndexerPercentage;"Percentual do indexador acordado com o cliente na contratação. Em casos de produtos progressivos, considerar taxa vigente. -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. -";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. -";Não permitido;string;1.100000; -/data/fine;fine;valor de multa devido ao atraso do pagamento acordado em contrato;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/preFixedRate;preFixedRate;"Taxa de remuneração acordada com o cliente na contratação. +Em casos de produtos progressivos, considerar taxa vigente. +É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. +";Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.300000;8 +/data/postFixedIndexerPercentage;postFixedIndexerPercentage;"Percentual do indexador acordado com o cliente na contratação. +Em casos de produtos progressivos, considerar taxa vigente. +É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentagedo endpoint /investment/{investmentId}. +";Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;1.100000;8 +/data/fine;fine;"Valor de multa devido ao atraso do pagamento acordado em contrato. +Caso a transmissora possua a informação, o envio deste campo é obrigatório. +";Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/fine/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/fine/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/latePayment;latePayment;valor de mora devido ao atraso do pagamento acordado em contrato;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/latePayment;latePayment;"Valor de mora devido ao atraso do pagamento acordado em contrato. +Caso a transmissora possua a informação, o envio deste campo é obrigatório. +";Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/latePayment/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/latePayment/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; diff --git a/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv b/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv index e65da85cc..ece95901e 100644 --- a/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv +++ b/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv @@ -1,8 +1,15 @@ Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; -/data/type;type;"Tipo de movimentação na visão de investimento (Nos casos de motivo da movimentação ""pagamento de juros"", ""amortização"", ""prêmio"", ""multa"" e ""mora"", fica convencionado que será considerado que o tipo de movimento será saída).";Texto;;Obrigatório;;"ENTRADA +/data/type;type;"Tipo de movimentação na visão de investimento​: + +ENTRADA: COMPRA, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS​. + +SAIDA: VENDA, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, PREMIO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, MULTA, MORA, OUTROS. ​ + +Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de COMPRA, considera-se type SAIDA; para cancelamento de VENDA, considera-se type ENTRADA. +";Texto;;Obrigatório;;"ENTRADA SAIDA";1;1;"";Não permitido;string;ENTRADA; -/data/transactionType;transactionType;Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros;Texto;;Obrigatório;;"COMPRA +/data/transactionType;transactionType;Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título.;Texto;;Obrigatório;;"COMPRA VENDA CANCELAMENTO VENCIMENTO @@ -14,16 +21,24 @@ TRANSFERENCIA_CUSTODIA MULTA MORA OUTROS";1;1;"";Não permitido;string;COMPRA; -/data/typeAdditionalInfo;typeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. +/data/transactionTypeAdditionalInfo;transactionTypeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. ";Texto;100;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. ";Não permitido;string;; /data/transactionDate;transactionDate;Data da movimentação;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-15; -/data/transactionUnitPrice;transactionUnitPrice;valor unitário negociado com o cliente na data de aquisição;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionUnitPrice;transactionUnitPrice;"valor unitário negociado com o cliente na data de aquisição + +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. +";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. +";Não permitido;object;; /data/transactionUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.000004;4 /data/transactionUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/transactionQuantity;transactionQuantity;Quantidade de títulos envolvidos na movimentação;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;42.25; -/data/transactionGrossValue;transactionGrossValue;Valor bruto da transação (Preço unitário da movimentação x Quantidade) ;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionQuantity;transactionQuantity;"Quantidade de títulos envolvidos na movimentação + +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. +";Texto;24;Condicional;^\d{1,15}\.\d{2,8}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. +";Não permitido;string;42.25; +/data/transactionGrossValue;transactionGrossValue;Valor bruto da transação (Preço unitário da movimentação x Quantidade);Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/transactionGrossValue/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/transactionGrossValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/incomeTax;incomeTax;"Valor do imposto de renda recolhido na transação. @@ -44,10 +59,10 @@ OUTROS";1;1;"";Não permitido;string;COMPRA; /data/remunerationTransactionRate;remunerationTransactionRate;"Taxa de remuneração acordada com o cliente na contratação. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;0.300000; +";Não permitido;string;0.300000;8 /data/indexerPercentage;indexerPercentage;"Percentual máximo do indexador na transação acordado com o cliente na contratação. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;1.100000; +";Não permitido;string;1.100000;8 /data/transactionId;transactionId;"Código ou identificador único prestado pela instituição para individualizar o movimento. ";Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; diff --git a/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv b/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv index 9ca48c0c4..f2888de53 100644 --- a/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv +++ b/dictionary/creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv @@ -1,8 +1,15 @@ Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; -/data/type;type;"Tipo de movimentação na visão de investimento (Nos casos de motivo da movimentação ""pagamento de juros"", ""amortização"", ""prêmio"", ""multa"" e ""mora"", fica convencionado que será considerado que o tipo de movimento será saída).";Texto;;Obrigatório;;"ENTRADA +/data/type;type;"Tipo de movimentação na visão de investimento​: + +ENTRADA: COMPRA, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS​. + +SAIDA: VENDA, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, PREMIO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, MULTA, MORA, OUTROS. ​ + +Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de COMPRA, considera-se type SAIDA; para cancelamento de VENDA, considera-se type ENTRADA. +";Texto;;Obrigatório;;"ENTRADA SAIDA";1;1;"";Não permitido;string;ENTRADA; -/data/transactionType;transactionType;Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros;Texto;;Obrigatório;;"COMPRA +/data/transactionType;transactionType;Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título.;Texto;;Obrigatório;;"COMPRA VENDA CANCELAMENTO VENCIMENTO @@ -14,16 +21,24 @@ TRANSFERENCIA_CUSTODIA MULTA MORA OUTROS";1;1;"";Não permitido;string;COMPRA; -/data/typeAdditionalInfo;typeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio +/data/transactionTypeAdditionalInfo;transactionTypeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. ";Texto;100;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. ";Não permitido;string;; /data/transactionDate;transactionDate;Data da movimentação;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-15; -/data/transactionUnitPrice;transactionUnitPrice;valor unitário negociado com o cliente na data de aquisição;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionUnitPrice;transactionUnitPrice;"valor unitário negociado com o cliente na data de aquisição + +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. +";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. +";Não permitido;object;; /data/transactionUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.000004;4 /data/transactionUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/transactionQuantity;transactionQuantity;Quantidade de títulos envolvidos na movimentação;Texto;25;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;42.25; -/data/transactionGrossValue;transactionGrossValue;Valor bruto da transação (Preço unitário da movimentação x Quantidade) ;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionQuantity;transactionQuantity;"Quantidade de títulos envolvidos na movimentação + +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. +";Texto;24;Condicional;^\d{1,15}\.\d{2,8}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. +";Não permitido;string;42.25; +/data/transactionGrossValue;transactionGrossValue;Valor bruto da transação (Preço unitário da movimentação x Quantidade);Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/transactionGrossValue/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04;4 /data/transactionGrossValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/incomeTax;incomeTax;"Valor do imposto de renda recolhido na transação. @@ -44,10 +59,10 @@ OUTROS";1;1;"";Não permitido;string;COMPRA; /data/remunerationTransactionRate;remunerationTransactionRate;"Taxa de remuneração acordada com o cliente na contratação. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;0.300000; +";Não permitido;string;0.300000;8 /data/indexerPercentage;indexerPercentage;"Percentual máximo do indexador na transação acordado com o cliente na contratação. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;1.100000; +";Não permitido;string;1.100000;8 /data/transactionId;transactionId;"Código ou identificador único prestado pela instituição para individualizar o movimento. ";Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; diff --git a/dictionary/creditFixedIncomesGetInvestmentsInvestmentId_v1.csv b/dictionary/creditFixedIncomesGetInvestmentsInvestmentId_v1.csv index 9b3743372..9a52e3fc2 100644 --- a/dictionary/creditFixedIncomesGetInvestmentsInvestmentId_v1.csv +++ b/dictionary/creditFixedIncomesGetInvestmentsInvestmentId_v1.csv @@ -1,19 +1,21 @@ Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo /data;data;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/issuerInstitutionCnpjNumber;issuerInstitutionCnpjNumber;CNPJ da instituição emissora;Texto;14;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;11225860000140; -/data/isinCode;isinCode;"Código ISIN da emissão, Código ISIN do produto, Código da emissora (campo opcional): código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. -";Texto;12;Opcional;^[A-Z]{2}([A-Z0-9]){9}\d{1}$;;0;1;"";Não permitido;string;BRCST4CTF001; +/data/issuerInstitutionCnpjNumber;issuerInstitutionCnpjNumber;"CNPJ da instituição emissora. + +Caso a instituição tenha a informação, o envio será obrigatório. +";Texto;14;Opcional;^\d{14}$;;0;1;"";Não permitido;string;11225860000140; +/data/isinCode;isinCode;"Código ISIN é um código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. Caso a transmissora possua a informação o envio deste campo é obrigatório. + +[Restrição] Deve ser preenchido nos casos em que o 'clearingCode' não seja preenchido. +";Texto;12;Condicional;^[A-Z]{2}([A-Z0-9]){9}\d{1}$;;0;1;" Deve ser preenchido nos casos em que o 'clearingCode' não seja preenchido. +";Não permitido;string;BRCST4CTF001; /data/investmentType;investmentType;Especificação do ativo em questão (Debêntures, CRI ou CRA).;Texto;;Obrigatório;;"DEBENTURES CRI CRA";1;1;"";Não permitido;string;CRI; -/data/debtorCnpjNumber;debtorCnpjNumber;"CNPJ do devedor (condicional para CRI e CRA) -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'investmentType' for igual a ""CRI"" ou ""CRA"". -";Texto;14;Condicional;^\d{14}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'investmentType' for igual a ""CRI"" ou ""CRA"". -";Não permitido;string;11225860000140; -/data/debtorName;debtorName;"Nome do devedor (condicional para CRI e CRA) -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'investmentType' for igual a ""CRI"" ou ""CRA"". -";Texto;70;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'investmentType' for igual a ""CRI"" ou ""CRA"". -";Não permitido;string;Roberto Marino; +/data/debtorCnpjNumber;debtorCnpjNumber;"CNPJ do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. +";Texto;14;Opcional;^\d{14}$;;0;1;"";Não permitido;string;11225860000140; +/data/debtorName;debtorName;"Nome do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. +";Texto;70;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;Roberto Marino; /data/taxExemptProduct;taxExemptProduct;Indicador de um produto incentivado;Texto;;Obrigatório;;"SIM NAO";1;1;"";Não permitido;string;SIM; /data/remuneration;remuneration;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; @@ -28,17 +30,24 @@ NAO";1;1;"";Não permitido;string;SIM; /data/remuneration/rateType;rateType;"Tipo da taxa de remuneração 1. LINEAR 2. EXPONENCIAL -";Texto;;Obrigatório;;"LINEAR -EXPONENCIAL";1;1;"";Não permitido;string;LINEAR; -/data/remuneration/ratePeriodicity;ratePeriodicity;Periodicidade da taxa de remuneração (mensal, anual, diário, semestral);Texto;;Obrigatório;;"MENSAL + +Caso a instituição tenha a informação, o envio será obrigatório. +";Texto;;Opcional;;"LINEAR +EXPONENCIAL";0;1;"";Não permitido;string;LINEAR; +/data/remuneration/ratePeriodicity;ratePeriodicity;"Periodicidade da taxa de remuneração (mensal, anual, diário, semestral). + +Caso a instituição tenha a informação, o envio será obrigatório. +";Texto;;Opcional;;"MENSAL ANUAL DIARIO -SEMESTRAL";1;1;"";Não permitido;string;MENSAL; +SEMESTRAL";0;1;"";Não permitido;string;MENSAL; /data/remuneration/calculation;calculation;"Base de cálculo (dias úteis ou dias corridos). 1. dias úteis - 2. dias corridos -";Texto;;Obrigatório;;"DIAS_UTEIS -DIAS_CORRIDOS";1;1;"";Não permitido;string;DIAS_CORRIDOS; + 2. dias corridos. + +Caso a instituição tenha a informação, o envio será obrigatório. +";Texto;;Opcional;;"DIAS_UTEIS +DIAS_CORRIDOS";0;1;"";Não permitido;string;DIAS_CORRIDOS; /data/remuneration/indexer;indexer;"Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo 1. CDI 2. DI @@ -103,6 +112,13 @@ OUTROS";0;1;" Campo de preenchimento obrigatório pelos participantes quando hou [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'voucherPaymentPeriodicity'. ";Texto;50;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'voucherPaymentPeriodicity'. ";Não permitido;string;Diária; -/data/clearingCode;clearingCode;Código de registro do ativo na clearing;Texto;30;Opcional;[\w\W-]*;;0;1;"";Não permitido;string;CDB421GPXXX; +/data/clearingCode;clearingCode;"Código de registro do ativo na Clearing. Caso a transmissora possua a informação o envio deste campo é obrigatório. + +[Restrição] Deve ser preenchido nos casos em que o 'isinCode' não seja preenchido. +";Texto;30;Condicional;[\w\W-]*;;0;1;" Deve ser preenchido nos casos em que o 'isinCode' não seja preenchido. +";Não permitido;string;CDB421GPXXX; /data/purchaseDate;purchaseDate;Data de aquisição do cliente;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-15; -/data/gracePeriodDate;gracePeriodDate;Data até a qual o cliente não poderá resgatar antecipadamente seu investimento;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-16; +/data/gracePeriodDate;gracePeriodDate;"Data até a qual o cliente não poderá resgatar antecipadamente seu investimento. + +Caso a instituição tenha a informação, o envio será obrigatório. +";Data;10;Opcional;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;0;1;"";Não permitido;string;2018-02-16; diff --git a/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv b/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv index 9873069b4..8a475089e 100644 --- a/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv +++ b/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv @@ -1,4 +1,4 @@ -data,,,,,,,,,,,,,,,,,,links,,,,meta +data,,,,,,,,,,,,,,,,,,links,,,,meta type,transactionType,typeAdditionalInfo,transactionDate,transactionUnitPrice,,transactionQuantity,transactionGrossValue,,incomeTax,,financialTransactionTax,,transactionNetValue,,remunerationTransactionRate,indexerPercentage,transactionId,self,first,prev,next,requestDateTime ,,,,amount,currency,,amount,currency,amount,currency,amount,currency,amount,currency,,,,,,,, ENTRADA,COMPRA,string,2018-02-15,1000.000004,BRL,42.25,1000.04,BRL,1000.04,BRL,1000.04,BRL,1000.04,BRL,0.300000,1.100000,ABCD2126019929279212650822221989319253344,https://api.banco.com.br/open-banking/api/v1/resource,https://api.banco.com.br/open-banking/api/v1/resource,https://api.banco.com.br/open-banking/api/v1/resource,https://api.banco.com.br/open-banking/api/v1/resource,2021-05-21T08:30:00Z \ No newline at end of file diff --git a/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv b/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv index 39c5e0a48..a9f249090 100644 --- a/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv +++ b/dictionary/example/examples_creditFixedIncomesGetInvestmentsInvestmentIdTransactions_v1.csv @@ -1,4 +1,4 @@ -data,,,,,,,,,,,,,,,,,,links,,,,meta +data,,,,,,,,,,,,,,,,,,links,,,,meta type,transactionType,typeAdditionalInfo,transactionDate,transactionUnitPrice,,transactionQuantity,transactionGrossValue,,incomeTax,,financialTransactionTax,,transactionNetValue,,remunerationTransactionRate,indexerPercentage,transactionId,self,first,prev,next,requestDateTime ,,,,amount,currency,,amount,currency,amount,currency,amount,currency,amount,currency,,,,,,,, ENTRADA,COMPRA,string,2018-02-15,1000.000004,BRL,42.25,1000.04,BRL,1000.04,BRL,1000.04,BRL,1000.04,BRL,0.300000,1.100000,ABCD2126019929279212650822221989319253344,https://api.banco.com.br/open-banking/api/v1/resource,https://api.banco.com.br/open-banking/api/v1/resource,https://api.banco.com.br/open-banking/api/v1/resource,https://api.banco.com.br/open-banking/api/v1/resource,2021-05-21T08:30:00Z \ No newline at end of file diff --git a/dictionary/example/examples_exchangesGetOperationsOperationIdEvents_v1.csv b/dictionary/example/examples_exchangesGetOperationsOperationIdEvents_v1.csv new file mode 100644 index 000000000..b3d3b31d4 --- /dev/null +++ b/dictionary/example/examples_exchangesGetOperationsOperationIdEvents_v1.csv @@ -0,0 +1,4 @@ +data,,,,,,,,,,,,,,,,,,, +eventSequenceNumber,eventType,eventDate,dueDate,localCurrencyOperationTax,,localCurrencyOperationValue,,foreignOperationValue,,operationOutstandingBalance,,vetAmount,,localCurrencyAdvancePercentage,deliveryForeignCurrency,operationCategoryCode,relationshipCode,foreignPartieName,foreignPartieCountryCode +,,,,amount,currency,amount,currency,amount,currency,amount,currency,amount,currency,,,,,, +493874649457,2,2023-03-07T08:30:00Z,2018-02-15,1.3,BRL,1000.04,BRL,1000.04,USD,1000.04,BRL,1000.000004,BRL,0.12,CARTA_CREDITO_A_PRAZO,90302,50,José da Silva,ZA diff --git a/dictionary/example/examples_exchangesGetOperationsOperationId_v1.csv b/dictionary/example/examples_exchangesGetOperationsOperationId_v1.csv new file mode 100644 index 000000000..e1015bc8f --- /dev/null +++ b/dictionary/example/examples_exchangesGetOperationsOperationId_v1.csv @@ -0,0 +1,4 @@ +data,,,,,,,,,,,,,,,,,,,,,,, +authorizedInstitutionCnpjNumber,authorizedInstitutionName,intermediaryInstitutionCnpjNumber,intemediaryInstitutionName,operationNumber,operationType,operationDate,dueDate,localCurrencyOperationTax,,localCurrencyOperationValue,,foreignOperationValue,,operationOutstandingBalance,,vetAmount,,localCurrencyAdvancePercentage,deliveryForeignCurrency,operationCategoryCode,relationshipCode,foreignPartieName,foreignPartieCountryCode +,,,,,,,,amount,currency,amount,currency,amount,currency,amount,currency,amount,currency,,,,,, +11225860000140,AGENCIA CORRETORA,11225860000140,AGENCIA CORRETORA,393874649456,COMPRA,2023-03-07T08:30:00Z,2018-02-15,1.3,BRL,1000.04,BRL,1000.04,USD,1000.04,BRL,1000.000004,BRL,0.12,CARTA_CREDITO_A_PRAZO,90302,50,José da Silva,ZA diff --git a/dictionary/example/examples_exchangesGetOperations_v1.csv b/dictionary/example/examples_exchangesGetOperations_v1.csv new file mode 100644 index 000000000..5b5498733 --- /dev/null +++ b/dictionary/example/examples_exchangesGetOperations_v1.csv @@ -0,0 +1,3 @@ +data,, +brandName,companyCnpj,operationId +Organização A,21128159000166,92792126019929240 diff --git a/dictionary/exchangesGetOperationsOperationIdEvents_v1.csv b/dictionary/exchangesGetOperationsOperationIdEvents_v1.csv new file mode 100644 index 000000000..57646d1c3 --- /dev/null +++ b/dictionary/exchangesGetOperationsOperationIdEvents_v1.csv @@ -0,0 +1,69 @@ +Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo +/data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; +/data/eventSequenceNumber;eventSequenceNumber;Número sequência do registro do evento de câmbio no Bacen.;Texto;12;Obrigatório;^\d{12}$;;1;1;"";Não permitido;string;493874649457; +/data/eventType;eventType;"Para o campo domínio: + +1 - Contratação no Mercado Primário. +2 - Alteração de Operação Cambial no Mercado Primário. +3 - Cancelamento de Operação Cambial no Mercado Primário. +4 - Liquidação de Operação Cambial no Mercado Primário. +5 - Baixa de Valor a Liquidar de Operação Cambial no Mercado Primário. +6 - Restabelecimento de Baixa de Valor a Liquidar de Operação Cambial no Mercado Primário. + +O evento está relacionado ao tipo de contratação. +";Texto;;Obrigatório;;"1 +2 +3 +4 +5 +6";1;1;"";Não permitido;string;2; +/data/eventDate;eventDate;Data do evento relacionado com a operação.;Date Hora;20;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$;;1;1;"";Não permitido;string;2023-03-07T08:30:00Z; +/data/dueDate;dueDate;Data em que a operação (compra ou venda), após evento, está prevista para ser liquidada.;Data;10;Opcional;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;0;1;"";Não permitido;string;2018-02-15; +/data/localCurrencyOperationTax;localCurrencyOperationTax;Valor da taxa de câmbio aplicada à operação, em moeda nacional.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/localCurrencyOperationTax/amount;amount;Valor relacionado ao objeto.;Texto;31;Obrigatório;^\d{1,15}\.\d{1,15}$;;1;1;"";Não permitido;string;1.3; +/data/localCurrencyOperationTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/localCurrencyOperationValue;localCurrencyOperationValue;Valor negociado em moeda nacional.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/localCurrencyOperationValue/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,17}\.\d{2}$;;1;1;"";Não permitido;string;1000.04; +/data/localCurrencyOperationValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/foreignOperationValue;foreignOperationValue;Valor da operação em moeda estrangeira.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/foreignOperationValue/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,17}\.\d{2}$;;1;1;"";Não permitido;string;1000.04; +/data/foreignOperationValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;USD; +/data/operationOutstandingBalance;operationOutstandingBalance;Valor do saldo da operação, após evento, a liquidar em moeda estrangeira. Objeto de envio obrigatório nos casos de operações de câmbio com liquidação futura.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/operationOutstandingBalance/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,17}\.\d{2}$;;1;1;"";Não permitido;string;1000.04; +/data/operationOutstandingBalance/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/vetAmount;vetAmount;Representa o custo de uma operação de câmbio em reais por moeda estrangeira, englobando a taxa de câmbio, as tarifas e tributos incidentes sobre essa operação. Campo de envio obrigatório nas operações de câmbio pronto que atingirem até o limite de US$100.000 ou equivalente em outras moedas.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/vetAmount/amount;amount;Valor relacionado ao objeto.;Texto;31;Obrigatório;\d{1,15}\.\d{1,15}$;;1;1;"";Não permitido;string;1000.000004; +/data/vetAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/localCurrencyAdvancePercentage;localCurrencyAdvancePercentage;"Percentual do valor de moeda nacional concedido ao cliente antecipadamente. 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%). Campos de envio obrigatório no caso de operações de câmbio com liquidação futura. +";Texto;8;Opcional;^\d{1}\.\d{1,6}$;;0;1;"";Não permitido;string;0.12;3 +/data/deliveryForeignCurrency;deliveryForeignCurrency;Forma de entrega da moeda estrangeira.;Texto;;Opcional;;"CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS +CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR +ESPECIE_CHEQUES_VIAGEM +CARTAO_PREPAGO +TELETRANSMISSAO +SEM_MOVIMENTACAO_VALORES +DEMAIS +CARTA_CREDITO_A_VISTA +CARTA_CREDITO_A_PRAZO +CONTA_DEPOSITO +CHEQUE +TITULOS_VALORES +SIMBOLICA";0;1;"";Não permitido;string;CARTA_CREDITO_A_PRAZO; +/data/operationCategoryCode;operationCategoryCode;Código da natureza fato do fechamento da operação. Deve respeitar os códigos de natureza referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio.;Texto;5;Opcional;^\d{5}$;;0;1;"";Não permitido;string;90302; +/data/relationshipCode;relationshipCode;"Código de Relação de vínculo entre o Cliente e o Pagador/Recebedor no Exterior. Deve respeitar os códigos de vínculo referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio. + +[Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Texto;2;Condicional;^\d{2}$;;0;1;" Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Não permitido;string;50; +/data/foreignPartieName;foreignPartieName;"Nome do pagador ou recebedor no exterior. + +[Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Texto;80;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Não permitido;string;José da Silva; +/data/foreignPartieCountryCode;foreignPartieCountryCode;"País do pagador ou recebedor. Código do país segundo a norma ISO 3166-1. + +[Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Texto;2;Condicional;^[A-Z]{2}$;;0;1;" Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Não permitido;string;ZA; diff --git a/dictionary/exchangesGetOperationsOperationId_v1.csv b/dictionary/exchangesGetOperationsOperationId_v1.csv new file mode 100644 index 000000000..8d643938c --- /dev/null +++ b/dictionary/exchangesGetOperationsOperationId_v1.csv @@ -0,0 +1,65 @@ +Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo +/data;data;Detalhes da operação de câmbio.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/authorizedInstitutionCnpjNumber;authorizedInstitutionCnpjNumber;CNPJ da instituição autorizada a operar no mercado de câmbio.;Texto;14;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;11225860000140; +/data/authorizedInstitutionName;authorizedInstitutionName;Nome da Instituição Financeira no Brasil.;Texto;250;Obrigatório;[\w\W\s]*;;1;1;"";Não permitido;string;AGENCIA CORRETORA; +/data/intermediaryInstitutionCnpjNumber;intermediaryInstitutionCnpjNumber;"CNPJ da instituição intermediadora autorizada a operar no mercado de câmbio. +Campo de envio obrigatório nos casos em que houver instituição intermediadora. +";Texto;14;Opcional;^\d{14}$;;0;1;"";Não permitido;string;11225860000140; +/data/intemediaryInstitutionName;intemediaryInstitutionName;"Nome da corretora interveniente autorizada a operar no mercado de câmbio. + +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'intermediaryInstitutionCnpjNumber' for informado. +";Texto;250;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'intermediaryInstitutionCnpjNumber' for informado. +";Não permitido;string;AGENCIA CORRETORA; +/data/operationNumber;operationNumber;Número do registro da operação no Bacen. Deve ser preenchido no compartilhamento, após registro no Sistema de Câmbio e número disponível na transmissora/detentora.;Texto;12;Opcional;^\d{12}$;;0;1;"";Não permitido;string;393874649456; +/data/operationType;operationType;Compra ou venda de moeda estrangeira.;Texto;;Obrigatório;;"COMPRA +VENDA";1;1;"";Não permitido;string;COMPRA; +/data/operationDate;operationDate;Data do fechamento do contrato de câmbio.;Date Hora;20;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$;;1;1;"";Não permitido;string;2023-03-07T08:30:00Z; +/data/dueDate;dueDate;Data em que a operação (compra ou venda) está prevista para ser liquidada.;Data;10;Obrigatório;^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$;;1;1;"";Não permitido;string;2018-02-15; +/data/localCurrencyOperationTax;localCurrencyOperationTax;Valor da taxa de câmbio aplicada a este contrato, em moeda nacional.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/localCurrencyOperationTax/amount;amount;Valor relacionado ao objeto.;Texto;31;Obrigatório;^\d{1,15}\.\d{1,15}$;;1;1;"";Não permitido;string;1.3; +/data/localCurrencyOperationTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/localCurrencyOperationValue;localCurrencyOperationValue;Valor negociado em moeda nacional.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/localCurrencyOperationValue/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,17}\.\d{2}$;;1;1;"";Não permitido;string;1000.04; +/data/localCurrencyOperationValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/foreignOperationValue;foreignOperationValue;Valor da operação em moeda estrangeira.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/foreignOperationValue/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,17}\.\d{2}$;;1;1;"";Não permitido;string;1000.04; +/data/foreignOperationValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;USD; +/data/operationOutstandingBalance;operationOutstandingBalance;Valor do saldo da operação a liquidar em moeda estrangeira. Objeto de envio obrigatório nos casos de operações de câmbio com liquidação futura.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/operationOutstandingBalance/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,17}\.\d{2}$;;1;1;"";Não permitido;string;1000.04; +/data/operationOutstandingBalance/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/vetAmount;vetAmount;Representa o custo de uma operação de câmbio em reais por moeda estrangeira, englobando a taxa de câmbio, as tarifas e tributos incidentes sobre essa operação. Campo de envio obrigatório nas operações de câmbio pronto que atingirem até o limite de US$100.000 ou equivalente em outras moedas.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; +/data/vetAmount/amount;amount;Valor relacionado ao objeto.;Texto;31;Obrigatório;\d{1,15}\.\d{1,15}$;;1;1;"";Não permitido;string;1000.000004; +/data/vetAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/localCurrencyAdvancePercentage;localCurrencyAdvancePercentage;"Percentual do valor de moeda nacional concedido ao cliente antecipadamente. 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%). Campos de envio obrigatório no caso de operações de câmbio com liquidação futura. +";Texto;8;Opcional;^\d{1}\.\d{1,6}$;;0;1;"";Não permitido;string;0.12;3 +/data/deliveryForeignCurrency;deliveryForeignCurrency;Forma de entrega da moeda estrangeira.;Texto;;Obrigatório;;"CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS +CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR +ESPECIE_CHEQUES_VIAGEM +CARTAO_PREPAGO +TELETRANSMISSAO +SEM_MOVIMENTACAO_VALORES +DEMAIS +CARTA_CREDITO_A_VISTA +CARTA_CREDITO_A_PRAZO +CONTA_DEPOSITO +CHEQUE +TITULOS_VALORES +SIMBOLICA";1;1;"";Não permitido;string;CARTA_CREDITO_A_PRAZO; +/data/operationCategoryCode;operationCategoryCode;Código da natureza fato do fechamento da operação. Deve respeitar os códigos de natureza referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio.;Texto;5;Obrigatório;^\d{5}$;;1;1;"";Não permitido;string;90302; +/data/relationshipCode;relationshipCode;"Código de Relação de vínculo entre o Cliente e o Pagador/Recebedor no Exterior. Deve respeitar os códigos de vínculo referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio. + +[Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Texto;2;Condicional;^\d{2}$;;0;1;" Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Não permitido;string;50; +/data/foreignPartieName;foreignPartieName;"Nome do pagador ou recebedor no exterior. + +[Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Texto;80;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Não permitido;string;José da Silva; +/data/foreignPartieCountryCode;foreignPartieCountryCode;"País do pagador ou recebedor. Código do país segundo a norma ISO 3166-1. + +[Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Texto;2;Condicional;^[A-Z]{2}$;;0;1;" Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. +";Não permitido;string;ZA; diff --git a/dictionary/exchangesGetOperations_v1.csv b/dictionary/exchangesGetOperations_v1.csv new file mode 100644 index 000000000..805f8600a --- /dev/null +++ b/dictionary/exchangesGetOperations_v1.csv @@ -0,0 +1,5 @@ +Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo +/data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; +/data/brandName;brandName;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). Instituição autorizada a operar;Texto;80;Obrigatório;[\w\W\s]*;;1;1;"";Não permitido;string;Organização A; +/data/companyCnpj;companyCnpj;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.;Texto;14;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;21128159000166; +/data/operationId;operationId;Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;92792126019929240; diff --git a/dictionary/fundsGetInvestmentsInvestmentIdBalances_v1.csv b/dictionary/fundsGetInvestmentsInvestmentIdBalances_v1.csv index 194e33b5f..929f3f532 100644 --- a/dictionary/fundsGetInvestmentsInvestmentIdBalances_v1.csv +++ b/dictionary/fundsGetInvestmentsInvestmentIdBalances_v1.csv @@ -4,16 +4,16 @@ /data/grossAmount;grossAmount;Valor do investimento que se refere a quantidade da cota x valor da cota, atualizado na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/grossAmount/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/grossAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/netAmount;netAmount;Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR) e taxa de saída, caso a instituição considere este valor na composição do saldo líquido.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/netAmount;netAmount;Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR) e taxa de saída, caso a instituição considere este valor na composição do saldo líquido. Este valor considera o valor bloqueado (blockedAmount).;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/netAmount/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/netAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/incomeTaxProvision;incomeTaxProvision;Valor do imposto considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/incomeTaxProvision;incomeTaxProvision;Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/incomeTaxProvision/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;50.02; /data/incomeTaxProvision/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/financialTransactionTaxProvision;financialTransactionTaxProvision;Valor do imposto considerando a alíquota vigente na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/financialTransactionTaxProvision/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;50.02; /data/financialTransactionTaxProvision/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/blockedAmount;blockedAmount;"Valor líquido não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros);";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/blockedAmount;blockedAmount;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/blockedAmount/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/blockedAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/quotaQuantity;quotaQuantity;Quantidade de cotas detidas em posição do cliente .;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;42.25; diff --git a/dictionary/fundsGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv b/dictionary/fundsGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv index 00ebc0e60..b4c5166e8 100644 --- a/dictionary/fundsGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv +++ b/dictionary/fundsGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv @@ -3,9 +3,9 @@ /data/transactionId;transactionId;Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; /data/type;type;"Tipo de movimentação (Entrada ou Saída). -ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. +ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. -SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, OUTROS. +SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. ";Texto;;Obrigatório;;"ENTRADA SAIDA";1;1;"";Não permitido;string;ENTRADA; /data/transactionType;transactionType;"O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). @@ -28,10 +28,11 @@ OUTROS";1;1;"";Não permitido;string;AMORTIZACAO; /data/transactionQuotaPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/transactionQuotaQuantity;transactionQuotaQuantity;"Número de cotas convertidas na data da movimentação. ";Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;42.25; -/data/transactionValue;transactionValue;Valor da movimentação.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionValue;transactionValue;Valor solicitado pelo cliente.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/transactionValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/transactionGrossValue;transactionGrossValue;"Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. +/data/transactionGrossValue;transactionGrossValue;"Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. +Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. ";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/transactionGrossValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionGrossValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; @@ -56,6 +57,9 @@ OUTROS";1;1;"";Não permitido;string;AMORTIZACAO; ";Não permitido;object;; /data/transactionExitFee/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionExitFee/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/transactionNetValue;transactionNetValue;Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionNetValue;transactionNetValue;"Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. +";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. +";Não permitido;object;; /data/transactionNetValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionNetValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; diff --git a/dictionary/fundsGetInvestmentsInvestmentIdTransactions_v1.csv b/dictionary/fundsGetInvestmentsInvestmentIdTransactions_v1.csv index 00ebc0e60..b4c5166e8 100644 --- a/dictionary/fundsGetInvestmentsInvestmentIdTransactions_v1.csv +++ b/dictionary/fundsGetInvestmentsInvestmentIdTransactions_v1.csv @@ -3,9 +3,9 @@ /data/transactionId;transactionId;Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; /data/type;type;"Tipo de movimentação (Entrada ou Saída). -ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. +ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. -SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, OUTROS. +SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. ";Texto;;Obrigatório;;"ENTRADA SAIDA";1;1;"";Não permitido;string;ENTRADA; /data/transactionType;transactionType;"O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). @@ -28,10 +28,11 @@ OUTROS";1;1;"";Não permitido;string;AMORTIZACAO; /data/transactionQuotaPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/transactionQuotaQuantity;transactionQuotaQuantity;"Número de cotas convertidas na data da movimentação. ";Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;42.25; -/data/transactionValue;transactionValue;Valor da movimentação.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionValue;transactionValue;Valor solicitado pelo cliente.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/transactionValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/transactionGrossValue;transactionGrossValue;"Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. +/data/transactionGrossValue;transactionGrossValue;"Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. +Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. ";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/transactionGrossValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionGrossValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; @@ -56,6 +57,9 @@ OUTROS";1;1;"";Não permitido;string;AMORTIZACAO; ";Não permitido;object;; /data/transactionExitFee/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionExitFee/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/transactionNetValue;transactionNetValue;Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/transactionNetValue;transactionNetValue;"Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. +";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. +";Não permitido;object;; /data/transactionNetValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/transactionNetValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; diff --git a/dictionary/fundsGetInvestments_v1.csv b/dictionary/fundsGetInvestments_v1.csv index ac365a6f3..3452f09b5 100644 --- a/dictionary/fundsGetInvestments_v1.csv +++ b/dictionary/fundsGetInvestments_v1.csv @@ -19,4 +19,4 @@ MULTIMERCADO CAMBIAL";0;1;"";Não permitido;string;RENDA_FIXA; /data/anbimaClass;anbimaClass;Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum.;Texto;70;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;; /data/anbimaSubclass;anbimaSubclass;Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum.;Texto;70;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;; -/data/investmentId;investmentId;Identifica de forma única o relacionamento do cliente com o fundo, mantendo as regras de imutabilidade dentro da instituição transmissora.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;92792126019929200000000000000000000000000; +/data/investmentId;investmentId;Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. Nos casos em que o cliente, após completar 12 meses da última movimentação e com quantidade de ativos zerada (cliente não tem mais posse do produto sob custódia da transmissora), compre novamente o ativo que já investiu em períodos passados, manter o mesmo investmentId anteriormente utilizado.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;92792126019929200000000000000000000000000; diff --git a/dictionary/getAutomotiveInsurance_v1.csv b/dictionary/getAutomotiveInsurance_v1.csv index e9bb31376..3f09963fd 100644 --- a/dictionary/getAutomotiveInsurance_v1.csv +++ b/dictionary/getAutomotiveInsurance_v1.csv @@ -4,12 +4,7 @@ /data/participant/brand;brand;Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização; /data/participant/name;name;Nome do participante do Open Finance.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização A1; /data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; -/data/participant/urlComplementaryList;urlComplementaryList;"Espera-se que valor de retorno, após acesso ao link 'urlComplementaryList', deve ser array de objeto com a estrutura abaixo: -- 'name' com o valor contido no campo 'LegalEntityName' conforme cadastro no diretório; -- 'cnpjNumber' com o valor contido no campo CNPJ ('RegistrationNumber') correspondente a esta instituição; -- Ambos do tipo string; -- Ambos obrigatórios. -";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; +/data/participant/urlComplementaryList;urlComplementaryList;;Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; /data/society;society;Conjunto de informações relativas à seguradora do produto de open insurance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/society/name;name;Nome da Sociedade Seguradora.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Society A1; /data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; @@ -105,10 +100,10 @@ OUTRAS_COBERTURAS_AUTO";1;1;"";Não permitido;string;ROUBO_TOTAL_OU_PARCIAL; ";Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;50.000; /data/coverages/attributes/newCar/contractBase/determinedValue/max/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^[A-Z]{3}$;;0;1;"";Não permitido;string;BRL; /data/coverages/attributes/newCar/contractBase/marketValuePercentage;marketValuePercentage;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; -/data/coverages/attributes/newCar/contractBase/marketValuePercentage/min;min;;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/coverages/attributes/newCar/contractBase/marketValuePercentage/max;max;;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/coverages/attributes/newCar/contractBase/marketValuePercentage/min;min;;Texto;;Obrigatório;^\d\.\d{2}$;;1;1;"";Não permitido;string;0.20; +/data/coverages/attributes/newCar/contractBase/marketValuePercentage/max;max;;Texto;;Obrigatório;^\d\.\d{2}$;;1;1;"";Não permitido;string;1.00; /data/coverages/attributes/newCar/maximumCalculatingPeriod;maximumCalculatingPeriod;Prazo máximo para veículo zero quilômetro em meses;Inteiro;3;Opcional;;;0;1;"";Não permitido;integer;12; -/data/coverages/attributes/fullIndemnityPercentage;fullIndemnityPercentage;Será caracterizada a indenização integral quando os prejuízos resultantes de um mesmo sinistro, atingirem ou ultrapassarem a quantia apurada a partir da aplicação de percentual previamente determinado sobre o valor contratado. (Circular 269/2004).;Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.019800;8 +/data/coverages/attributes/fullIndemnityPercentage;fullIndemnityPercentage;Será caracterizada a indenização integral quando os prejuízos resultantes de um mesmo sinistro, atingirem ou ultrapassarem a quantia apurada a partir da aplicação de percentual previamente determinado sobre o valor contratado. (Circular 269/2004).;Texto;4;Opcional;^\d\.\d{2}$;;0;1;"";Não permitido;string;0.75; /data/coverages/attributes/deductibleTypes;deductibleTypes;Listagem de tipo de franquia para cada tipo de cobertura do produto.;Lista;10;Obrigatório;;"NORMAL REDUZIDA ISENTA @@ -122,7 +117,7 @@ FLEXIVEL";1;N;"";Não permitido;array;NORMAL; 1. true 2. false ";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; -/data/coverages/attributes/deductiblePercentage;deductiblePercentage;Percentual de Franquia;Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.019800;8 +/data/coverages/attributes/deductiblePercentage;deductiblePercentage;Percentual de Franquia;Texto;4;Opcional;^\d\.\d{2}$;;0;1;"";Não permitido;string;0.75; /data/coverages/attributes/mandatoryParticipation;mandatoryParticipation;"Participação Obrigatória é o valor ou percentual definido na apólice referente à responsabilidade do Segurado nos prejuízos indenizáveis decorrentes de sinistros cobertos. (Circular SUSEP 347/07). Listagem de percentual de Franquia/Percentual Participação Obrigatória do Segurado estabelecida pela sociedade para cada tipo de cobertura do produto. ";Texto;300;Opcional;;;0;1;"";Não permitido;string;"Casco: R$ 0,00 @@ -150,8 +145,8 @@ Venezuela ";Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;50.000; /data/coverages/attributes/contractBase/determinedValue/max/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^[A-Z]{3}$;;0;1;"";Não permitido;string;BRL; /data/coverages/attributes/contractBase/marketValuePercentage;marketValuePercentage;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; -/data/coverages/attributes/contractBase/marketValuePercentage/min;min;;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/coverages/attributes/contractBase/marketValuePercentage/max;max;;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/coverages/attributes/contractBase/marketValuePercentage/min;min;;Texto;;Obrigatório;^\d\.\d{2}$;;1;1;"";Não permitido;string;0.20; +/data/coverages/attributes/contractBase/marketValuePercentage/max;max;;Texto;;Obrigatório;^\d\.\d{2}$;;1;1;"";Não permitido;string;1.00; /data/carParts;carParts;Tipo de peça utilizada para reparação – Nova ou Usada.;Lista;;Opcional;;;1;N;"";Não permitido;array;; /data/carParts/condition;condition;"Novas ou usada. A considerar os domínios abaixo: 1. Novas @@ -195,7 +190,7 @@ CUSTOMIZAVEL";0;1;"";Não permitido;string;ATE_10_SERVICOS; ";Texto;8;Opcional;;"GRATUITA PAGO";0;1;"";Não permitido;string;GRATUITA; /data/termsAndConditions;termsAndConditions;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; -/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22;12 +/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}/\d{4}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22; /data/termsAndConditions/detail;detail;Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/terms;terms;;Lista;23;Obrigatório;;"ANUAL ANUAL_INTERMITENTE diff --git a/dictionary/getHomeInsurance_v1.csv b/dictionary/getHomeInsurance_v1.csv index e3ada45b8..db1e1270b 100644 --- a/dictionary/getHomeInsurance_v1.csv +++ b/dictionary/getHomeInsurance_v1.csv @@ -4,12 +4,7 @@ /data/participant/brand;brand;Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização; /data/participant/name;name;Nome do participante do Open Finance.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização A1; /data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; -/data/participant/urlComplementaryList;urlComplementaryList;"Espera-se que valor de retorno, após acesso ao link 'urlComplementaryList', deve ser array de objeto com a estrutura abaixo: -- 'name' com o valor contido no campo 'LegalEntityName' conforme cadastro no diretório; -- 'cnpjNumber' com o valor contido no campo CNPJ ('RegistrationNumber') correspondente a esta instituição; -- Ambos do tipo string; -- Ambos obrigatórios. -";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; +/data/participant/urlComplementaryList;urlComplementaryList;;Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; /data/society;society;Conjunto de informações relativas à seguradora do produto de open insurance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/society/name;name;Nome da Sociedade Seguradora.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Society A1; /data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; @@ -64,7 +59,7 @@ OUTROS";1;1;"";Não permitido;string;IMOVEL_BASICA; /data/coverages/attributes/minDeductibleAmount;minDeductibleAmount;Quantia fixa, definida na apólice, que, em caso de sinistro, representa a parte do prejuízo apurado que poderá deixar de ser paga pela Sociedade Seguradora, dependendo das disposições do contrato. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de valor mínimo da franquia (Reais) estabelecida pela sociedade para cada tipo de cobertura do produto.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/coverages/attributes/minDeductibleAmount/amount;amount;;Texto;;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;1.1000; /data/coverages/attributes/minDeductibleAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/coverages/attributes/insuredMandatoryParticipationPercentage;insuredMandatoryParticipationPercentage;Participação Obrigatória é o valor ou percentual definido na apólice referente à responsabilidade do Segurado nos prejuízos indenizáveis decorrentes de sinistros cobertos. (Circular SUSEP 347/07). Listagem de percentual de franquia e/ou Percentual Participação Obrigatória do Segurado estabelecida pela sociedade para cada tipo de cobertura do produto. Observação: Sugestão de Criação do campo em substituição ao campo abaixo ‘Valor Máximo de Franquia’.;Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.019800;8 +/data/coverages/attributes/insuredMandatoryParticipationPercentage;insuredMandatoryParticipationPercentage;Participação Obrigatória é o valor ou percentual definido na apólice referente à responsabilidade do Segurado nos prejuízos indenizáveis decorrentes de sinistros cobertos. (Circular SUSEP 347/07). Listagem de percentual de franquia e/ou Percentual Participação Obrigatória do Segurado estabelecida pela sociedade para cada tipo de cobertura do produto. Observação: Sugestão de Criação do campo em substituição ao campo abaixo ‘Valor Máximo de Franquia’.;Texto;8;Opcional;^\d\.\d{6}$;;0;1;"";Não permitido;string;0.000002; /data/propertyCharacteristics;propertyCharacteristics;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/propertyCharacteristics/type;type;"Proposta conforme os domínios abaixo: 1. Casa @@ -109,7 +104,7 @@ CUSTOMIZAVEL";0;1;"";Não permitido;string;ATE_10_SERVICOS; ";Texto;8;Opcional;;"GRATUITA PAGO";0;1;"";Não permitido;string;GRATUITA; /data/termsAndConditions;termsAndConditions;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; -/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22;12 +/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}/\d{4}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22; /data/termsAndConditions/detail;detail;Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/terms;terms;;Lista;23;Obrigatório;;"ANUAL ANUAL_INTERMITENTE diff --git a/dictionary/getPensionRiskCoverages_v1.csv b/dictionary/getPensionRiskCoverages_v1.csv index 2ae496c51..073c16474 100644 --- a/dictionary/getPensionRiskCoverages_v1.csv +++ b/dictionary/getPensionRiskCoverages_v1.csv @@ -3,7 +3,7 @@ /data/participant;participant;Conjunto de informações relativas ao participante do produto de Open Finance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/participant/brand;brand;Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização; /data/participant/name;name;Nome do participante do Open Finance.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização A1; -/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/participant/urlComplementaryList;urlComplementaryList;"Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; @@ -13,13 +13,13 @@ - Ambos do tipo string; - Ambos obrigatórios. -";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; +";Texto;1024;Opcional;^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))|(NA)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; /data/society;society;Conjunto de informações relativas à seguradora do produto de open insurance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/society/name;name;Nome da Sociedade Seguradora.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Society A1; -/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/name;name;Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Produto A; /data/code;code;Código único a ser definido pela sociedade.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;0001; -/data/modality;modality;
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
;Texto;33;Obrigatório;;"FUNERAL +/data/modality;modality;
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
  18. NA
;Texto;33;Obrigatório;;"FUNERAL PRESTAMISTA VIAGEM EDUCACIONAL @@ -35,38 +35,46 @@ PENSAO_PRAZO_CERTO PENSAO_MENORES_21 PENSAO_MENORES_24 PENSAO_CONJUGE_VITALICIA -PENSAO_CONJUGE_TEMPORARIA";1;1;"";Não permitido;string;FUNERAL; +PENSAO_CONJUGE_TEMPORARIA +NA";1;1;"";Não permitido;string;FUNERAL; /data/coverages;coverages;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/coverages/type;type;É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura.;Texto;9;Obrigatório;;"MORTE INVALIDEZ -OUTROS";1;1;"";Não permitido;string;MORTE; +OUTROS +NA";1;1;"";Não permitido;string;MORTE; /data/coverages/typeAdditionalInfos;typeAdditionalInfos;"Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'. Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS' ";Lista;100;Opcional;;;0;N;"";Não permitido;array;; /data/coverages/attributes;attributes;Atributos da cobertura;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/coverages/attributes/minValue;minValue;Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/coverages/attributes/minValue/amount;amount;;Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;0.01; -/data/coverages/attributes/minValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/coverages/attributes/minValue/amount;amount;;Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;0.01; +/data/coverages/attributes/minValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^([A-Z]{3})$|^(NA)$;;1;1;"";Não permitido;string;BRL; /data/coverages/attributes/maxValue;maxValue;Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/coverages/attributes/maxValue/amount;amount;;Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;0.01; -/data/coverages/attributes/maxValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/coverages/attributes/maxValue/amount;amount;;Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;0.01; +/data/coverages/attributes/maxValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^([A-Z]{3})$|^(NA)$;;1;1;"";Não permitido;string;BRL; /data/coverages/attributes/indemnifiablePeriod;indemnifiablePeriod;"Listagem do pagamento para cada benefício: 1. Quantidade determinada de parcelas; - 2. Até o fim de ciclo determinado. -Se for pagamento único, esse campo não se aplica (retorna vazio). + 2. Até o fim de ciclo determinado; + 3. NA. + +Observação: Se for pagamento único, este campo não deve ser informado. ";Texto;;Opcional;;"QUANTIDADE_DETERMINADA_PARCELAS -FIM_CICLO_DETERMINADO";0;1;"";Não permitido;string;QUANTIDADE_DETERMINADA_PARCELAS; +FIM_CICLO_DETERMINADO +NA";0;1;"";Não permitido;string;QUANTIDADE_DETERMINADA_PARCELAS; /data/coverages/attributes/indemnifiableDeadline;indemnifiableDeadline;Número máximo de parcelas indenizáveis. Caso seja relacionado a parcelas.;Inteiro;;Obrigatório;;;1;1;"";Não permitido;integer;; /data/coverages/attributes/indemnityPaymentMethod;indemnityPaymentMethod;"Modalidade de pagamento da indenização, a considerar os domínios abaixo: 1. Único 2. Sob a forma de renda + 3. NA ";Texto;;Obrigatório;;"UNICO -SOB_FORMA_RENDA";1;1;"";Não permitido;string;UNICO; +SOB_FORMA_RENDA +NA";1;1;"";Não permitido;string;UNICO; /data/coverages/attributes/gracePeriod;gracePeriod;Período de carência da cobertura;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/coverages/attributes/gracePeriod/amount;amount;Informar o prazo de carência;Inteiro;;Opcional;;;0;1;"";Não permitido;integer;90; -/data/coverages/attributes/gracePeriod/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
";Texto;10;Opcional;;"DIAS +/data/coverages/attributes/gracePeriod/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
";Texto;10;Opcional;;"DIAS MESES -NAO_APLICA";0;1;"";Não permitido;string;MESES; +NAO_APLICA +NA";0;1;"";Não permitido;string;MESES; /data/coverages/attributes/excludedRisks;excludedRisks;;Lista;40;Obrigatório;;"ATO_RECONHECIMENTO_PERIGOSO ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO OPERACOES_GUERRA @@ -76,11 +84,13 @@ DOENCAS_LESOES_PREEXISTENTES EPIDEMIAS_PANDEMIAS SUICIDIO ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR -OUTROS";1;N;"";Não permitido;array;ATO_RECONHECIMENTO_PERIGOSO; +OUTROS +NA";1;N;"";Não permitido;array;ATO_RECONHECIMENTO_PERIGOSO; /data/coverages/attributes/excludedRisksURL;excludedRisksURL;Campo aberto (possibilidade de incluir URL).;Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/coverages/attributes/profitModality;profitModality;"Modalidade de pagamento da indenização. ";Texto;;Obrigatório;;"PAGAMENTO_UNICO -FORMA_RENDA";1;1;"";Não permitido;string;PAGAMENTO_UNICO; +FORMA_RENDA +NA";1;1;"";Não permitido;string;PAGAMENTO_UNICO; /data/assistanceTypes;assistanceTypes;;Lista;43;Opcional;;"ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA ARQUITETO_VIRTUAL ASSESSORIA_FINANCEIRA @@ -136,51 +146,60 @@ SUSTENTAVEL_DESCARTE_ECOLOGICO TELEMEDICINA VIAGEM VITIMA -OUTROS";0;N;"";Não permitido;array;ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA; +OUTROS +NA";0;N;"";Não permitido;array;ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA; /data/assistanceTypesAdditionalInfos;assistanceTypesAdditionalInfos;Lista a ser preenchida pelas participantes quando houver 'Outros' no campo 'Tipo de Assistência'.;Lista;;Opcional;;;0;N;"";Não permitido;array;; /data/additional;additional;;Texto;;Opcional;;"SORTEIO SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO OUTROS -NAO_HA";0;1;"";Não permitido;string;SORTEIO; +NAO_HA +NA";0;1;"";Não permitido;string;SORTEIO; /data/termsAndConditions;termsAndConditions;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; -/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22;12 +/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$;;1;1;"";Não permitido;string;15414.622222/2222-22;2 /data/termsAndConditions/detail;detail;Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/pmbacRemuneration;pmbacRemuneration;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; -/data/pmbacRemuneration/interestRate;interestRate;Taxa de juros para capitalização da PMBaC;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/pmbacRemuneration/interestRate;interestRate;Taxa de juros para capitalização da PMBaC;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/pmbacRemuneration/updateIndexes;updateIndexes;;Lista;;Opcional;;"IPCA IGP_M -INPC";0;N;"";Não permitido;array;IPCA; +INPC +NA";0;N;"";Não permitido;array;IPCA; /data/premiumUpdateIndex;premiumUpdateIndex;Índice utilizado na atualização do prêmio/contribuição e do capital segurado/benefício;Texto;;Obrigatório;;"IPCA IGPM -INPC";1;1;"";Não permitido;string;IPCA; +INPC +NA";1;1;"";Não permitido;string;IPCA; /data/ageAdjustment;ageAdjustment;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/ageAdjustment/criterias;criterias;;Lista;27;Obrigatório;;"APOS_PERIODO_ANOS CADA_PERIODO_ANOS MUDANCA_FAIXA_ETARIA -NAO_APLICAVEL";1;N;"";Não permitido;array;APOS_PERIODO_ANOS; +NAO_APLICAVEL +NA";1;N;"";Não permitido;array;APOS_PERIODO_ANOS; /data/ageAdjustment/frequency;frequency;Período em anos, caso critério de reenquadramento após ou a cada período em anos.;Inteiro;3;Obrigatório;;;1;1;"";Não permitido;integer;10; /data/financialRegimeContractType;financialRegimeContractType;"Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto indicando: 1. Repartição simples 2. Repartição Capitais Cobertura 3. Capitalização + 4. NA ";Texto;;Opcional;;"REPARTICAO_SIMPLES REPARTICAO_CAPITAIS -CAPITALIZACAO";0;1;"";Não permitido;string;REPARTICAO_SIMPLES; +CAPITALIZACAO +NA";0;1;"";Não permitido;string;REPARTICAO_SIMPLES; /data/reclaim;reclaim;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/reclaim/table;table;;Lista;;Opcional;;;1;N;"";Não permitido;array;; /data/reclaim/table/initialMonthRange;initialMonthRange;;Inteiro;2;Obrigatório;;;1;1;"";Não permitido;integer;1; /data/reclaim/table/finalMonthRange;finalMonthRange;;Inteiro;2;Obrigatório;;;1;1;"";Não permitido;integer;12; -/data/reclaim/table/percentage;percentage;Percentual de faixa de resgate.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/reclaim/table/percentage;percentage;Percentual de faixa de resgate.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/reclaim/gracePeriod;gracePeriod;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/reclaim/gracePeriod/amount;amount;Informar o prazo de carência;Inteiro;;Obrigatório;;;1;1;"";Não permitido;integer;90; /data/reclaim/gracePeriod/unit;unit;"Informar o critério de carência para resgate: 1. Dias; 2. Meses; 3. Não se aplica. +4. NA ";Texto;;Obrigatório;;"DIAS MESES -NAO_APLICA";1;1;"";Não permitido;string;MESES; +NAO_APLICA +NA";1;1;"";Não permitido;string;MESES; /data/reclaim/differenciatedPercentage;differenciatedPercentage;Campo aberto (possibilidade de incluir URL);"";1024;Opcional;;;0;1;"";Não permitido;;"https://openinsurance.com.br/aaa’ Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL Exemplo: Cobertura X: a partir de 25 meses = 100% @@ -188,9 +207,11 @@ Exemplo: Cobertura X: a partir de 25 meses = 100% /data/otherGuaranteedValues;otherGuaranteedValues;"1. Saldamento 2. Benefício Prolongado 3. Não se aplica +4. NA ";Texto;;Obrigatório;;"SALDAMENTO BENEFICIO_PROLONGADO -NAO_APLICA";1;1;"";Não permitido;string;SALDAMENTO; +NAO_APLICA +NA";1;1;"";Não permitido;string;SALDAMENTO; /data/contributionPayment;contributionPayment;Pagamento da contribuição.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/contributionPayment/contributionPaymentMethod;contributionPaymentMethod;"Forma de pagamento da contribuição. - CARTAO_CREDITO @@ -202,6 +223,7 @@ NAO_APLICA";1;1;"";Não permitido;string;SALDAMENTO; - CONSIGNACAO_FOLHA_PAGAMENTO - PONTOS_PROGRAMA_BENEFICIO - OUTROS + - NA ";Texto;;Obrigatório;;"CARTAO_CREDITO DEBITO_CONTA DEBITO_CONTA_POUPANCA @@ -210,7 +232,8 @@ PIX TED_DOC CONSIGNACAO_FOLHA_PAGAMENTO PONTOS_PROGRAMA_BENEFICIO -OUTROS";1;1;"";Não permitido;string;CARTAO_CREDITO; +OUTROS +NA";1;1;"";Não permitido;string;CARTAO_CREDITO; /data/contributionPayment/contributionPaymentMethodAdditionalInfo;contributionPaymentMethodAdditionalInfo;"Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod. [Restrição] Obrigatório quando 'contributionPaymentMethod' for igual 'OUTROS'. @@ -224,13 +247,15 @@ OUTROS";1;1;"";Não permitido;string;CARTAO_CREDITO; - SEMESTRAL - BIMESTRAL - OUTROS +- NA ";Texto;;Obrigatório;;"MENSAL UNICA ANUAL TRIMESTRAL SEMESTRAL BIMESTRAL -OUTROS";1;1;"";Não permitido;string;MENSAL; +OUTROS +NA";1;1;"";Não permitido;string;MENSAL; /data/contributionPayment/contributionPeriodicityAdditionalInfo;contributionPeriodicityAdditionalInfo;"Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod. [Restrição] Obrigatório quando 'contributionPeriodicity' for igual 'OUTROS'. @@ -240,14 +265,18 @@ OUTROS";1;1;"";Não permitido;string;MENSAL; /data/minimumRequirement/contractType;contractType;"O tipo de serviço contratado. A considerar os domínios abaixo: 1. Coletivo; 2. Individual. +3. NA ";Texto;;Obrigatório;;"COLETIVO -INDIVIDUAL";1;1;"";Não permitido;string;COLETIVO; +INDIVIDUAL +NA";1;1;"";Não permitido;string;COLETIVO; /data/minimumRequirement/contractingMinRequirement;contractingMinRequirement;Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL).;Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/targetAudience;targetAudience;"A considerar os domínios abaixo: 1. Pessoa Natural 2. Pessoa Jurídica 3. Ambas (Pessoa Natural e Jurídica) + 4. NA ";Texto;23;Obrigatório;;"PESSOA_NATURAL PESSOA_JURIDICA -PESSOA_NATURAL_JURIDICA";1;1;"";Não permitido;string;PESSOA_NATURAL; +PESSOA_NATURAL_JURIDICA +NA";1;1;"";Não permitido;string;PESSOA_NATURAL; diff --git a/dictionary/getPensionSurvivalCoverages_v1.csv b/dictionary/getPensionSurvivalCoverages_v1.csv index 8beab0b65..8dd504717 100644 --- a/dictionary/getPensionSurvivalCoverages_v1.csv +++ b/dictionary/getPensionSurvivalCoverages_v1.csv @@ -3,7 +3,7 @@ /data/participant;participant;Conjunto de informações relativas ao participante do produto de Open Finance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/participant/brand;brand;Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização; /data/participant/name;name;Nome do participante do Open Finance.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização A1; -/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/participant/urlComplementaryList;urlComplementaryList;"Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; @@ -13,10 +13,10 @@ - Ambos do tipo string; - Ambos obrigatórios. -";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; +";Texto;1024;Opcional;^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))|(NA)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; /data/society;society;Conjunto de informações relativas à seguradora do produto de open insurance;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/society/name;name;Nome da Sociedade Seguradora.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Society A1; -/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/name;name;"Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade. ";Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Produto A; /data/code;code;"Código único a ser definido pela sociedade. @@ -24,15 +24,19 @@ /data/segment;segment;"Segmento do qual se trata o produto contratado 1. Seguro de Pessoas 2. Previdência +3. NA ";Texto;20;Obrigatório;;"SEGURO_PESSOAS -PREVIDENCIA";1;1;"";Não permitido;string;PREVIDENCIA; +PREVIDENCIA +NA";1;1;"";Não permitido;string;PREVIDENCIA; /data/modality;modality;"1. Contribuição Variável; 2. Benefício Definido. +3. NA ";Texto;21;Obrigatório;;"CONTRIBUICAO_VARIAVEL -BENEFICIO_DEFINIDO";1;1;"";Não permitido;string;BENEFICIO_DEFINIDO; +BENEFICIO_DEFINIDO +NA";1;1;"";Não permitido;string;BENEFICIO_DEFINIDO; /data/additionalInfo;additionalInfo;Campo aberto (possibilidade de incluir URL);Texto;1024;Opcional;;;0;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/termsAndConditions;termsAndConditions;;Lista;;Opcional;;;1;N;"";Não permitido;array;; -/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22;12 +/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$;;1;1;"";Não permitido;string;15414.622222/2222-22;2 /data/termsAndConditions/detail;detail;Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/type;type;"1. PGBL 2. PRGP @@ -47,6 +51,7 @@ BENEFICIO_DEFINIDO";1;1;"";Não permitido;string;BENEFICIO_DEFINIDO; 11. VRI 12. VDR 13. Demais produtos de Previdência. +14. NA ";Texto;27;Opcional;;"PGBL PRGP PAGP @@ -59,21 +64,25 @@ VAGP VRSA VRI VDR -DEMAIS_PRODUTOS_PREVIDENCIA";0;1;"";Não permitido;string;; +DEMAIS_PRODUTOS_PREVIDENCIA +NA";0;1;"";Não permitido;string;; /data/defferalPeriod;defferalPeriod;Período de Diferimento;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/defferalPeriod/interestRate;interestRate;Taxa de juros mensal garantida que remunera o plano durante a fase de diferimento/acumulação.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/defferalPeriod/interestRate;interestRate;Taxa de juros mensal garantida que remunera o plano durante a fase de diferimento/acumulação.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/defferalPeriod/updateIndex;updateIndex;"Índice utilizado na atualização do prêmio e do capital segurado, caso critério de atualização por meio de índice: 1. IPCA (IBGE); 2. IGP-M (FGV); 3. INPC (IBGE). +4. Não se aplica +5. NA ";Texto;5;Obrigatório;;"IPCA IGP_M INPC -NAO_SE_APLICA";1;1;"";Não permitido;string;IPCA; +NAO_SE_APLICA +NA";1;1;"";Não permitido;string;IPCA; /data/defferalPeriod/otherMinimumPerformanceGarantees;otherMinimumPerformanceGarantees;Para produtos do tipo PDR e VDR, indicação do índice de ampla divulgação utilizados como garantia mínima de desempenho.;Texto;12;Obrigatório;;;1;1;"";Não permitido;string;SELIC; -/data/defferalPeriod/reversalFinancialResults;reversalFinancialResults;Percentual de reversão de excedente financeiro na concessão. Em %.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/defferalPeriod/reversalFinancialResults;reversalFinancialResults;Percentual de reversão de excedente financeiro na concessão. Em %.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/defferalPeriod/minimumPremiums;minimumPremiums;;Lista;;Opcional;;;0;N;"";Não permitido;array;; -/data/defferalPeriod/minimumPremiums/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^[A-Z]{3}$;;0;1;"";Não permitido;string;BRL; +/data/defferalPeriod/minimumPremiums/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^([A-Z]{3})$|^(NA)$;;0;1;"";Não permitido;string;BRL; /data/defferalPeriod/minimumPremiums/periodicity;periodicity;;Texto;10;Opcional;;"DIARIO SEMANAL QUINZENAL @@ -82,8 +91,9 @@ BIMESTRAL TRIMESTRAL SEMESTRAL ANUAL -UNICO";0;1;"";Não permitido;string;MENSAL; -/data/defferalPeriod/minimumPremiums/amount;amount;Valor mínimo em R$ de prêmio/ contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único).;Texto;21;Opcional;^\d{1,16}\.\d{2,4}$;;0;1;"";Não permitido;string;250.00; +UNICO +NA";0;1;"";Não permitido;string;MENSAL; +/data/defferalPeriod/minimumPremiums/amount;amount;Valor mínimo em R$ de prêmio/ contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único).;Texto;21;Opcional;^(\d{1,16}\.\d{2,4})$|^(NA)$;;0;1;"";Não permitido;string;250.00; /data/defferalPeriod/premiumPaymentMethods;premiumPaymentMethods;;Lista;27;Opcional;;"CARTAO_CREDITO DEBITO_CONTA DEBITO_CONTA_POUPANCA @@ -94,7 +104,8 @@ REGRA_PARCEIRO CONSIGNACAO_FOLHA_PAGAMENTO PONTOS_PROGRAMA_BENEFICIO TED_DOC -OUTROS";0;N;"";Não permitido;array;CARTAO_CREDITO; +OUTROS +NA";0;N;"";Não permitido;array;CARTAO_CREDITO; /data/defferalPeriod/permissionExtraordinaryContributions;permissionExtraordinaryContributions;"Se ficam permitidos aportes extraordinários. A considerar os seguintes domínios: 1. true 2. false @@ -102,7 +113,7 @@ OUTROS";0;N;"";Não permitido;array;CARTAO_CREDITO; /data/defferalPeriod/permissionScheduledFinancialPayments;permissionScheduledFinancialPayments;"Se ficam permitidos pagamentos financeiros programados. A considerar os seguintes domínios: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;true; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/defferalPeriod/gracePeriod;gracePeriod;Prazo de carência;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/defferalPeriod/gracePeriod/redemption;redemption;"Prazo em dias de carência para resgate Para Coletivos: Valor máximo da carência. ";Número;;Obrigatório;;;1;1;"";Não permitido;number;100; @@ -113,31 +124,32 @@ OUTROS";0;N;"";Não permitido;array;CARTAO_CREDITO; /data/defferalPeriod/redemptionPaymentTerm;redemptionPaymentTerm;Prazo em dias para pagamento do resgate;Inteiro;;Obrigatório;;;1;1;"";Não permitido;integer;10; /data/defferalPeriod/portabilityPaymentTerm;portabilityPaymentTerm;Prazo em dias para pagamento da portabilidade (entre empresas diferentes).;Número;;Obrigatório;;;1;1;"";Não permitido;number;20; /data/defferalPeriod/investmentFunds;investmentFunds;;Lista;;Opcional;;;0;N;"";Não permitido;array;; -/data/defferalPeriod/investmentFunds/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/defferalPeriod/investmentFunds/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/defferalPeriod/investmentFunds/name;name;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Nome Fantasia ";Texto;80;Obrigatório;;;1;1;"";Não permitido;string;EMPRESAAPREV; /data/defferalPeriod/investmentFunds/maximumAdministrationFee;maximumAdministrationFee;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Taxa Máxima de Administração - em % -";Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +";Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/defferalPeriod/investmentFunds/typePerformanceFee;typePerformanceFee;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Tipo de taxa de performance ";Texto;13;Obrigatório;;"DIRETAMENTE INDIRETAMENTE -NAO_APLICA";1;1;"";Não permitido;string;DIRETAMENTE; +NAO_APLICA +NA";1;1;"";Não permitido;string;DIRETAMENTE; /data/defferalPeriod/investmentFunds/maximumPerformanceFee;maximumPerformanceFee;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Taxa Máxima de Performance - em % -";Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.019800;8 +";Texto;9;Opcional;^(\d{1}\.\d{6})$|^(-1.000000)$;;0;1;"";Não permitido;string;0.019800;8 /data/defferalPeriod/investmentFunds/eligibilityRule;eligibilityRule;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Regra de Elegibilidade ";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/defferalPeriod/investmentFunds/minimumContributionAmount;minimumContributionAmount;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Valor Mínimo de Contribuição -";Texto;21;Opcional;^\d{1,16}\.\d{2,4}$;;0;1;"";Não permitido;string;1000.00; +";Texto;21;Opcional;^(\d{1,16}\.\d{2,4})$|^(NA)$;;0;1;"";Não permitido;string;1000.00; /data/defferalPeriod/investmentFunds/minimumMathematicalProvisionAmount;minimumMathematicalProvisionAmount;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Valor Mínimo do Saldo Provisão matemática -";Texto;21;Opcional;^\d{1,16}\.\d{2,4}$;;0;1;"";Não permitido;string;1000.00; -/data/defferalPeriod/investmentFunds/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^[A-Z]{3}$;;0;1;"";Não permitido;string;BRL; +";Texto;21;Opcional;^(\d{1,16}\.\d{2,4})$|^(NA)$;;0;1;"";Não permitido;string;1000.00; +/data/defferalPeriod/investmentFunds/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^([A-Z]{3})$|^(NA)$;;0;1;"";Não permitido;string;BRL; /data/grantPeriodBenefit;grantPeriodBenefit;Período de concessão do benefício;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/grantPeriodBenefit/incomeModalities;incomeModalities;;Lista;;Obrigatório;;"PAGAMENTO_UNICO RENDA_PRAZO_CERTO @@ -149,7 +161,8 @@ RENDA_VITALICIA RENDA_VITALICIA_REVERSIVEL_BENEFICIARIO_INDICADO RENDA_VITALICIA_CONJUGE_CONTINUIDADE_MENORES RENDA_VITALICIA_MINIMO_GARANTIDO -RENDA_VITALICIA_PRAZO_MINIMO_GRANTIDO";1;N;"";Não permitido;array;PAGAMENTO_UNICO; +RENDA_VITALICIA_PRAZO_MINIMO_GRANTIDO +NA";1;N;"";Não permitido;array;PAGAMENTO_UNICO; /data/grantPeriodBenefit/biometricTable;biometricTable;;Lista;32;Opcional;;"AT_2000_MALE AT_2000_FEMALE AT_2000_MALE_FEMALE @@ -164,66 +177,75 @@ AT_83_FEMALE AT_83_MALE_FEMALE BR_EMSSB_MALE BR_EMSSB_FEMALE -BR_EMSSB_MALE_FEMALE";0;N;"";Não permitido;array;AT_2000_MALE; -/data/grantPeriodBenefit/interestRate;interestRate;Taxa de juros garantida utilizada para conversão em renda. Em %;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +BR_EMSSB_MALE_FEMALE +NA";0;N;"";Não permitido;array;AT_2000_MALE; +/data/grantPeriodBenefit/interestRate;interestRate;Taxa de juros garantida utilizada para conversão em renda. Em %;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/grantPeriodBenefit/updateIndex;updateIndex;"Índice utilizado na atualização do prêmio e do capital segurado, caso critério de atualização por meio de índice: 1. IPCA (IBGE); 2. IGP-M (FGV); 3. INPC (IBGE). +4. Não se aplica +5. NA ";Texto;5;Obrigatório;;"IPCA IGP_M INPC -NAO_SE_APLICA";1;1;"";Não permitido;string;IPCA; -/data/grantPeriodBenefit/reversalFinancialResults;reversalFinancialResults;Percentual de reversão de excedente financeiro na concessão. Em %.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +NAO_SE_APLICA +NA";1;1;"";Não permitido;string;IPCA; +/data/grantPeriodBenefit/reversalFinancialResults;reversalFinancialResults;Percentual de reversão de excedente financeiro na concessão. Em %.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/grantPeriodBenefit/investmentFunds;investmentFunds;;Lista;;Opcional;;;0;N;"";Não permitido;array;; -/data/grantPeriodBenefit/investmentFunds/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/grantPeriodBenefit/investmentFunds/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/grantPeriodBenefit/investmentFunds/name;name;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Nome Fantasia ";Texto;80;Obrigatório;;;1;1;"";Não permitido;string;EMPRESAAPREV; /data/grantPeriodBenefit/investmentFunds/maximumAdministrationFee;maximumAdministrationFee;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Taxa Máxima de Administração - em % -";Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +";Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/grantPeriodBenefit/investmentFunds/typePerformanceFee;typePerformanceFee;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Tipo de taxa de performance ";Texto;13;Obrigatório;;"DIRETAMENTE INDIRETAMENTE -NAO_APLICA";1;1;"";Não permitido;string;DIRETAMENTE; +NAO_APLICA +NA";1;1;"";Não permitido;string;DIRETAMENTE; /data/grantPeriodBenefit/investmentFunds/maximumPerformanceFee;maximumPerformanceFee;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Taxa Máxima de Performance - em % -";Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.019800;8 +";Texto;9;Opcional;^(\d{1}\.\d{6})$|^(-1.000000)$;;0;1;"";Não permitido;string;0.019800;8 /data/grantPeriodBenefit/investmentFunds/eligibilityRule;eligibilityRule;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Regra de Elegibilidade ";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/grantPeriodBenefit/investmentFunds/minimumContributionAmount;minimumContributionAmount;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Valor Mínimo de Contribuição -";Texto;21;Opcional;^\d{1,16}\.\d{2,4}$;;0;1;"";Não permitido;string;1000.00; +";Texto;21;Opcional;^(\d{1,16}\.\d{2,4})$|^(NA)$;;0;1;"";Não permitido;string;1000.00; /data/grantPeriodBenefit/investmentFunds/minimumMathematicalProvisionAmount;minimumMathematicalProvisionAmount;"Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: - Valor Mínimo do Saldo Provisão matemática -";Texto;21;Opcional;^\d{1,16}\.\d{2,4}$;;0;1;"";Não permitido;string;1000.00; -/data/grantPeriodBenefit/investmentFunds/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^[A-Z]{3}$;;0;1;"";Não permitido;string;BRL; +";Texto;21;Opcional;^(\d{1,16}\.\d{2,4})$|^(NA)$;;0;1;"";Não permitido;string;1000.00; +/data/grantPeriodBenefit/investmentFunds/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Opcional;^([A-Z]{3})$|^(NA)$;;0;1;"";Não permitido;string;BRL; /data/costs;costs;Custos;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/costs/loadingAntecipated;loadingAntecipated;Carregamento antecipado.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/costs/loadingAntecipated/minValue;minValue;Percentual mínimo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/costs/loadingAntecipated/maxValue;maxValue;Percentual máximo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/costs/loadingAntecipated/minValue;minValue;Percentual mínimo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 +/data/costs/loadingAntecipated/maxValue;maxValue;Percentual máximo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/costs/loadingLate;loadingLate;Carregamento postecipado.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/costs/loadingLate/minValue;minValue;Percentual mínimo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 -/data/costs/loadingLate/maxValue;maxValue;Percentual máximo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/costs/loadingLate/minValue;minValue;Percentual mínimo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 +/data/costs/loadingLate/maxValue;maxValue;Percentual máximo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/minimumRequirement;minimumRequirement;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/minimumRequirement/contractType;contractType;"O tipo de serviço contratado. A considerar os domínios abaixo: 1. Coletivo Averbado; 2. Coletivo instituído; 3. Individual. +4. NA ";Texto;27;Obrigatório;;"COLETIVO_AVERBADO COLETIVO_INSTITUIDO -INDIVIDUAL";1;1;"";Não permitido;string;COLETIVO_AVERBADO; +INDIVIDUAL +NA";1;1;"";Não permitido;string;COLETIVO_AVERBADO; /data/minimumRequirement/participantQualified;participantQualified;"Indicação se o plano é destinado para participante qualificado. A considerar os domínios abaixo: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;true; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/minimumRequirement/contractingMinRequirement;contractingMinRequirement;Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/targetAudience;targetAudience;"A considerar os domínios abaixo: 1. Pessoa Natural 2. Pessoa Jurídica + 3. NA ";Texto;23;Obrigatório;;"PESSOA_NATURAL -PESSOA_JURIDICA";1;1;"";Não permitido;string;PESSOA_NATURAL; +PESSOA_JURIDICA +NA";1;1;"";Não permitido;string;PESSOA_NATURAL; diff --git a/dictionary/getPersonalInsurance_v1.csv b/dictionary/getPersonalInsurance_v1.csv index e2e2f2d6d..af8a692ce 100644 --- a/dictionary/getPersonalInsurance_v1.csv +++ b/dictionary/getPersonalInsurance_v1.csv @@ -3,22 +3,23 @@ /data/participant;participant;Conjunto de informações relativas ao participante do produto de Open Finance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/participant/brand;brand;Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a 'marca' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização; /data/participant/name;name;Nome do participante do Open Finance.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Organização A1; -/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/participant/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/participant/urlComplementaryList;urlComplementaryList;"Espera-se que valor de retorno, após acesso ao link 'urlComplementaryList', deve ser array de objeto com a estrutura abaixo: - 'name' com o valor contido no campo 'LegalEntityName' conforme cadastro no diretório; - 'cnpjNumber' com o valor contido no campo CNPJ ('RegistrationNumber') correspondente a esta instituição; - Ambos do tipo string; - Ambos obrigatórios. -";Texto;1024;Opcional;^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; +";Texto;1024;Opcional;^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))$|^(NA)$;;0;1;"";Não permitido;string;https://empresaa1.com/companies; /data/society;society;Conjunto de informações relativas à seguradora do produto de open insurance;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/society/name;name;Nome da Sociedade Seguradora.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Society A1; -/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;13456789000112; +/data/society/cnpjNumber;cnpjNumber;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.;Texto;;Obrigatório;^(\d{14})$|^(NA)$;;1;1;"";Não permitido;string;13456789000112; /data/society/brand;brand;Nome da marca reportada pela sociedade seguradora participante do Open Finance. O conceito a que se refere a marca é em essência uma promessa das sociedades sob ela em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Marca; /data/name;name;Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;Produto A; /data/code;code;Código único a ser definido pela sociedade.;Texto;80;Obrigatório;;;1;1;"";Não permitido;string;0001; -/data/category;category;"Indicar a categoria do Produto:
  1. Tradicional
  2. Microsseguro
";Texto;12;Opcional;;"TRADICIONAL -MICROSSEGURO";0;1;"";Não permitido;string;TRADICIONAL; -/data/modality;modality;
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
;Texto;33;Obrigatório;;"FUNERAL +/data/category;category;"Indicar a categoria do Produto:
  1. Tradicional
  2. Microsseguro
  3. NA
";Texto;12;Opcional;;"TRADICIONAL +MICROSSEGURO +NA";0;1;"";Não permitido;string;TRADICIONAL; +/data/modality;modality;
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
  18. NA
;Texto;33;Obrigatório;;"FUNERAL PRESTAMISTA VIAGEM EDUCACIONAL @@ -34,7 +35,8 @@ PENSAO_PRAZO_CERTO PENSAO_MENORES_21 PENSAO_MENORES_24 PENSAO_CONJUGE_VITALICIA -PENSAO_CONJUGE_TEMPORARIA";1;1;"";Não permitido;string;FUNERAL; +PENSAO_CONJUGE_TEMPORARIA +NA";1;1;"";Não permitido;string;FUNERAL; /data/coverages;coverages;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; /data/coverages/type;type;É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura ;Texto;62;Obrigatório;;"ADIANTAMENTO_DOENCA_ESTAGIO_TERMINAL AUXILIO_CESTA_BASICA @@ -84,39 +86,43 @@ TRANSLADO_CORPO VERBA_RESCISORIA DOENCA_GRAVE TRANSLADO_MEDICO -OUTROS";1;1;"";Não permitido;string;INVALIDEZ_PERMANENTE_TOTAL_PARCIAL; +OUTROS +NA";1;1;"";Não permitido;string;INVALIDEZ_PERMANENTE_TOTAL_PARCIAL; /data/coverages/typeAdditionalInfos;typeAdditionalInfos;"Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'. Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS' ";Lista;100;Opcional;;;0;N;"";Não permitido;array;; /data/coverages/attributes;attributes;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/coverages/attributes/indemnityPaymentMethods;indemnityPaymentMethods;Listagem da forma de pagamento da indenização para cada combinação de modalidade/cobertura do produto.;Lista;42;Obrigatório;;"PAGAMENTO_CAPITAL_SEGURADO_VALOR_MONETARIO REEMBOLSO_DESPESAS -PRESTACAO_SERVICOS";1;N;"";Não permitido;array;; +PRESTACAO_SERVICOS +NA";1;N;"";Não permitido;array;; /data/coverages/attributes/indemnityPaymentFrequencies;indemnityPaymentFrequencies;Listagem de tipos de frequência de pagamento de indenização para cada combinação de modalidade/cobertura do produto.;Lista;17;Obrigatório;;"INDENIZACAO_UNICA -DIARIA_OU_PARCELA";1;N;"";Não permitido;array;INDENIZACAO_UNICA; +DIARIA_OU_PARCELA +NA";1;N;"";Não permitido;array;INDENIZACAO_UNICA; /data/coverages/attributes/minValue;minValue;Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/coverages/attributes/minValue/amount;amount;;Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;0.01; -/data/coverages/attributes/minValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/coverages/attributes/minValue/amount;amount;;Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;0.01; +/data/coverages/attributes/minValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^([A-Z]{3})$|^(NA)$;;1;1;"";Não permitido;string;BRL; /data/coverages/attributes/maxValue;maxValue;Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/coverages/attributes/maxValue/amount;amount;;Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;0.01; -/data/coverages/attributes/maxValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/coverages/attributes/maxValue/amount;amount;;Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;0.01; +/data/coverages/attributes/maxValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^([A-Z]{3})$|^(NA)$;;1;1;"";Não permitido;string;BRL; /data/coverages/attributes/indemnifiablePeriods;indemnifiablePeriods;Listagem de período indenizável para cada combinação de modalidade/cobertura do produto.;Lista;50;Obrigatório;;;1;N;"";Não permitido;array;ATE_FIM_CICLO_DETERMINADO; /data/coverages/attributes/maximumQtyIndemnifiableInstallments;maximumQtyIndemnifiableInstallments;Caso o período indenizável seja relacionado a parcelas, listagem de número máximo de parcelas indenizáveis para cada combinação de modalidade/ cobertura do produto.;Inteiro;10;Obrigatório;;;1;1;"";Não permitido;integer;10; /data/coverages/attributes/gracePeriod;gracePeriod;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/coverages/attributes/gracePeriod/amount;amount;Informar o prazo de carência;Inteiro;;Opcional;;;0;1;"";Não permitido;integer;90; -/data/coverages/attributes/gracePeriod/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
";Texto;10;Opcional;;"DIAS +/data/coverages/attributes/gracePeriod/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
";Texto;10;Opcional;;"DIAS MESES -NAO_APLICA";0;1;"";Não permitido;string;MESES; +NAO_APLICA +NA";0;1;"";Não permitido;string;MESES; /data/coverages/attributes/gracePeriod/details;details;;Texto;500;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;Descrições adicionais do período de carência; /data/coverages/attributes/differentiatedGracePeriod;differentiatedGracePeriod;Campo aberto para detalhamento de período de carência diferenciado, se houver.;Texto;500;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;90 DIAS; /data/coverages/attributes/deductibleDays;deductibleDays;Listagem de franquia em dias para cada combinação de modalidade/cobertura do produto.;Inteiro;10;Obrigatório;;;1;1;"";Não permitido;integer;10; /data/coverages/attributes/differentiatedDeductibleDays;differentiatedDeductibleDays;Detalhamento da franquia em dias diferentes para cada cobertura que exista alguma especificidade. Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.;Inteiro;10;Opcional;;;0;1;"";Não permitido;integer;15; /data/coverages/attributes/deductible;deductible;Listagem de franquia em reais para cada combinação de modalidade/cobertura do produto.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/coverages/attributes/deductible/amount;amount;;Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;0.01; -/data/coverages/attributes/deductible/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/coverages/attributes/deductible/amount;amount;;Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;0.01; +/data/coverages/attributes/deductible/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^([A-Z]{3})$|^(NA)$;;1;1;"";Não permitido;string;BRL; /data/coverages/attributes/differentiatedDeductible;differentiatedDeductible;Detalhamento da franquia em reais diferentes para cada cobertura que exista alguma especificidade.
Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.;Objeto;;Opcional;;;0;1;"";Não permitido;object;; -/data/coverages/attributes/differentiatedDeductible/amount;amount;;Texto;21;Obrigatório;^\d{1,16}\.\d{2,4}$;;1;1;"";Não permitido;string;0.01; -/data/coverages/attributes/differentiatedDeductible/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; +/data/coverages/attributes/differentiatedDeductible/amount;amount;;Texto;21;Obrigatório;^(\d{1,16}\.\d{2,4})$|^(NA)$;;1;1;"";Não permitido;string;0.01; +/data/coverages/attributes/differentiatedDeductible/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^([A-Z]{3})$|^(NA)$;;1;1;"";Não permitido;string;BRL; /data/coverages/attributes/excludedRisks;excludedRisks;;Lista;40;Obrigatório;;"ATO_RECONHECIMENTO_PERIGOSO ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO OPERACOES_GUERRA @@ -126,12 +132,13 @@ DOENCAS_LESOES_PREEXISTENTES EPIDEMIAS_PANDEMIAS SUICIDIO ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR -OUTROS";1;N;"";Não permitido;array;ATO_RECONHECIMENTO_PERIGOSO; +OUTROS +NA";1;N;"";Não permitido;array;ATO_RECONHECIMENTO_PERIGOSO; /data/coverages/attributes/excludedRisksURL;excludedRisksURL;Campo aberto (possibilidade de incluir URL);Texto;1024;Opcional;;;0;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/coverages/attributes/allowApartPurchase;allowApartPurchase;"Indicar se a cobertura pode ser contratada isoladamente ou não: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;; /data/assistanceTypes;assistanceTypes;;Lista;43;Opcional;;"ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA ARQUITETO_VIRTUAL ASSESSORIA_FINANCEIRA @@ -187,54 +194,63 @@ SUSTENTAVEL_DESCARTE_ECOLOGICO TELEMEDICINA VIAGEM VITIMA -OUTROS";0;N;"";Não permitido;array;ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA; +OUTROS +NA";0;N;"";Não permitido;array;ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA; /data/assistanceTypesAdditionalInfos;assistanceTypesAdditionalInfos;Lista a ser preenchido pelas participantes quando houver ‘Outros’ no campo ‘Tipo de Assistência’;Lista;;Opcional;;;0;N;"";Não permitido;array;; /data/additionals;additionals;;Lista;44;Obrigatório;;"SORTEIO SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO OUTROS -NAO_HA";1;N;"";Não permitido;array;SORTEIO; +NAO_HA +NA";1;N;"";Não permitido;array;SORTEIO; /data/termsAndConditions;termsAndConditions;;Lista;;Obrigatório;;;1;N;"";Não permitido;array;; -/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2}$;;1;1;"";Não permitido;string;15414.622222/2222-22;12 +/data/termsAndConditions/susepProcessNumber;susepProcessNumber;"Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.";Texto;20;Obrigatório;^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$;;1;1;"";Não permitido;string;15414.622222/2222-22;2 /data/termsAndConditions/detail;detail;Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/globalCapital;globalCapital;"A considerar os seguintes domínios: 1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;true; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;true; /data/terms;terms;;Lista;23;Obrigatório;;"VITALICIA TEMPORARIA_PRAZO_FIXO -TEMPORARIA_INTERMITENTE";1;N;"";Não permitido;array;VITALICIA; +TEMPORARIA_INTERMITENTE +NA";1;N;"";Não permitido;array;VITALICIA; /data/pmbacRemuneration;pmbacRemuneration;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; -/data/pmbacRemuneration/interestRate;interestRate;Taxa de juros para capitalização da PMBaC;Texto;8;Opcional;^\d{1}\.\d{6}$;;0;1;"";Não permitido;string;0.019800;8 +/data/pmbacRemuneration/interestRate;interestRate;Taxa de juros para capitalização da PMBaC;Texto;9;Opcional;^(\d{1}\.\d{6})$|^(-1.000000)$;;0;1;"";Não permitido;string;0.019800;8 /data/pmbacRemuneration/updateIndexes;updateIndexes;;Lista;;Opcional;;"IPCA IGP_M -INPC";0;N;"";Não permitido;array;IPCA; +INPC +NA";0;N;"";Não permitido;array;IPCA; /data/benefitRecalculation;benefitRecalculation;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/benefitRecalculation/criterias;criterias;;Lista;;Obrigatório;;"INDICE VINCULADO_SALDO_DEVEDOR -VARIAVEL_ACORDO_CRITERIO_ESPECIFICO";1;N;"";Não permitido;array;; +VARIAVEL_ACORDO_CRITERIO_ESPECIFICO +NA";1;N;"";Não permitido;array;; /data/benefitRecalculation/updateIndexes;updateIndexes;;Lista;;Opcional;;"IPCA IGP_M -INPC";0;N;"";Não permitido;array;IPCA; +INPC +NA";0;N;"";Não permitido;array;IPCA; /data/ageAdjustment;ageAdjustment;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/ageAdjustment/criterias;criterias;;Lista;27;Obrigatório;;"APOS_PERIODO_ANOS CADA_PERIODO_ANOS MUDANCA_FAIXA_ETARIA -NAO_APLICAVEL";1;N;"";Não permitido;array;APOS_PERIODO_ANOS; +NAO_APLICAVEL +NA";1;N;"";Não permitido;array;APOS_PERIODO_ANOS; /data/ageAdjustment/frequency;frequency;Período em anos, caso critério de reenquadramento após ou a cada período em anos.;Inteiro;3;Obrigatório;;;1;1;"";Não permitido;integer;10; /data/financialRegimes;financialRegimes;;Lista;19;Obrigatório;;"REPARTICAO_SIMPLES REPARTICAO_CAPITAIS -CAPITALIZACAO";1;N;"";Não permitido;array;REPARTICAO_SIMPLES; +CAPITALIZACAO +NA";1;N;"";Não permitido;array;REPARTICAO_SIMPLES; /data/reclaim;reclaim;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/reclaim/table;table;;Lista;;Opcional;;;1;N;"";Não permitido;array;; /data/reclaim/table/initialMonthRange;initialMonthRange;;Inteiro;2;Obrigatório;;;1;1;"";Não permitido;integer;1; /data/reclaim/table/finalMonthRange;finalMonthRange;;Inteiro;2;Obrigatório;;;1;1;"";Não permitido;integer;12; -/data/reclaim/table/percentage;percentage;Percentual de faixa de resgate.;Texto;8;Obrigatório;^\d{1}\.\d{6}$;;1;1;"";Não permitido;string;0.019800;8 +/data/reclaim/table/percentage;percentage;Percentual de faixa de resgate.;Texto;9;Obrigatório;^(\d{1}\.\d{6})$|^(-1.000000)$;;1;1;"";Não permitido;string;0.019800;8 /data/reclaim/gracePeriod;gracePeriod;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/reclaim/gracePeriod/amount;amount;Informar o prazo de carência;Inteiro;;Obrigatório;;;1;1;"";Não permitido;integer;90; -/data/reclaim/gracePeriod/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
";Texto;10;Obrigatório;;"DIAS +/data/reclaim/gracePeriod/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
";Texto;10;Obrigatório;;"DIAS MESES -NAO_APLICA";1;1;"";Não permitido;string;MESES; +NAO_APLICA +NA";1;1;"";Não permitido;string;MESES; /data/reclaim/gracePeriod/details;details;;Texto;500;Opcional;[\w\W\s]*;;0;1;"";Não permitido;string;Descrições adicionais do período de carência; /data/reclaim/differenciatedPercentage;differenciatedPercentage;Campo aberto (possibilidade de incluir URL);"";1024;Opcional;;;0;1;"";Não permitido;;"https://openinsurance.com.br/aaa’ Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL @@ -242,17 +258,20 @@ Exemplo: Cobertura X: a partir de 25 meses = 100% "; /data/otherGuaranteedValues;otherGuaranteedValues;;Lista;20;Opcional;;"SALDAMENTO BENEFICIO_PROLONGADO -NAO_APLICA";0;N;"";Não permitido;array;SALDAMENTO; +NAO_APLICA +NA";0;N;"";Não permitido;array;SALDAMENTO; /data/allowPortability;allowPortability;"1. true 2. false -";Booleano;;Obrigatório;;;1;1;"";Não permitido;boolean;; +";Booleano;;Opcional;;;0;1;"";Não permitido;boolean;; /data/portabilityGraceTime;portabilityGraceTime;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/portabilityGraceTime/amount;amount;Informar o prazo de carência;Inteiro;;Obrigatório;;;1;1;"";Não permitido;integer;90; -/data/portabilityGraceTime/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
";Texto;10;Obrigatório;;"DIAS +/data/portabilityGraceTime/unit;unit;"Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
";Texto;10;Obrigatório;;"DIAS MESES -NAO_APLICA";1;1;"";Não permitido;string;MESES; +NAO_APLICA +NA";1;1;"";Não permitido;string;MESES; /data/indemnityPaymentMethods;indemnityPaymentMethods;;Lista;18;Obrigatório;;"UNICO -SOB_FORMA_RENDA";1;N;"";Não permitido;array;UNICO; +SOB_FORMA_RENDA +NA";1;N;"";Não permitido;array;UNICO; /data/indemnityPaymentIncomes;indemnityPaymentIncomes;;Lista;38;Opcional;;"CERTA TEMPORARIA TEMPORARIA_REVERSIVEL @@ -261,7 +280,8 @@ TEMPORARIA_REVERSIVEL_MINIMO_GARANTIDO VITALICIA VITALICIA_REVERSIVEL VITALICIA_MINIMO_GARANTIDO -VITALICIA_REVERSIVEL_MINIMO_GARANTIDO";0;N;"";Não permitido;array;CERTA; +VITALICIA_REVERSIVEL_MINIMO_GARANTIDO +NA";0;N;"";Não permitido;array;CERTA; /data/premiumPayment;premiumPayment;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/premiumPayment/paymentMethods;paymentMethods;;Lista;27;Obrigatório;;"CARTAO_CREDITO CARTAO_DEBITO @@ -271,7 +291,8 @@ BOLETO_BANCARIO PIX CONSIGNACAO_FOLHA_PAGAMENTO PONTOS_PROGRAMA_BENEFICIO -REGRA_PARCEIRO";1;N;"";Não permitido;array;CARTAO_CREDITO; +REGRA_PARCEIRO +NA";1;N;"";Não permitido;array;CARTAO_CREDITO; /data/premiumPayment/frequencies;frequencies;;Lista;10;Obrigatório;;"DIARIA MENSAL UNICA @@ -279,20 +300,25 @@ ANUAL TRIMESTRAL SEMESTRAL FRACIONADO -OUTRA";1;N;"";Não permitido;array;DIARIA; +OUTRA +NA";1;N;"";Não permitido;array;DIARIA; /data/premiumPayment/contributionTax;contributionTax;Distribuição de frequência relativa aos valores referentes às taxas cobradas, nos termos do Anexo III.;Texto;500;Opcional;;;0;1;"";Não permitido;string;; /data/minimumRequirement;minimumRequirement;;Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/minimumRequirement/contractType;contractType;"A considerar os domínios abaixo: 1. Coletivo; 2. Individual + 3. NA ";Texto;10;Obrigatório;;"COLETIVO -INDIVIDUAL";1;1;"";Não permitido;string;COLETIVO; +INDIVIDUAL +NA";1;1;"";Não permitido;string;COLETIVO; /data/minimumRequirement/contractingMinRequirement;contractingMinRequirement;Campo aberto (possibilidade de incluir URL);Texto;1024;Obrigatório;;;1;1;"";Não permitido;string;https://openinsurance.com.br/aaa; /data/targetAudience;targetAudience;"A considerar os domínios abaixo: 1. Pessoa Natural 2. Pessoa Jurídica 3. Ambas (Pessoa Natural e Jurídica) + 4. NA ";Texto;23;Obrigatório;;"PESSOA_NATURAL PESSOA_JURIDICA -PESSOA_NATURAL_JURIDICA";1;1;"";Não permitido;string;PESSOA_NATURAL; +PESSOA_NATURAL_JURIDICA +NA";1;1;"";Não permitido;string;PESSOA_NATURAL; diff --git a/dictionary/resourcesGetResources_v2.csv b/dictionary/resourcesGetResources_v2.csv index 21ea3bb72..5cbb1d944 100644 --- a/dictionary/resourcesGetResources_v2.csv +++ b/dictionary/resourcesGetResources_v2.csv @@ -4,6 +4,7 @@ Contas de depósito à vista, de poupança ou de pagamento pré-paga : corresponde ao accountId; Conta de pagamento pós-paga: corresponde ao creditCardAccountId; Empréstimos, Financiamentos, Direitos creditórios descontados e Adiantamento a depositantes: corresponde ao contractId. +Renda Fixa Crédito, Renda Fixa Bancária, Renda Variável, Títulos do Tesouro Direto e Fundos de Investimentos: corresponde ao investmentId ";Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;25cac914-d8ae-6789-b215-650a6215820d;1 /data/type;type;"Tipo de recurso (vide Enum): - Account - Conta de depósito à vista, poupança ou pagamento pré-paga diff --git a/dictionary/treasureTitlesGetInvestmentsInvestmentIdBalances_v1.csv b/dictionary/treasureTitlesGetInvestmentsInvestmentIdBalances_v1.csv index f2e35b4cf..251f8bd8d 100644 --- a/dictionary/treasureTitlesGetInvestmentsInvestmentIdBalances_v1.csv +++ b/dictionary/treasureTitlesGetInvestmentsInvestmentIdBalances_v1.csv @@ -12,7 +12,7 @@ tarifas (se houver), atualizado (a mercado) na data de referência. /data/netAmount;netAmount;Valor do investimento posterior a dedução de impostos, taxas e tarifas (se houver), atualizado (a mercado) na data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/netAmount/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/netAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/incomeTax;incomeTax;"Valor do imposto provisionado considerando a alíquota vigente na data de referência. +/data/incomeTax;incomeTax;"Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. ";Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/incomeTax/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/incomeTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; @@ -22,7 +22,7 @@ Caso seja um produto com alíquota zero esse objeto pode ser enviado sem valores ";Objeto;;Opcional;;;0;1;"";Não permitido;object;; /data/financialTransactionTax/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/financialTransactionTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/blockedBalance;blockedBalance;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/blockedBalance;blockedBalance;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/blockedBalance/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/blockedBalance/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/purchaseUnitPrice;purchaseUnitPrice;Valor unitário negociado com o cliente na data de aquisição.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; diff --git a/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv b/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv index 8ebce17da..fa1dfdf95 100644 --- a/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv +++ b/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv @@ -54,5 +54,5 @@ Nos casos em que se tratar de movimento de saída e a instituição não tiver a [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;0.300000; +";Não permitido;string;0.300000;8 /data/transactionId;transactionId;Código ou identificador único prestado pela instituição para individualizar o movimento.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; diff --git a/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactions_v1.csv b/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactions_v1.csv index 8ebce17da..fa1dfdf95 100644 --- a/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactions_v1.csv +++ b/dictionary/treasureTitlesGetInvestmentsInvestmentIdTransactions_v1.csv @@ -54,5 +54,5 @@ Nos casos em que se tratar de movimento de saída e a instituição não tiver a [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. -";Não permitido;string;0.300000; +";Não permitido;string;0.300000;8 /data/transactionId;transactionId;Código ou identificador único prestado pela instituição para individualizar o movimento.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;ABCD2126019929279212650822221989319253344; diff --git a/dictionary/treasureTitlesGetInvestmentsInvestmentId_v1.csv b/dictionary/treasureTitlesGetInvestmentsInvestmentId_v1.csv index 33a55ff78..5b0822c87 100644 --- a/dictionary/treasureTitlesGetInvestmentsInvestmentId_v1.csv +++ b/dictionary/treasureTitlesGetInvestmentsInvestmentId_v1.csv @@ -4,7 +4,7 @@ : código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. ";Texto;12;Obrigatório;^[A-Z]{2}([A-Z0-9]){9}\d{1}$;;1;1;"";Não permitido;string;BRCST4CTF001; -/data/productName;productName;Descrição do ativo em questão.;Texto;70;Obrigatório;[\w\W\s]*;;1;1;"";Não permitido;string;TESOURODIRETO; +/data/productName;productName;Nome do título em questão, conforme listado no site do Tesouro Direto [https://www.tesourodireto.com.br](https://www.tesourodireto.com.br);Texto;70;Obrigatório;[\w\W\s]*;;1;1;"";Não permitido;string;Tesouro Selic 2025; /data/remuneration;remuneration;Objeto para detalhamento de remuneração do titulo.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/remuneration/indexer;indexer;Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS);Texto;;Obrigatório;;"CDI DI @@ -27,12 +27,12 @@ OUTROS";1;1;"";Não permitido;string;CDI; [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor ‘PRE FIXADO’. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor ‘PRE FIXADO’. -";Não permitido;string;0.300000; +";Não permitido;string;0.300000;8 /data/remuneration/postFixedIndexerPercentage;postFixedIndexerPercentage;"Percentual do indexador da aquisição do contrato. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de ‘PRE FIXADO’. ";Texto;8;Condicional;^\d{1}\.\d{6}$;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de ‘PRE FIXADO’. -";Não permitido;string;1.100000; +";Não permitido;string;1.100000;8 /data/remuneration/ratePeriodicity;ratePeriodicity;Periodicidade da taxa de remuneração (mensal, anual, diário e semestral);Texto;;Obrigatório;;"MENSAL ANUAL DIARIO diff --git a/dictionary/variableIncomesGetInvestmentsInvestmentIdBalances_v1.csv b/dictionary/variableIncomesGetInvestmentsInvestmentIdBalances_v1.csv index 777c28767..97967fd81 100644 --- a/dictionary/variableIncomesGetInvestmentsInvestmentIdBalances_v1.csv +++ b/dictionary/variableIncomesGetInvestmentsInvestmentIdBalances_v1.csv @@ -6,10 +6,10 @@ /data/grossAmount;grossAmount;Valor do investimento anterior à dedução de impostos, taxas e tarifas (se houver), atualizado na data de referência. Quantidade de ativos dividido pelo Fator de cotação e multiplicado pelo pelo preço de fechamento da data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/grossAmount/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/grossAmount/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/blockedBalance;blockedBalance;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/blockedBalance;blockedBalance;Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/blockedBalance/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.04; /data/blockedBalance/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/quantity;quantity;Quatidade total do ativo na data de referência.;Texto;24;Obrigatório;^\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.00000004; +/data/quantity;quantity;Quatidade total do ativo na data de referência.;Texto;25;Obrigatório;^-?\d{1,15}\.\d{2,8}$;;1;1;"";Não permitido;string;1000.00000004; /data/closingPrice;closingPrice;Preço de fechamento da data de referência.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/closingPrice/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; +/data/closingPrice/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/closingPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; diff --git a/dictionary/variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId_v1.csv b/dictionary/variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId_v1.csv index 9325275a9..1da35903b 100644 --- a/dictionary/variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId_v1.csv +++ b/dictionary/variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId_v1.csv @@ -24,12 +24,12 @@ Pode ser cobrada como um valor fixo por operação, ou um como um percentual sob /data/clearingCustodyFee;clearingCustodyFee;Taxa cobrada pelas IF para custódia.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/clearingCustodyFee/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;13.8751; /data/clearingCustodyFee/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/taxes;taxes;Impostos cobrados na operação, exceto imposto de renda.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/taxes;taxes;Impostos cobrados na operação, inclusive imposto de renda day-trade, exceto imposto de renda retido na fonte.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/taxes/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;13.8751; /data/taxes/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/incomeTax;incomeTax;Imposto de renda retido na fonte.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/incomeTax/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;13.8751; /data/incomeTax/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; -/data/netValue;netValue;Valor bruto da nota de negociação após despesas com taxa de corretagem, taxa de liquidação, taxa de registro, taxa A.N.A, emolumentos, taxa de custódia, impostos e IRRF.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; +/data/netValue;netValue;Valor líquido da nota de negociação após despesas com taxa de corretagem, taxa de liquidação, taxa de registro, taxa A.N.A, emolumentos, taxa de custódia, impostos e IRRF.;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; /data/netValue/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;4889.0012; /data/netValue/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; diff --git a/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv b/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv index 817aca0e2..cf9200e3a 100644 --- a/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv +++ b/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent_v1.csv @@ -2,18 +2,20 @@ /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; /data/type;type;"Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. ";Texto;;Obrigatório;;"ENTRADA -SAIDA";1;1;"";Não permitido;string;ENTRADA; -/data/transactionType;transactionType;"O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. +SAIDA";1;1;"";Não permitido;string;SAIDA; +/data/transactionType;transactionType;"O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. +O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. +A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. +A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. ";Texto;;Obrigatório;;"COMPRA VENDA DIVIDENDOS JCP ALUGUEIS -INPLIT -SPLIT_TRANSFERENCIA_CUSTODIA +TRANSFERENCIA_CUSTODIA TRANSFERENCIA_TITULARIDADE OUTROS";1;1;"";Não permitido;string;DIVIDENDOS; -/data/typeAdditionalInfo;typeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. +/data/transactionTypeAdditionalInfo;transactionTypeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. ";Texto;100;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. @@ -27,10 +29,10 @@ OUTROS";1;1;"";Não permitido;string;DIVIDENDOS; ";Texto;24;Opcional;^\d{1,15}\.\d{2,8}$;;0;1;"";Não permitido;string;100.0005; /data/transactionUnitPrice;transactionUnitPrice;"Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. -";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. +";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. ";Não permitido;object;; -/data/transactionUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; +/data/transactionUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/transactionUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/transactionQuantity;transactionQuantity;"Quantidade de ativos movimentados. diff --git a/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactions_v1.csv b/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactions_v1.csv index 817aca0e2..cf9200e3a 100644 --- a/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactions_v1.csv +++ b/dictionary/variableIncomesGetInvestmentsInvestmentIdTransactions_v1.csv @@ -2,18 +2,20 @@ /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; /data/type;type;"Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. ";Texto;;Obrigatório;;"ENTRADA -SAIDA";1;1;"";Não permitido;string;ENTRADA; -/data/transactionType;transactionType;"O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. +SAIDA";1;1;"";Não permitido;string;SAIDA; +/data/transactionType;transactionType;"O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. +O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. +A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. +A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. ";Texto;;Obrigatório;;"COMPRA VENDA DIVIDENDOS JCP ALUGUEIS -INPLIT -SPLIT_TRANSFERENCIA_CUSTODIA +TRANSFERENCIA_CUSTODIA TRANSFERENCIA_TITULARIDADE OUTROS";1;1;"";Não permitido;string;DIVIDENDOS; -/data/typeAdditionalInfo;typeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. +/data/transactionTypeAdditionalInfo;transactionTypeAdditionalInfo;"Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. ";Texto;100;Condicional;[\w\W\s]*;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. @@ -27,10 +29,10 @@ OUTROS";1;1;"";Não permitido;string;DIVIDENDOS; ";Texto;24;Opcional;^\d{1,15}\.\d{2,8}$;;0;1;"";Não permitido;string;100.0005; /data/transactionUnitPrice;transactionUnitPrice;"Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. -[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. -";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. +[Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. +";Objeto;;Condicional;;;0;1;" Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. ";Não permitido;object;; -/data/transactionUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;20;Obrigatório;^\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; +/data/transactionUnitPrice/amount;amount;Valor relacionado ao objeto.;Texto;21;Obrigatório;^-?\d{1,15}\.\d{2,4}$;;1;1;"";Não permitido;string;1000.0004; /data/transactionUnitPrice/currency;currency;Moeda referente ao valor monetário, seguindo o modelo ISO-4217.;Texto;3;Obrigatório;^[A-Z]{3}$;;1;1;"";Não permitido;string;BRL; /data/transactionQuantity;transactionQuantity;"Quantidade de ativos movimentados. diff --git a/dictionary/variableIncomesGetInvestmentsInvestmentId_v1.csv b/dictionary/variableIncomesGetInvestmentsInvestmentId_v1.csv index 2796f8712..bb4236323 100644 --- a/dictionary/variableIncomesGetInvestmentsInvestmentId_v1.csv +++ b/dictionary/variableIncomesGetInvestmentsInvestmentId_v1.csv @@ -1,6 +1,6 @@ Xpath;Nome;Definição;Tipo de Dado;Tamanho;Mandatoriedade;Formato;Domínio;Mínimo de Ocorrências;Máximo de Ocorrências;Restrições;Nulidade;Tipo de Dado Json;Exemplo;Tamanho mínimo /data;data;;Objeto;;Obrigatório;;;1;1;"";Não permitido;object;; -/data/issuerInstitutionCnpjNumber;issuerInstitutionCnpjNumber;CNPJ da instituição emissora.;Texto;14;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;11225860000140; +/data/issuerInstitutionCnpjNumber;issuerInstitutionCnpjNumber;CNPJ da instituição emissora. Caso a transmissora possua a informação o envio deste campo é obrigatório.;Texto;14;Opcional;^\d{14}$;;0;1;"";Não permitido;string;11225860000140; /data/isinCode;isinCode;"Código ISIN da emissão, Código ISIN do produto, Código da emissora: código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. ";Texto;12;Obrigatório;^[A-Z]{2}([A-Z0-9]){9}\d{1}$;;1;1;"";Não permitido;string;BRCST4CTF001; /data/ticker;ticker;Código de negociação para identificação de ativos negociados em bolsa.;Texto;35;Obrigatório;[\w\W\s]*;;1;1;"";Não permitido;string;PETR4; diff --git a/dictionary/variableIncomesGetInvestments_v1.csv b/dictionary/variableIncomesGetInvestments_v1.csv index 221b62208..a85f27253 100644 --- a/dictionary/variableIncomesGetInvestments_v1.csv +++ b/dictionary/variableIncomesGetInvestments_v1.csv @@ -2,4 +2,4 @@ /data;data;;Lista;;Obrigatório;;;0;N;"";Não permitido;array;; /data/brandName;brandName;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).;Texto;80;Obrigatório;[\w\W\s]*;;1;1;"";Não permitido;string;Organização A; /data/companyCnpj;companyCnpj;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.;Texto;14;Obrigatório;^\d{14}$;;1;1;"";Não permitido;string;21281590001660; -/data/investmentId;investmentId;Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;92792126019929200000000000000000000000000; +/data/investmentId;investmentId;Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. Nos casos em que o cliente, após completar 12 meses da última movimentação e com quantidade de ativos zerada (cliente não tem mais posse do produto sob custódia da transmissora), compre novamente o ativo que já investiu em períodos passados, manter o mesmo investmentId anteriormente utilizado.;Texto;100;Obrigatório;^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$;;1;1;"";Não permitido;string;92792126019929200000000000000000000000000; diff --git a/index.html b/index.html index 822f570f8..4e0906ecc 100644 --- a/index.html +++ b/index.html @@ -59,6 +59,7 @@ 'credit-fixed-incomes', 'customers', 'exchange', + 'exchanges', 'funds', 'financings', 'insurances', @@ -72,7 +73,8 @@ 'resources', 'unarranged-accounts-overdraft', 'treasure-titles', - 'variable-incomes' + 'variable-incomes', + 'webhook', ] let html = '

Open API

'; diff --git a/swagger-apis/bank-fixed-incomes/1.0.0-rc2.0.yml b/swagger-apis/bank-fixed-incomes/1.0.0-rc2.0.yml new file mode 100644 index 000000000..fbc02d00a --- /dev/null +++ b/swagger-apis/bank-fixed-incomes/1.0.0-rc2.0.yml @@ -0,0 +1,1410 @@ +openapi: 3.0.0 +info: + title: API Bank Fixed Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Fixa Bancária Open Finance Brasil (Fase 4). API que retorna informações de operações de investimento do tipo Renda Fixa Bancária (CDB/RDB, LCI e LCA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. + version: 1.0.0-rc2.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/bank-fixed-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/bank-fixed-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: banktFixedIncomesGetInvestments + description: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseBankFixedIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseBankFixedIncomeIdentifyProduct' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentIdBalances + description: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + - $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/OkResponseBankFixedIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseBankFixedIncomesProductMovement' + '400': + $ref: '#/components/responses/TransactionsBadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/TransactionsUnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/TransactionsForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/TransactionsNotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/TransactionsMethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/TransactionsNotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/TransactionsUnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/TransactionsLockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TransactionsTooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/TransactionsInternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/TransactionsGatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/TransactionsSiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateMaxLimited' + - $ref: '#/components/parameters/toTransactionDateMaxLimited' + responses: + '200': + $ref: '#/components/responses/ResponseBankFixedIncomesProductMovement' + '400': + $ref: '#/components/responses/TransactionsBadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/TransactionsUnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/TransactionsForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/TransactionsNotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/TransactionsMethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/TransactionsNotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/TransactionsUnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/TransactionsLockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TransactionsTooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/TransactionsInternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/TransactionsGatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/TransactionsSiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes +components: + schemas: + 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 + additionalProperties: false + meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + additionalProperties: false + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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' + ResponseBankFixedIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentType + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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' + maxLength: 14 + pattern: '^\d{14}$' + example: '21281590001660' + investmentType: + $ref: '#/components/schemas/EnumInvestmentType' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/IdentifyProduct' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - referenceDateTime + - quantity + - updatedUnitPrice + - grossAmount + - netAmount + - incomeTax + - financialTransactionTax + - blockedBalance + - purchaseUnitPrice + properties: + referenceDateTime: + type: string + format: date-time + description: 'data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z).' + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + maxLength: 20 + quantity: + type: string + format: double + description: Quantidade de títulos detidos na data da posição do cliente + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.0004' + updatedUnitPrice: + type: object + required: + - amount + - currency + description: Valor bruto unitário atualizado na data de referência. + properties: + amount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + $ref: '#/components/schemas/BalanceCurrency' + grossAmount: + description: Valor do investimento que se refere a quantidade multiplicado pelo PU atualizado na data de referência; + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + netAmount: + description: 'Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR).' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + incomeTax: + type: object + required: + - amount + - currency + description: Valor do imposto provisionado considerando a alíquota vigente na data de referência. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + financialTransactionTax: + type: object + required: + - amount + - currency + description: Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + blockedBalance: + type: object + required: + - amount + - currency + description: 'Valor líquido não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).' + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + purchaseUnitPrice: + type: object + required: + - amount + - currency + description: Valor unitário negociado com o cliente na data de aquisição + properties: + amount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + $ref: '#/components/schemas/BalanceCurrency' + preFixedRate: + type: string + format: double + description: | + Taxa de remuneração acordada com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '0.300000' + postFixedIndexerPercentage: + type: string + format: double + description: | + Percentual do indexador acordado com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentage do endpoint /investment/{investmentId}. + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '1.000000' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/BankFixedIncomesProductMovement' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesTransactionsMeta' + additionalProperties: false + IdentifyProduct: + type: object + required: + - issuerInstitutionCnpjNumber + - investmentType + - remuneration + - issueUnitPrice + - dueDate + - issueDate + - purchaseDate + - gracePeriodDate + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora (campo opcional): código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166 + maxLength: 12 + minLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + investmentType: + $ref: '#/components/schemas/EnumInvestmentType' + remuneration: + $ref: '#/components/schemas/Remuneration' + issueUnitPrice: + type: object + description: Preço unitário de emissão do título. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + dueDate: + type: string + format: date + maxLength: 10 + minLength: 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 do título. + issueDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + description: Data de emissão do título. + clearingCode: + type: string + maxLength: 30 + pattern: '[\w\W-]*' + example: CDB421GPXXX + description: Código de registro do ativo na clearing. + purchaseDate: + type: string + format: date + maxLength: 10 + minLength: 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 aquisição do cliente. + gracePeriodDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + description: Data até a qual o cliente não poderá resgatar antecipadamente seu investimento. + additionalProperties: false + EnumInvestmentType: + type: string + description: 'Especificação do ativo em questão (CDB, RDB, LCI ou LCA)' + enum: + - CDB + - RDB + - LCI + - LCA + example: CDB + EnumBankFixedIncomeIndexer: + type: string + description: 'Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS)' + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + example: CDI + Remuneration: + type: object + description: Objeto para detalhamento de remuneração do titulo. + required: + - rateType + - ratePeriodicity + - calculation + - indexer + properties: + preFixedRate: + type: string + format: double + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '0.300000' + description: | + Taxa de remuneração pré fixada de emissão do título. 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%). + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. + postFixedIndexerPercentage: + type: string + format: double + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '1.100000' + description: | + Percentual do indexador pós fixado de emissão do título. 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%). + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. + rateType: + $ref: '#/components/schemas/EnumRateType' + ratePeriodicity: + $ref: '#/components/schemas/EnumRatePeriodicity' + calculation: + $ref: '#/components/schemas/EnumCalculation' + indexer: + $ref: '#/components/schemas/EnumBankFixedIncomeIndexer' + indexerAdditionalInfo: + type: string + description: | + Informações adicionais do indexador + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'indexer'. + maxLength: 50 + example: Dólar + pattern: '[\w\W\s]*' + additionalProperties: false + EnumRateType: + type: string + description: | + "Tipo da taxa de remuneração (linear ou exponencial)" + enum: + - LINEAR + - EXPONENCIAL + example: LINEAR + EnumRatePeriodicity: + type: string + description: | + Periodicidade da taxa de remuneração (mensal, anual, diário, semestral) + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + example: MENSAL + EnumCalculation: + type: string + description: | + "Base de cálculo (dias úteis ou dias corridos)" + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + example: DIAS_CORRIDOS + BankFixedIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + BankFixedIncomesTransactionsMeta: + type: object + description: Meta informações referente a 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' + additionalProperties: false + BankFixedIncomeLinks: + 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@:%_\+.~#?&\/\/=]*)$' + BankFixedIncomesProductMovement: + type: object + required: + - type + - transactionType + - transactionDate + - transactionUnitPrice + - transactionQuantity + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumBankFixedIncomeMovementType' + transactionType: + $ref: '#/components/schemas/EnumBankFixedIncomeTransactionType' + transactionTypeAdditionalInfo: + type: string + maxLength: 100 + pattern: '[\w\W\s]*' + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. + transactionDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + description: Data da movimentação. + transactionUnitPrice: + type: object + description: Preço unitário bruto negociado na transação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + transactionQuantity: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + description: Quantidade de títulos envolvidos na movimentação. + transactionGrossValue: + type: object + description: Valor bruto da transação (Preço unitário da movimentação x Quantidade). + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + transactionNetValue: + type: object + description: Valor líquido da transação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + remunerationTransactionRate: + type: string + format: double + maxLength: 8 + minLength: 3 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + description: | + Taxa de remuneração da transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + indexerPercentage: + type: string + format: double + maxLength: 8 + minLength: 3 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + description: | + Percentual máximo do indexador acordado com o cliente na contratação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + additionalProperties: false + EnumBankFixedIncomeMovementType: + type: string + description: | + Tipo de movimentação na visão de investimento + + - ENTRADA: APLICACAO, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + + - SAIDA: RESGATE, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + + Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de APLICACAO, considera-se type SAIDA; para cancelamento de RESGATE, considera-se type ENTRADA. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumBankFixedIncomeTransactionType: + type: string + description: 'Aplicação, resgate, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros.' + enum: + - APLICACAO + - RESGATE + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - OUTROS + example: APLICACAO + CurrencyCode: + type: string + pattern: '^[A-Z]{3}$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + BalanceCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + type: string + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + BalanceAmount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0004' + securitySchemes: + OAuth2AuthorizationCode: + 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: + bank-fixed-incomes: Escopo necessário para acesso à API Bank Fixed Incomes. O controle dos endpoints específicos é feito via permissions. + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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]*' + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + format: int32 + maximum: 1000 + 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateMaxLimited: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateMaxLimited: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + responses: + OkResponseBankFixedIncomesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesBalances' + OkResponseBankFixedIncomesProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesProductList' + ResponseBankFixedIncomeIdentifyProduct: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesProductIdentification' + ResponseBankFixedIncomesProductMovement: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesTransactions' + BadRequestWithAdditionalProperties: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptableWithAdditionalProperties: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequestsWithAdditionalProperties: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntityWithAdditionalProperties: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TransactionsBadRequestWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsForbiddenWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsGatewayTimeoutWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsInternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsLockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsMethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsNotAcceptableWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsNotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsTooManyRequestsWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsUnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsUnprocessableEntityWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsDefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsSiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' diff --git a/swagger-apis/bank-fixed-incomes/1.0.0-rc3.0.yml b/swagger-apis/bank-fixed-incomes/1.0.0-rc3.0.yml new file mode 100644 index 000000000..5d3c54ed9 --- /dev/null +++ b/swagger-apis/bank-fixed-incomes/1.0.0-rc3.0.yml @@ -0,0 +1,1417 @@ +openapi: 3.0.0 +info: + title: API Bank Fixed Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Fixa Bancária Open Finance Brasil (Fase 4). API que retorna informações de operações de investimento do tipo Renda Fixa Bancária (CDB/RDB, LCI e LCA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. + version: 1.0.0-rc3.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/bank-fixed-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/bank-fixed-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: banktFixedIncomesGetInvestments + description: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseBankFixedIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseBankFixedIncomeIdentifyProduct' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + - $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/OkResponseBankFixedIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseBankFixedIncomesProductMovement' + '400': + $ref: '#/components/responses/TransactionsBadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/TransactionsUnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/TransactionsForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/TransactionsNotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/TransactionsMethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/TransactionsNotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/TransactionsUnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/TransactionsLockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TransactionsTooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/TransactionsInternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/TransactionsGatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/TransactionsSiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateMaxLimited' + - $ref: '#/components/parameters/toTransactionDateMaxLimited' + responses: + '200': + $ref: '#/components/responses/ResponseBankFixedIncomesProductMovement' + '400': + $ref: '#/components/responses/TransactionsBadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/TransactionsUnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/TransactionsForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/TransactionsNotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/TransactionsMethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/TransactionsNotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/TransactionsUnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/TransactionsLockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TransactionsTooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/TransactionsInternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/TransactionsGatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/TransactionsSiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes +components: + schemas: + 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 + additionalProperties: false + meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + additionalProperties: false + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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' + ResponseBankFixedIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentType + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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' + maxLength: 14 + pattern: '^\d{14}$' + example: '21281590001660' + investmentType: + $ref: '#/components/schemas/EnumInvestmentType' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/IdentifyProduct' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - referenceDateTime + - quantity + - updatedUnitPrice + - grossAmount + - netAmount + - incomeTax + - financialTransactionTax + - blockedBalance + - purchaseUnitPrice + properties: + referenceDateTime: + type: string + format: date-time + description: 'data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z).' + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + maxLength: 20 + quantity: + type: string + format: double + description: Quantidade de títulos detidos na data da posição do cliente + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.0004' + updatedUnitPrice: + type: object + required: + - amount + - currency + description: Valor bruto unitário atualizado na data de referência. + properties: + amount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + $ref: '#/components/schemas/BalanceCurrency' + grossAmount: + description: Valor do investimento que se refere a quantidade multiplicado pelo PU atualizado na data de referência; + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + netAmount: + description: 'Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR).' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + incomeTax: + type: object + required: + - amount + - currency + description: Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + financialTransactionTax: + type: object + required: + - amount + - currency + description: Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + blockedBalance: + type: object + required: + - amount + - currency + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + purchaseUnitPrice: + type: object + required: + - amount + - currency + description: Valor unitário negociado com o cliente na data de aquisição + properties: + amount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + $ref: '#/components/schemas/BalanceCurrency' + preFixedRate: + type: string + format: double + description: | + Taxa de remuneração acordada com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '0.300000' + postFixedIndexerPercentage: + type: string + format: double + description: | + Percentual do indexador acordado com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentage do endpoint /investment/{investmentId}. + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '1.000000' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/BankFixedIncomesProductMovement' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesTransactionsMeta' + additionalProperties: false + IdentifyProduct: + type: object + required: + - issuerInstitutionCnpjNumber + - investmentType + - remuneration + - issueUnitPrice + - dueDate + - issueDate + - purchaseDate + - gracePeriodDate + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora (campo opcional): código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166 + maxLength: 12 + minLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + investmentType: + $ref: '#/components/schemas/EnumInvestmentType' + remuneration: + $ref: '#/components/schemas/Remuneration' + issueUnitPrice: + type: object + description: Preço unitário de emissão do título. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + dueDate: + type: string + format: date + maxLength: 10 + minLength: 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 do título. + issueDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + description: Data de emissão do título. + clearingCode: + type: string + maxLength: 30 + pattern: '[\w\W-]*' + example: CDB421GPXXX + description: Código de registro do ativo na clearing. + purchaseDate: + type: string + format: date + maxLength: 10 + minLength: 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 aquisição do cliente. + gracePeriodDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + description: Data até a qual o cliente não poderá resgatar antecipadamente seu investimento. + additionalProperties: false + EnumInvestmentType: + type: string + description: 'Especificação do ativo em questão (CDB, RDB, LCI ou LCA)' + enum: + - CDB + - RDB + - LCI + - LCA + example: CDB + EnumBankFixedIncomeIndexer: + type: string + description: 'Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS)' + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + example: CDI + Remuneration: + type: object + description: Objeto para detalhamento de remuneração do titulo. + required: + - rateType + - ratePeriodicity + - calculation + - indexer + properties: + preFixedRate: + type: string + format: double + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '0.300000' + description: | + Taxa de remuneração pré fixada de emissão do título. 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%). + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. + postFixedIndexerPercentage: + type: string + format: double + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '1.100000' + description: | + Percentual do indexador pós fixado de emissão do título. 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%). + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. + rateType: + $ref: '#/components/schemas/EnumRateType' + ratePeriodicity: + $ref: '#/components/schemas/EnumRatePeriodicity' + calculation: + $ref: '#/components/schemas/EnumCalculation' + indexer: + $ref: '#/components/schemas/EnumBankFixedIncomeIndexer' + indexerAdditionalInfo: + type: string + description: | + Informações adicionais do indexador + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'indexer'. + maxLength: 50 + example: Dólar + pattern: '[\w\W\s]*' + additionalProperties: false + EnumRateType: + type: string + description: | + "Tipo da taxa de remuneração (linear ou exponencial)" + enum: + - LINEAR + - EXPONENCIAL + example: LINEAR + EnumRatePeriodicity: + type: string + description: | + Periodicidade da taxa de remuneração (mensal, anual, diário, semestral) + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + example: MENSAL + EnumCalculation: + type: string + description: | + "Base de cálculo (dias úteis ou dias corridos)" + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + example: DIAS_CORRIDOS + BankFixedIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + BankFixedIncomesTransactionsMeta: + type: object + description: Meta informações referente a 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' + additionalProperties: false + BankFixedIncomeLinks: + 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@:%_\+.~#?&\/\/=]*)$' + BankFixedIncomesProductMovement: + type: object + required: + - type + - transactionType + - transactionDate + - transactionUnitPrice + - transactionQuantity + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumBankFixedIncomeMovementType' + transactionType: + $ref: '#/components/schemas/EnumBankFixedIncomeTransactionType' + transactionTypeAdditionalInfo: + type: string + maxLength: 100 + pattern: '[\w\W\s]*' + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. + transactionDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + description: Data da movimentação. + transactionUnitPrice: + type: object + description: Preço unitário bruto negociado na transação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + transactionQuantity: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + description: Quantidade de títulos envolvidos na movimentação. + transactionGrossValue: + type: object + description: Valor bruto da transação (Preço unitário da movimentação x Quantidade). + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + transactionNetValue: + type: object + description: Valor líquido da transação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + remunerationTransactionRate: + type: string + format: double + maxLength: 8 + minLength: 3 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + description: | + Taxa de remuneração da transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + indexerPercentage: + type: string + format: double + maxLength: 8 + minLength: 3 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + description: | + Percentual máximo do indexador acordado com o cliente na contratação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + additionalProperties: false + EnumBankFixedIncomeMovementType: + type: string + description: | + Tipo de movimentação na visão de investimento + + - ENTRADA: APLICACAO, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + + - SAIDA: RESGATE, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + + Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de APLICACAO, considera-se type SAIDA; para cancelamento de RESGATE, considera-se type ENTRADA. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumBankFixedIncomeTransactionType: + type: string + description: Aplicação, resgate, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título. + enum: + - APLICACAO + - RESGATE + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - OUTROS + example: APLICACAO + CurrencyCode: + type: string + pattern: '^[A-Z]{3}$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + BalanceCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + type: string + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + BalanceAmount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0004' + securitySchemes: + OAuth2AuthorizationCode: + 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: + bank-fixed-incomes: Escopo necessário para acesso à API Bank Fixed Incomes. O controle dos endpoints específicos é feito via permissions. + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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]*' + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + format: int32 + maximum: 1000 + 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateMaxLimited: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateMaxLimited: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + responses: + OkResponseBankFixedIncomesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesBalances' + OkResponseBankFixedIncomesProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesProductList' + ResponseBankFixedIncomeIdentifyProduct: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesProductIdentification' + ResponseBankFixedIncomesProductMovement: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesTransactions' + BadRequestWithAdditionalProperties: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptableWithAdditionalProperties: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequestsWithAdditionalProperties: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntityWithAdditionalProperties: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TransactionsBadRequestWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsForbiddenWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsGatewayTimeoutWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsInternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsLockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsMethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsNotAcceptableWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsNotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsTooManyRequestsWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsUnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsUnprocessableEntityWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsDefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsSiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' diff --git a/swagger-apis/bank-fixed-incomes/1.0.0.yml b/swagger-apis/bank-fixed-incomes/1.0.0.yml new file mode 100644 index 000000000..056b1dc94 --- /dev/null +++ b/swagger-apis/bank-fixed-incomes/1.0.0.yml @@ -0,0 +1,1458 @@ +openapi: 3.0.0 +info: + title: API Bank Fixed Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Fixa Bancária Open Finance Brasil (Fase 4). API que retorna informações de operações de investimento do tipo Renda Fixa Bancária (CDB/RDB, LCI e LCA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. + version: 1.0.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/bank-fixed-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/bank-fixed-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: banktFixedIncomesGetInvestments + description: Obtém a lista de operações de Renda Fixa Bancária mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseBankFixedIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseBankFixedIncomeIdentifyProduct' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Renda Fixa Bancária identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + - $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/OkResponseBankFixedIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Bancária identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseBankFixedIncomesProductMovement' + '400': + $ref: '#/components/responses/TransactionsBadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/TransactionsUnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/TransactionsForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/TransactionsNotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/TransactionsMethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/TransactionsNotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/TransactionsUnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/TransactionsLockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TransactionsTooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/TransactionsInternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/TransactionsGatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/TransactionsSiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: banktFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Fixa Bancária identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateMaxLimited' + - $ref: '#/components/parameters/toTransactionDateMaxLimited' + responses: + '200': + $ref: '#/components/responses/ResponseBankFixedIncomesProductMovement' + '400': + $ref: '#/components/responses/TransactionsBadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/TransactionsUnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/TransactionsForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/TransactionsNotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/TransactionsMethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/TransactionsNotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/TransactionsUnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/TransactionsLockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TransactionsTooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/TransactionsInternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/TransactionsGatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/TransactionsSiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/TransactionsDefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - bank-fixed-incomes +components: + schemas: + 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 + additionalProperties: false + meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + additionalProperties: false + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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' + ResponseBankFixedIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentType + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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' + maxLength: 14 + pattern: '^\d{14}$' + example: '21281590001660' + investmentType: + $ref: '#/components/schemas/EnumInvestmentType' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + links: + $ref: '#/components/schemas/BankFixedIncomeProductListLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/IdentifyProduct' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - referenceDateTime + - quantity + - updatedUnitPrice + - grossAmount + - netAmount + - incomeTax + - financialTransactionTax + - blockedBalance + - purchaseUnitPrice + properties: + referenceDateTime: + type: string + format: date-time + description: 'data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z).' + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + maxLength: 20 + quantity: + type: string + format: double + description: Quantidade de títulos detidos na data da posição do cliente + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.0004' + updatedUnitPrice: + type: object + required: + - amount + - currency + description: Valor bruto unitário atualizado na data de referência. + properties: + amount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + $ref: '#/components/schemas/BalanceCurrency' + grossAmount: + description: Valor do investimento que se refere a quantidade multiplicado pelo PU atualizado na data de referência; + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + netAmount: + description: 'Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR).' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + incomeTax: + type: object + required: + - amount + - currency + description: Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + financialTransactionTax: + type: object + required: + - amount + - currency + description: Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + blockedBalance: + type: object + required: + - amount + - currency + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio. + properties: + amount: + $ref: '#/components/schemas/BalanceAmount' + currency: + $ref: '#/components/schemas/BalanceCurrency' + purchaseUnitPrice: + type: object + required: + - amount + - currency + description: Valor unitário negociado com o cliente na data de aquisição + properties: + amount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + $ref: '#/components/schemas/BalanceCurrency' + preFixedRate: + type: string + format: double + description: | + Taxa de remuneração acordada com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '0.300000' + postFixedIndexerPercentage: + type: string + format: double + description: | + Percentual do indexador acordado com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. 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%). É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentage do endpoint /investment/{investmentId}. + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '1.000000' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesMeta' + additionalProperties: false + ResponseBankFixedIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/BankFixedIncomesProductMovement' + links: + $ref: '#/components/schemas/BankFixedIncomeLinks' + meta: + $ref: '#/components/schemas/BankFixedIncomesTransactionsMeta' + additionalProperties: false + IdentifyProduct: + type: object + required: + - issuerInstitutionCnpjNumber + - investmentType + - remuneration + - issueUnitPrice + - dueDate + - issueDate + - purchaseDate + - gracePeriodDate + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora (campo opcional): código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166 + maxLength: 12 + minLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + investmentType: + $ref: '#/components/schemas/EnumInvestmentType' + remuneration: + $ref: '#/components/schemas/Remuneration' + issueUnitPrice: + type: object + description: Preço unitário de emissão do título. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + dueDate: + type: string + format: date + maxLength: 10 + minLength: 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 do título. + issueDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + description: Data de emissão do título. + clearingCode: + type: string + maxLength: 30 + pattern: '[\w\W-]*' + example: CDB421GPXXX + description: Código de registro do ativo na clearing. + purchaseDate: + type: string + format: date + maxLength: 10 + minLength: 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 aquisição do cliente. + gracePeriodDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + description: Data até a qual o cliente não poderá resgatar antecipadamente seu investimento. + additionalProperties: false + EnumInvestmentType: + type: string + description: 'Especificação do ativo em questão (CDB, RDB, LCI ou LCA)' + enum: + - CDB + - RDB + - LCI + - LCA + example: CDB + EnumBankFixedIncomeIndexer: + type: string + description: 'Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS)' + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + example: CDI + Remuneration: + type: object + description: Objeto para detalhamento de remuneração do titulo. + required: + - rateType + - ratePeriodicity + - calculation + - indexer + properties: + preFixedRate: + type: string + format: double + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '0.300000' + description: | + Taxa de remuneração pré fixada de emissão do título. 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%). + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. + postFixedIndexerPercentage: + type: string + format: double + pattern: '^\d{1}\.\d{6}$' + maxLength: 8 + minLength: 8 + example: '1.100000' + description: | + Percentual do indexador pós fixado de emissão do título. 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%). + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. + rateType: + $ref: '#/components/schemas/EnumRateType' + ratePeriodicity: + $ref: '#/components/schemas/EnumRatePeriodicity' + calculation: + $ref: '#/components/schemas/EnumCalculation' + indexer: + $ref: '#/components/schemas/EnumBankFixedIncomeIndexer' + indexerAdditionalInfo: + type: string + description: | + Informações adicionais do indexador + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'indexer'. + maxLength: 50 + example: Dólar + pattern: '[\w\W\s]*' + additionalProperties: false + EnumRateType: + type: string + description: | + "Tipo da taxa de remuneração (linear ou exponencial)" + enum: + - LINEAR + - EXPONENCIAL + example: LINEAR + EnumRatePeriodicity: + type: string + description: | + Periodicidade da taxa de remuneração (mensal, anual, diário, semestral) + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + example: MENSAL + EnumCalculation: + type: string + description: | + "Base de cálculo (dias úteis ou dias corridos)" + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + example: DIAS_CORRIDOS + BankFixedIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + BankFixedIncomesTransactionsMeta: + type: object + description: Meta informações referente a 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' + additionalProperties: false + BankFixedIncomeProductListLinks: + 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@:%\+.~#?&\/\/=]*)$' + BankFixedIncomeLinks: + 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@:%_\+.~#?&\/\/=]*)$' + BankFixedIncomesProductMovement: + type: object + required: + - type + - transactionType + - transactionDate + - transactionUnitPrice + - transactionQuantity + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumBankFixedIncomeMovementType' + transactionType: + $ref: '#/components/schemas/EnumBankFixedIncomeTransactionType' + transactionTypeAdditionalInfo: + type: string + maxLength: 100 + pattern: '[\w\W\s]*' + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo Motivo da movimentação. + transactionDate: + type: string + format: date + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + description: Data da movimentação. + transactionUnitPrice: + type: object + description: Preço unitário bruto negociado na transação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + transactionQuantity: + type: string + format: double + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + description: Quantidade de títulos envolvidos na movimentação. + transactionGrossValue: + type: object + description: Valor bruto da transação (Preço unitário da movimentação x Quantidade). + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + $ref: '#/components/schemas/CurrencyCode' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + transactionNetValue: + type: object + description: Valor líquido da transação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/CurrencyCode' + remunerationTransactionRate: + type: string + format: double + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + description: | + Taxa de remuneração da transação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + indexerPercentage: + type: string + format: double + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + description: | + Percentual máximo do indexador acordado com o cliente na contratação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + additionalProperties: false + EnumBankFixedIncomeMovementType: + type: string + description: | + Tipo de movimentação na visão de investimento + + - ENTRADA: APLICACAO, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + + - SAIDA: RESGATE, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS. + + Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de APLICACAO, considera-se type SAIDA; para cancelamento de RESGATE, considera-se type ENTRADA. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumBankFixedIncomeTransactionType: + type: string + description: Aplicação, resgate, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título. + enum: + - APLICACAO + - RESGATE + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - OUTROS + example: APLICACAO + CurrencyCode: + type: string + pattern: '^[A-Z]{3}$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + BalanceCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + type: string + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + BalanceAmount: + description: Valor relacionado ao objeto. + type: string + format: double + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0004' + securitySchemes: + OAuth2AuthorizationCode: + 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: + bank-fixed-incomes: Escopo necessário para acesso à API Bank Fixed Incomes. O controle dos endpoints específicos é feito via permissions. + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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]*' + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + format: int32 + maximum: 1000 + 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateMaxLimited: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateMaxLimited: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + responses: + OkResponseBankFixedIncomesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesBalances' + OkResponseBankFixedIncomesProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesProductList' + ResponseBankFixedIncomeIdentifyProduct: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesProductIdentification' + ResponseBankFixedIncomesProductMovement: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseBankFixedIncomesTransactions' + BadRequestWithAdditionalProperties: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptableWithAdditionalProperties: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequestsWithAdditionalProperties: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntityWithAdditionalProperties: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TransactionsBadRequestWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsForbiddenWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsGatewayTimeoutWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsInternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsLockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsMethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsNotAcceptableWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsNotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsTooManyRequestsWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsUnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsUnprocessableEntityWithAdditionalProperties: + 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/ResponseErrorMetaSingle' + TransactionsDefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + TransactionsSiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' diff --git a/swagger-apis/bank-fixed-incomes/index.html b/swagger-apis/bank-fixed-incomes/index.html index 00bbf6e2f..e5a2fecea 100644 --- a/swagger-apis/bank-fixed-incomes/index.html +++ b/swagger-apis/bank-fixed-incomes/index.html @@ -45,8 +45,11 @@ window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}], - "urls.primaryName": "1.0.0-rc1.0", // default spec + urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml b/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml new file mode 100644 index 000000000..904bd5631 --- /dev/null +++ b/swagger-apis/capitalization-bonds/1.0.0-rc3.0.yml @@ -0,0 +1,823 @@ +openapi: 3.0.0 +info: + title: API Capitalization-bonds - Open Finance Brasil + description: | + As APIs descritas neste documento é referente a API de Capitalização da fase OpenInsurance do Open Finance Brasil. + version: 1.0.0-rc3.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/opendata-capitalization/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/opendata-capitalization/v1' + description: Servidor de Homologação +tags: + - name: Capitalization Bonds + description: Operações para consulta das informações de Titulos de Capitalização +paths: + /bonds: + get: + tags: + - Capitalization Bonds + summary: Conjunto de informações dos Títulos de Capitalização de uma instituição + operationId: capitalizationBondsGetProducts + description: Método para obter a lista de todos os títulos de Capitalização de uma instituição + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponseCapitalizationBondsProductsList' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' +components: + schemas: + CapitalizationBondsProductIdentificationData: + type: object + required: + - participant + - society + - name + - code + - modality + - costType + - termsAndConditions + - quotas + - capitalizationPeriod + - latePayment + - contributionPayment + - finalRedemptionRate + - redemptionPercentageEndTerm + - draws + - additionalInfo + - targetAudience + properties: + participant: + $ref: '#/components/schemas/Participant' + society: + type: object + description: Conjunto de informações relativas à seguradora do produto de open insurance + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome da Sociedade Seguradora. + maxLength: 80 + example: Society A1 + cnpjNumber: + $ref: '#/components/schemas/Participant/properties/cnpjNumber' + additionalProperties: false + name: + type: string + description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.' + maxLength: 80 + example: ACMEcap + code: + type: string + description: Código único a ser definido pela sociedade. + maxLength: 100 + example: 01234589_cap + modality: + $ref: '#/components/schemas/EnumCapitalizationBondsProductModality' + costType: + $ref: '#/components/schemas/EnumCapitalizationBondsProductCostType' + termsAndConditions: + $ref: '#/components/schemas/TermsAndConditions' + quotas: + type: array + description: Informações relativas às taxas da Quotas praticadas para cada Parcela + minItems: 1 + items: + $ref: '#/components/schemas/CapitalizationBondsProductQuota' + validity: + type: integer + format: int32 + description: Período entre a data de início e a data final para constituição do capital a ser pago ao(s) titular(es) do direito de resgate. Prazo de vigência do título de capitalização em meses (Resolução CNSP 384/20). Em meses. + maxLength: 3 + example: 48 + serieSize: + type: integer + description: 'Os títulos de capitalização que prevejam sorteio devem ser estruturados em séries, ou seja, em sequências ou em grupos de títulos submetidos às mesmas condições e características, à exceção do valor do pagamento.' + maxLength: 10 + example: 5000000 + capitalizationPeriod: + $ref: '#/components/schemas/CapitalizationBondsProductCapitalizationPeriod' + latePayment: + $ref: '#/components/schemas/LatePayment' + contributionPayment: + $ref: '#/components/schemas/ContributionPayment' + redemptionPercentageEndTerm: + type: string + description: 'Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + finalRedemptionRate: + type: string + description: Valor percentual (%) de resgate final permitido. + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + example: '0.019800' + draws: + type: array + description: Informações relativas aos Sorteios + minItems: 1 + items: + $ref: '#/components/schemas/CapitalizationBondsProductPrizeDraw' + additionalInfo: + type: string + description: 'Campo aberto (possibilidade de incluir URL) Observação: As URLs são limitadas a 2048 caracteres mas, para o contexto do Open Insurance , foi adotado a metade deste tamanho (1024). tamanho p.ex. ‘https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais.' + maxLength: 1024 + example: 'https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais' + minimumRequirementDetails: + type: string + description: | + Campo aberto (possibilidade de incluir URL). + Observação: As URLs são limitadas a 2048 caracteres mas, para o contexto do Open Insurance , foi adotado a metade deste tamanho (1024). + tamanho. p.ex. ‘https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais.’ + maxLength: 1024 + example: 'https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais' + targetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. Ambas (Pessoa Natural e Jurídica) + 4. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - PESSOA_NATURAL_JURIDICA + - NA + example: PESSOA_NATURAL + additionalProperties: false + Participant: + type: object + description: Conjunto de informações relativas ao participante do produto de Open Finance + required: + - brand + - name + - cnpjNumber + properties: + brand: + type: string + description: 'Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Organização + name: + type: string + description: Nome do participante do Open Finance. + maxLength: 80 + example: Organização A1 + cnpjNumber: + type: string + description: '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.' + pattern: '^(\d{14})$|^(NA)$' + example: '13456789000112' + urlComplementaryList: + type: string + description: | + Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: + + - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; + + - 'cnpjNumber' com o valor contido no campo CNPJ (‘RegistrationNumber’) correspondente a esta instituição; + + - Ambos do tipo string; + + - Ambos obrigatórios. + maxLength: 1024 + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)|(NA)$' + example: 'https://empresaa1.com/companies' + additionalProperties: false + EnumCapitalizationBondsProductModality: + type: string + description: | + 1. Tradicional: A modalidade tradicional tem por objetivo restituir ao titular, ao final do prazo de vigência, no mínimo, o valor total das contribuições efetuadas pelo subscritor, desde que todas as contribuições previstas tenham sido realizadas nas datas programadas. (Res CNSP 384/20) + 2. Instrumento de Garantia: A modalidade tem por objetivo propiciar que a provisão matemática para capitalização do título de capitalização seja utilizada para assegurar o cumprimento de obrigação assumida em contrato principal pelo titular perante terceiro. (Res CNSP 384/20) + 3. Compra Programada: A modalidade compra programada garante o valor de resgate em moeda corrente nacional, sendo disponibilizada ao assim desejar e sem qualquer outro custo, pelo recebimento do bem e/ou serviço referenciado no subsidiado por acordos comerciais celebrados com indústrias, atacadistas, empresas comerciais ou prestadores de serviço. (Res CNSP 384/20) + 4. Popular: A modalidade popular tem por objetivo propiciar a capitalização da contribuição e a participação do titular em sorteios, sem que haja devolução integral do valor pago. (Res CNSP 384/20) + 5. Incentivo: A modalidade incentivo tem por objetivo a vinculação a um evento promocional de caráter comercial instituído pelo subscritor para alavancar a venda de seu(s) produto(s) ou serviços ou para fidelizar seus clientes. (Res CNSP 384/20) + 6. Filantropia Premiável: A modalidade filantropia premiável é destinada ao subscritor interessado em contribuir com entidades beneficentes de assistências sociais, certificadas nos termos da legislação vigente, e participar de sorteio(s). (Res CNSP 384/20) + 7. NA + minLength: 7 + maxLength: 24 + enum: + - TRADICIONAL + - INSTRUMENTO_GARANTIA + - COMPRA_PROGRAMADA + - POPULAR + - INCENTIVO + - FILANTROPIA_PREMIAVEL + - NA + example: TRADICIONAL + EnumCapitalizationBondsProductCostType: + type: string + description: | + Pagamento efetuado ao subscritor à sociedade de capitalização para aquisição do título de capitalização, podendo ser única, periódica ou mensal. + 1. Pagamento Único + 2. Pagamento Mensal + 3. Pagamento Periódico + 4. NA + minLength: 15 + maxLength: 19 + enum: + - PAGAMENTO_UNICO + - PAGAMENTO_MENSAL + - PAGAMENTO_PERIODICO + - NA + example: PAGAMENTO_UNICO + TermsAndConditions: + type: object + required: + - susepProcessNumber + - detail + properties: + susepProcessNumber: + type: string + description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.' + minLength: 2 + maxLength: 20 + pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$' + example: 15414.622222/2222-22 + detail: + type: string + description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)' + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + CapitalizationBondsProductQuota: + type: object + required: + - quota + - capitalizationQuota + - raffleQuota + - chargingQuota + properties: + quota: + type: number + format: integer + description: Número da parcela. + maxLength: 3 + example: 10 + capitalizationQuota: + type: string + description: Percentual da contribuição destinado à constituição de capital referente ao direito de resgate. (Resolução CNSP 384/20) Em porcentagem(%). + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + raffleQuota: + type: string + description: 'Percentual da contribuição destinado a custear os sorteios, se previstos no plano. (Resolução CNSP 384/20) Em porcentagem(%).' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + chargingQuota: + type: string + description: 'Percentual da contribuição destinado aos custos de despesas com corretagem, colocação e administração do título de capitalização, emissão, divulgação, lucro da sociedade de capitalização e eventuais despesas relativas ao custeio da contemplação obrigatória e da distribuição de bônus. (Resolução CNSP 384/20) Em porcentagem(%).' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + additionalProperties: false + CapitalizationBondsProductCapitalizationPeriod: + type: object + required: + - interestRate + - updateIndex + - contributionAmount + - earlyRedemptions + - redemptionPercentageEndTerm + - gracePeriodRedemption + properties: + interestRate: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: 'Taxa que remunera a parte da mensalidade destinada a formar o Capital, ou seja, a Provisão Matemática de Resgate, também chamada de saldo de capitalização. Em porcentagem ao mês (% a.m.).' + maxLength: 9 + minLength: 8 + example: '0.019800' + updateIndex: + $ref: '#/components/schemas/CapitalizationBondsProductUpdateIndex' + updateIndexAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + contributionAmount: + type: array + items: + $ref: '#/components/schemas/CapitalizationPeriodContributionAmount' + minItems: 1 + earlyRedemptions: + minItems: 1 + type: array + items: + type: object + required: + - quota + - rate + properties: + quota: + type: number + format: integer + description: Parcela relativa ao Resgate Antecipado + maxLength: 3 + example: 10 + rate: + type: string + description: Taxa relativa ao Resgate Antecipado + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + additionalProperties: false + redemptionPercentageEndTerm: + type: string + description: 'Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + gracePeriodRedemption: + type: number + format: integer + description: 'Intervalo de tempo mínimo entre contratação e resgate do direito, em meses.' + maxLength: 3 + example: 48 + additionalProperties: false + CapitalizationBondsProductUpdateIndex: + type: string + maxLength: 37 + enum: + - IPCA + - IGPM + - INPC + - TR + - INDICE_REMUNERACAO_DEPOSITOS_POUPANCA + - OUTROS + - NA + example: IPCA + description: | + Índice utilizado na atualização dos pagamentos mensais (para títulos com mais de 12 meses de vigência) (não aplicável a pagamento único). + CapitalizationPeriodContributionAmount: + type: object + description: | + Corresponde ao pagamento efetuado pelo subscritor à sociedade de capitalização para a aquisição do título de capitalização, podendo ser única, periódica ou mensal (Resolução CNSP 384/20). Valores em reais (R$). Esclarecimentos adicionais SUSEP. + Na modalidade Tradicional, informar a faixa de valor mínimo e máximo em R$ de contribuição ao plano. + Para as demais modalidades, informar a lista com os valores permitidos de contribuição ao plano. + Em todas as situações indicar para qual periodicidade de pagamento se aplicam os valores: pagamento mensal, pagamento único ou periódico. + required: + - periodicity + - minimum + - maximum + - allowedValue + properties: + periodicity: + type: string + description: | + Intervalo de tempo regular previsto entre os sorteios. Conforme os domínios: + 1. Único + 2. Diário + 3. Semanal + 4. Quinzenal + 5. Mensal + 6. Bimestral + 7. Trimestral + 8. Quadrimestral + 9. Semestral + 10. Anual + 11. Outros + 12. NA + maxLength: 13 + enum: + - UNICO + - DIARIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - QUADRIMESTRAL + - SEMESTRAL + - ANUAL + - OUTROS + - NA + example: UNICO + periodicityAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + minimum: + type: string + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + description: | + Condicional: Quando modalidade for igual 'TRADICIONAL' + Valor mínimo correspondente ao pagamento efetuado pelo subscritor à sociedade de capitalização. + maxLength: 21 + example: '1.2222' + maximum: + type: string + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + description: | + Condicional: Quando modalidade for igual 'TRADICIONAL' + Valor máximo correspondente ao pagamento efetuado pelo subscritor à sociedade de capitalização. + maxLength: 21 + example: '1.2222' + allowedValue: + type: number + format: double + description: | + Condicional: Quando modalidade for diferente de 'TRADICIONAL' + Lista com os valores permitidos de contribuição ao plano. + example: 5000 + additionalProperties: false + LatePayment: + type: object + required: + - suspensionMonths + properties: + suspensionMonths: + type: number + description: 'Conforme manual SUSEP: Prazo máximo (contínuo ou intermitente) em meses que o título fica suspenso por atraso de pagamento, antes de ser cancelado (não aplicável a pagamento único).' + maxLength: 3 + example: 10 + periodExtensionOption: + type: boolean + description: | + Alteração do prazo de vigência original, pela suspensão (não aplicável a pagamento único). A considerar os seguintes domínios: + 1. true + 2. false + example: true + additionalProperties: false + ContributionPayment: + type: object + required: + - paymentMethod + - updateIndex + properties: + paymentMethod: + $ref: '#/components/schemas/CapitalizationBondsProductPaymentMethod' + paymentMethodAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + updateIndex: + $ref: '#/components/schemas/CapitalizationBondsProductUpdateIndex' + updateIndexAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + additionalProperties: false + CapitalizationBondsProductPaymentMethod: + type: string + maxLength: 27 + enum: + - CARTAO_CREDITO + - CARTAO_DEBITO + - DEBITO_CONTA_CORRENTE + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - CONSIGNACAO_FOLHA_PAGAMENTO + - PAGAMENTO_PONTOS + - OUTROS + - NA + example: CARTAO_CREDITO + description: | + Meio de Pagamento utilizado para pagamento da contribuição. A considerar os domínios abaixo: + 1. Cartão de Crédito + 2. Cartão de Débito + 3. Débito em conta corrente + 4. Débito em conta poupança + 5. Boleto bancário + 6. PIX + 7. Consignação em Folha de Pagamento + 8. Pontos de Programas de Benefício + 9. Outros + 10. NA + CapitalizationBondsProductPrizeDraw: + type: object + required: + - timeInterval + - quantity + - prizeMultiplier + - minimumContemplationProbability + properties: + timeInterval: + type: string + description: | + Intervalo de tempo regular previsto entre os sorteios. Conforme os domínios: + - UNICO + - DIÁRIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - QUADRIMESTRAL + - SEMESTRAL + - ANUAL + - OUTROS + - NA + maxLength: 13 + enum: + - UNICO + - DIÁRIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - QUADRIMESTRAL + - SEMESTRAL + - ANUAL + - OUTROS + - NA + example: UNICO + timeIntervalAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '5' + quantity: + type: number + format: integer + description: Número da quantidade de sorteios previstos ao longo da vigência. + maxLength: 5 + example: 10000 + prizeMultiplier: + type: number + format: integer + description: 'Valor dos sorteios representado por múltiplo do valor de contribuição. Por exemplo: 5 vezes valor da contribuição' + maxLength: 6 + example: 5 + earlySettlementRaffle: + description: | + Modelo de sorteio que acarreta, ao título contemplado, o seu resgate total obrigatório (Resolução Normativa 384/20). Conforme os domínios: + 1. true + 2. false + type: boolean + example: true + mandatoryContemplation: + type: boolean + description: | + Possibilidade de realização de sorteio com previsão de que o título sorteado seja obrigatoriamente um título comercializado, + desde que atingidos os requisitos definidos nas condições gerais do plano. Conforme os domínios: + 1. true + 2. false + example: true + ruleDescription: + type: string + description: 'Campo aberto para complementar a regra dos sorteios do produto, a ser feita para cada participante.' + maxLength: 200 + example: Sorteios próprios às terças-feiras Toda quarta-feira sorteios através da loteria federal. + minimumContemplationProbability: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: 'Número representativo da probabilidade mínima de contemplação nos sorteios, em porcentagem (%).' + maxLength: 9 + minLength: 8 + example: '0.019800' + additionalProperties: false + 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@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + parameters: + page: + name: page + in: query + description: Número da página que está sendo requisitada (o valor da primeira página é 1). + schema: + type: integer + 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 + responses: + OKResponseCapitalizationBondsProductsList: + description: Dados de título(s) de capitalização obtidos com sucesso. + content: + application/json: + schema: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + description: Conjunto de informações do Título de Capitalização + items: + $ref: '#/components/schemas/CapitalizationBondsProductIdentificationData' + minItems: 1 + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + 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/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' diff --git a/swagger-apis/capitalization-bonds/1.0.0.yml b/swagger-apis/capitalization-bonds/1.0.0.yml new file mode 100644 index 000000000..7a5dbf6a6 --- /dev/null +++ b/swagger-apis/capitalization-bonds/1.0.0.yml @@ -0,0 +1,823 @@ +openapi: 3.0.0 +info: + title: API Capitalization-bonds - Open Finance Brasil + description: | + As APIs descritas neste documento é referente a API de Capitalização da fase OpenInsurance do Open Finance Brasil. + version: 1.0.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/opendata-capitalization/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/opendata-capitalization/v1' + description: Servidor de Homologação +tags: + - name: Capitalization Bonds + description: Operações para consulta das informações de Titulos de Capitalização +paths: + /bonds: + get: + tags: + - Capitalization Bonds + summary: Conjunto de informações dos Títulos de Capitalização de uma instituição + operationId: capitalizationBondsGetProducts + description: Método para obter a lista de todos os títulos de Capitalização de uma instituição + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponseCapitalizationBondsProductsList' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' +components: + schemas: + CapitalizationBondsProductIdentificationData: + type: object + required: + - participant + - society + - name + - code + - modality + - costType + - termsAndConditions + - quotas + - capitalizationPeriod + - latePayment + - contributionPayment + - finalRedemptionRate + - redemptionPercentageEndTerm + - draws + - additionalInfo + - targetAudience + properties: + participant: + $ref: '#/components/schemas/Participant' + society: + type: object + description: Conjunto de informações relativas à seguradora do produto de open insurance + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome da Sociedade Seguradora. + maxLength: 80 + example: Society A1 + cnpjNumber: + $ref: '#/components/schemas/Participant/properties/cnpjNumber' + additionalProperties: false + name: + type: string + description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.' + maxLength: 80 + example: ACMEcap + code: + type: string + description: Código único a ser definido pela sociedade. + maxLength: 100 + example: 01234589_cap + modality: + $ref: '#/components/schemas/EnumCapitalizationBondsProductModality' + costType: + $ref: '#/components/schemas/EnumCapitalizationBondsProductCostType' + termsAndConditions: + $ref: '#/components/schemas/TermsAndConditions' + quotas: + type: array + description: Informações relativas às taxas da Quotas praticadas para cada Parcela + minItems: 1 + items: + $ref: '#/components/schemas/CapitalizationBondsProductQuota' + validity: + type: integer + format: int32 + description: Período entre a data de início e a data final para constituição do capital a ser pago ao(s) titular(es) do direito de resgate. Prazo de vigência do título de capitalização em meses (Resolução CNSP 384/20). Em meses. + maxLength: 3 + example: 48 + serieSize: + type: integer + description: 'Os títulos de capitalização que prevejam sorteio devem ser estruturados em séries, ou seja, em sequências ou em grupos de títulos submetidos às mesmas condições e características, à exceção do valor do pagamento.' + maxLength: 10 + example: 5000000 + capitalizationPeriod: + $ref: '#/components/schemas/CapitalizationBondsProductCapitalizationPeriod' + latePayment: + $ref: '#/components/schemas/LatePayment' + contributionPayment: + $ref: '#/components/schemas/ContributionPayment' + redemptionPercentageEndTerm: + type: string + description: 'Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + finalRedemptionRate: + type: string + description: Valor percentual (%) de resgate final permitido. + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + example: '0.019800' + draws: + type: array + description: Informações relativas aos Sorteios + minItems: 1 + items: + $ref: '#/components/schemas/CapitalizationBondsProductPrizeDraw' + additionalInfo: + type: string + description: 'Campo aberto (possibilidade de incluir URL) Observação: As URLs são limitadas a 2048 caracteres mas, para o contexto do Open Insurance , foi adotado a metade deste tamanho (1024). tamanho p.ex. ‘https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais.' + maxLength: 1024 + example: 'https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais' + minimumRequirementDetails: + type: string + description: | + Campo aberto (possibilidade de incluir URL). + Observação: As URLs são limitadas a 2048 caracteres mas, para o contexto do Open Insurance , foi adotado a metade deste tamanho (1024). + tamanho. p.ex. ‘https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais.’ + maxLength: 1024 + example: 'https://ACME.exemplo/capitalizacao/tradicional/pdf/condicoes_gerais' + targetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. Ambas (Pessoa Natural e Jurídica) + 4. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - PESSOA_NATURAL_JURIDICA + - NA + example: PESSOA_NATURAL + additionalProperties: false + Participant: + type: object + description: Conjunto de informações relativas ao participante do produto de Open Finance + required: + - brand + - name + - cnpjNumber + properties: + brand: + type: string + description: 'Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Organização + name: + type: string + description: Nome do participante do Open Finance. + maxLength: 80 + example: Organização A1 + cnpjNumber: + type: string + description: '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.' + pattern: '^(\d{14})$|^(NA)$' + example: '13456789000112' + urlComplementaryList: + type: string + description: | + Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: + + - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; + + - 'cnpjNumber' com o valor contido no campo CNPJ (‘RegistrationNumber’) correspondente a esta instituição; + + - Ambos do tipo string; + + - Ambos obrigatórios. + maxLength: 1024 + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)|(NA)$' + example: 'https://empresaa1.com/companies' + additionalProperties: false + EnumCapitalizationBondsProductModality: + type: string + description: | + 1. Tradicional: A modalidade tradicional tem por objetivo restituir ao titular, ao final do prazo de vigência, no mínimo, o valor total das contribuições efetuadas pelo subscritor, desde que todas as contribuições previstas tenham sido realizadas nas datas programadas. (Res CNSP 384/20) + 2. Instrumento de Garantia: A modalidade tem por objetivo propiciar que a provisão matemática para capitalização do título de capitalização seja utilizada para assegurar o cumprimento de obrigação assumida em contrato principal pelo titular perante terceiro. (Res CNSP 384/20) + 3. Compra Programada: A modalidade compra programada garante o valor de resgate em moeda corrente nacional, sendo disponibilizada ao assim desejar e sem qualquer outro custo, pelo recebimento do bem e/ou serviço referenciado no subsidiado por acordos comerciais celebrados com indústrias, atacadistas, empresas comerciais ou prestadores de serviço. (Res CNSP 384/20) + 4. Popular: A modalidade popular tem por objetivo propiciar a capitalização da contribuição e a participação do titular em sorteios, sem que haja devolução integral do valor pago. (Res CNSP 384/20) + 5. Incentivo: A modalidade incentivo tem por objetivo a vinculação a um evento promocional de caráter comercial instituído pelo subscritor para alavancar a venda de seu(s) produto(s) ou serviços ou para fidelizar seus clientes. (Res CNSP 384/20) + 6. Filantropia Premiável: A modalidade filantropia premiável é destinada ao subscritor interessado em contribuir com entidades beneficentes de assistências sociais, certificadas nos termos da legislação vigente, e participar de sorteio(s). (Res CNSP 384/20) + 7. NA + minLength: 7 + maxLength: 24 + enum: + - TRADICIONAL + - INSTRUMENTO_GARANTIA + - COMPRA_PROGRAMADA + - POPULAR + - INCENTIVO + - FILANTROPIA_PREMIAVEL + - NA + example: TRADICIONAL + EnumCapitalizationBondsProductCostType: + type: string + description: | + Pagamento efetuado ao subscritor à sociedade de capitalização para aquisição do título de capitalização, podendo ser única, periódica ou mensal. + 1. Pagamento Único + 2. Pagamento Mensal + 3. Pagamento Periódico + 4. NA + minLength: 15 + maxLength: 19 + enum: + - PAGAMENTO_UNICO + - PAGAMENTO_MENSAL + - PAGAMENTO_PERIODICO + - NA + example: PAGAMENTO_UNICO + TermsAndConditions: + type: object + required: + - susepProcessNumber + - detail + properties: + susepProcessNumber: + type: string + description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.' + minLength: 2 + maxLength: 20 + pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$' + example: 15414.622222/2222-22 + detail: + type: string + description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)' + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + CapitalizationBondsProductQuota: + type: object + required: + - quota + - capitalizationQuota + - raffleQuota + - chargingQuota + properties: + quota: + type: number + format: integer + description: Número da parcela. + maxLength: 3 + example: 10 + capitalizationQuota: + type: string + description: Percentual da contribuição destinado à constituição de capital referente ao direito de resgate. (Resolução CNSP 384/20) Em porcentagem(%). + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + raffleQuota: + type: string + description: 'Percentual da contribuição destinado a custear os sorteios, se previstos no plano. (Resolução CNSP 384/20) Em porcentagem(%).' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + chargingQuota: + type: string + description: 'Percentual da contribuição destinado aos custos de despesas com corretagem, colocação e administração do título de capitalização, emissão, divulgação, lucro da sociedade de capitalização e eventuais despesas relativas ao custeio da contemplação obrigatória e da distribuição de bônus. (Resolução CNSP 384/20) Em porcentagem(%).' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + additionalProperties: false + CapitalizationBondsProductCapitalizationPeriod: + type: object + required: + - interestRate + - updateIndex + - contributionAmount + - earlyRedemptions + - redemptionPercentageEndTerm + - gracePeriodRedemption + properties: + interestRate: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: 'Taxa que remunera a parte da mensalidade destinada a formar o Capital, ou seja, a Provisão Matemática de Resgate, também chamada de saldo de capitalização. Em porcentagem ao mês (% a.m.).' + maxLength: 9 + minLength: 8 + example: '0.019800' + updateIndex: + $ref: '#/components/schemas/CapitalizationBondsProductUpdateIndex' + updateIndexAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + contributionAmount: + type: array + items: + $ref: '#/components/schemas/CapitalizationPeriodContributionAmount' + minItems: 1 + earlyRedemptions: + minItems: 1 + type: array + items: + type: object + required: + - quota + - rate + properties: + quota: + type: number + format: integer + description: Parcela relativa ao Resgate Antecipado + maxLength: 3 + example: 10 + rate: + type: string + description: Taxa relativa ao Resgate Antecipado + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + additionalProperties: false + redemptionPercentageEndTerm: + type: string + description: 'Percentual mínimo da soma das contribuições efetuadas que poderá ser resgatado ao final da vigência, tendo como condição os pagamentos das parcelas nos respectivos vencimentos.' + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + example: '0.019800' + gracePeriodRedemption: + type: number + format: integer + description: 'Intervalo de tempo mínimo entre contratação e resgate do direito, em meses.' + maxLength: 3 + example: 48 + additionalProperties: false + CapitalizationBondsProductUpdateIndex: + type: string + maxLength: 37 + enum: + - IPCA + - IGPM + - INPC + - TR + - INDICE_REMUNERACAO_DEPOSITOS_POUPANCA + - OUTROS + - NA + example: IPCA + description: | + Índice utilizado na atualização dos pagamentos mensais (para títulos com mais de 12 meses de vigência) (não aplicável a pagamento único). + CapitalizationPeriodContributionAmount: + type: object + description: | + Corresponde ao pagamento efetuado pelo subscritor à sociedade de capitalização para a aquisição do título de capitalização, podendo ser única, periódica ou mensal (Resolução CNSP 384/20). Valores em reais (R$). Esclarecimentos adicionais SUSEP. + Na modalidade Tradicional, informar a faixa de valor mínimo e máximo em R$ de contribuição ao plano. + Para as demais modalidades, informar a lista com os valores permitidos de contribuição ao plano. + Em todas as situações indicar para qual periodicidade de pagamento se aplicam os valores: pagamento mensal, pagamento único ou periódico. + required: + - periodicity + - minimum + - maximum + - allowedValue + properties: + periodicity: + type: string + description: | + Intervalo de tempo regular previsto entre os sorteios. Conforme os domínios: + 1. Único + 2. Diário + 3. Semanal + 4. Quinzenal + 5. Mensal + 6. Bimestral + 7. Trimestral + 8. Quadrimestral + 9. Semestral + 10. Anual + 11. Outros + 12. NA + maxLength: 13 + enum: + - UNICO + - DIARIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - QUADRIMESTRAL + - SEMESTRAL + - ANUAL + - OUTROS + - NA + example: UNICO + periodicityAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + minimum: + type: string + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + description: | + Condicional: Quando modalidade for igual 'TRADICIONAL' + Valor mínimo correspondente ao pagamento efetuado pelo subscritor à sociedade de capitalização. + maxLength: 21 + example: '1.2222' + maximum: + type: string + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + description: | + Condicional: Quando modalidade for igual 'TRADICIONAL' + Valor máximo correspondente ao pagamento efetuado pelo subscritor à sociedade de capitalização. + maxLength: 21 + example: '1.2222' + allowedValue: + type: number + format: double + description: | + Condicional: Quando modalidade for diferente de 'TRADICIONAL' + Lista com os valores permitidos de contribuição ao plano. + example: 5000 + additionalProperties: false + LatePayment: + type: object + required: + - suspensionMonths + properties: + suspensionMonths: + type: number + description: 'Conforme manual SUSEP: Prazo máximo (contínuo ou intermitente) em meses que o título fica suspenso por atraso de pagamento, antes de ser cancelado (não aplicável a pagamento único).' + maxLength: 3 + example: 10 + periodExtensionOption: + type: boolean + description: | + Alteração do prazo de vigência original, pela suspensão (não aplicável a pagamento único). A considerar os seguintes domínios: + 1. true + 2. false + example: true + additionalProperties: false + ContributionPayment: + type: object + required: + - paymentMethod + - updateIndex + properties: + paymentMethod: + $ref: '#/components/schemas/CapitalizationBondsProductPaymentMethod' + paymentMethodAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + updateIndex: + $ref: '#/components/schemas/CapitalizationBondsProductUpdateIndex' + updateIndexAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '' + additionalProperties: false + CapitalizationBondsProductPaymentMethod: + type: string + maxLength: 27 + enum: + - CARTAO_CREDITO + - CARTAO_DEBITO + - DEBITO_CONTA_CORRENTE + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - CONSIGNACAO_FOLHA_PAGAMENTO + - PAGAMENTO_PONTOS + - OUTROS + - NA + example: CARTAO_CREDITO + description: | + Meio de Pagamento utilizado para pagamento da contribuição. A considerar os domínios abaixo: + 1. Cartão de Crédito + 2. Cartão de Débito + 3. Débito em conta corrente + 4. Débito em conta poupança + 5. Boleto bancário + 6. PIX + 7. Consignação em Folha de Pagamento + 8. Pontos de Programas de Benefício + 9. Outros + 10. NA + CapitalizationBondsProductPrizeDraw: + type: object + required: + - timeInterval + - quantity + - prizeMultiplier + - minimumContemplationProbability + properties: + timeInterval: + type: string + description: | + Intervalo de tempo regular previsto entre os sorteios. Conforme os domínios: + - UNICO + - DIÁRIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - QUADRIMESTRAL + - SEMESTRAL + - ANUAL + - OUTROS + - NA + maxLength: 13 + enum: + - UNICO + - DIÁRIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - QUADRIMESTRAL + - SEMESTRAL + - ANUAL + - OUTROS + - NA + example: UNICO + timeIntervalAdditionalInfo: + type: string + description: 'Restrição: Campo obrigatório para complementar a informação quando selecionada a opção ''OUTROS''' + maxLength: 200 + example: '5' + quantity: + type: number + format: integer + description: Número da quantidade de sorteios previstos ao longo da vigência. + maxLength: 5 + example: 10000 + prizeMultiplier: + type: number + format: integer + description: 'Valor dos sorteios representado por múltiplo do valor de contribuição. Por exemplo: 5 vezes valor da contribuição' + maxLength: 6 + example: 5 + earlySettlementRaffle: + description: | + Modelo de sorteio que acarreta, ao título contemplado, o seu resgate total obrigatório (Resolução Normativa 384/20). Conforme os domínios: + 1. true + 2. false + type: boolean + example: true + mandatoryContemplation: + type: boolean + description: | + Possibilidade de realização de sorteio com previsão de que o título sorteado seja obrigatoriamente um título comercializado, + desde que atingidos os requisitos definidos nas condições gerais do plano. Conforme os domínios: + 1. true + 2. false + example: true + ruleDescription: + type: string + description: 'Campo aberto para complementar a regra dos sorteios do produto, a ser feita para cada participante.' + maxLength: 200 + example: Sorteios próprios às terças-feiras Toda quarta-feira sorteios através da loteria federal. + minimumContemplationProbability: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: 'Número representativo da probabilidade mínima de contemplação nos sorteios, em porcentagem (%).' + maxLength: 9 + minLength: 8 + example: '0.019800' + additionalProperties: false + 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@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + parameters: + page: + name: page + in: query + description: Número da página que está sendo requisitada (o valor da primeira página é 1). + schema: + type: integer + 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 + responses: + OKResponseCapitalizationBondsProductsList: + description: Dados de título(s) de capitalização obtidos com sucesso. + content: + application/json: + schema: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + description: Conjunto de informações do Título de Capitalização + items: + $ref: '#/components/schemas/CapitalizationBondsProductIdentificationData' + minItems: 1 + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + 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/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/NotFound/content/application~1json%3B%20charset%3Dutf-8/schema' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' diff --git a/swagger-apis/capitalization-bonds/index.html b/swagger-apis/capitalization-bonds/index.html index 2b7cf310a..e5a2fecea 100644 --- a/swagger-apis/capitalization-bonds/index.html +++ b/swagger-apis/capitalization-bonds/index.html @@ -46,8 +46,10 @@ // Begin Swagger UI call region const ui = SwaggerUIBundle({ urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, - {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}], - "urls.primaryName": "1.0.0-rc2.0", // default spec + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/credit-fixed-incomes/1.0.0-rc2.0.yml b/swagger-apis/credit-fixed-incomes/1.0.0-rc2.0.yml new file mode 100644 index 000000000..c9147938c --- /dev/null +++ b/swagger-apis/credit-fixed-incomes/1.0.0-rc2.0.yml @@ -0,0 +1,1702 @@ +openapi: 3.0.0 +info: + title: API Credit Fixed Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Fixa Crédito do Open Finance Brasil – Fase 4. API que retorna informações de operações de investimento do tipo Renda Fixa Crédito (Debêntures, CRI/CRA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. + version: 1.0.0-rc2.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/credit-fixed-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/credit-fixed-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: creditFixedIncomesGetInvestments + description: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. - + 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/ResponseCreditFixedIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseCreditFixedIncomesProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentIdBalances + description: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseCreditFixedIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseCreditFixedIncomesTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/ResponseCreditFixedIncomesTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes +components: + schemas: + ResponseCreditFixedIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/CreditFixedList' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/CreditFixedIdentification' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + required: + - referenceDateTime + - updatedUnitPrice + - quantity + - grossAmount + - netAmount + - incomeTax + - financialTransactionTax + - blockedBalance + - purchaseUnitPrice + properties: + referenceDateTime: + $ref: '#/components/schemas/ReferenceDateTime' + updatedUnitPrice: + $ref: '#/components/schemas/UpdatedUnitPrice' + quantity: + type: string + format: double + description: quantidade de títulos detidos na data da posição do cliente + maxLength: 24 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '15.00' + grossAmount: + $ref: '#/components/schemas/GrossAmount' + netAmount: + $ref: '#/components/schemas/NetAmount' + incomeTax: + $ref: '#/components/schemas/IncomeTax' + financialTransactionTax: + $ref: '#/components/schemas/FinancialTransactionTax' + blockedBalance: + $ref: '#/components/schemas/BlockedBalance' + purchaseUnitPrice: + $ref: '#/components/schemas/PurchaseUnitPrice' + preFixedRate: + type: string + description: | + Taxa de remuneração acordada com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. + É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + postFixedIndexerPercentage: + $ref: '#/components/schemas/PostFixedIndexerPercentage' + fine: + $ref: '#/components/schemas/Fine' + latePayment: + $ref: '#/components/schemas/LatePayment' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/CreditFixedIncomesTransactions' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMetaTransactions' + ResponseCreditFixedIncomesTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + required: + - type + - transactionType + - transactionDate + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/Type' + transactionType: + $ref: '#/components/schemas/TransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: Data da movimentação + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + transactionUnitPrice: + type: object + description: | + valor unitário negociado com o cliente na data de aquisição + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionQuantity: + type: string + description: | + Quantidade de títulos envolvidos na movimentação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionGrossValue: + $ref: '#/components/schemas/TransactionGrossValue' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionNetValue: + $ref: '#/components/schemas/TransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/RemunerationTransactionRate' + indexerPercentage: + type: string + description: | + Percentual máximo do indexador na transação acordado com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + transactionId: + type: string + description: | + Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMetaTransactions' + BlockedBalance: + type: object + description: 'valor líquido não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + CreditFixedIdentification: + type: object + required: + - issuerInstitutionCnpjNumber + - investmentType + - remuneration + - issueUnitPrice + - issueDate + - dueDate + - voucherPaymentIndicator + - purchaseDate + - gracePeriodDate + - taxExemptProduct + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN é um código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. Caso a transmissora possua a informação o envio deste campo é obrigatório. + + [Restrição] Deve ser preenchido nos casos em que o 'clearingCode' não seja preenchido. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + investmentType: + $ref: '#/components/schemas/EnumInvestimentType' + debtorCnpjNumber: + type: string + description: | + CNPJ do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + debtorName: + type: string + description: | + Nome do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. + pattern: '[\w\W\s]*' + maxLength: 70 + example: Roberto Marino + taxExemptProduct: + $ref: '#/components/schemas/EnumTaxExemptProduct' + remuneration: + $ref: '#/components/schemas/Remuneration' + issueUnitPrice: + $ref: '#/components/schemas/IssueUnitPrice' + issueDate: + type: string + format: date + description: Data de emissão do título + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + dueDate: + type: string + format: date + description: Data de vencimento do título + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + voucherPaymentIndicator: + $ref: '#/components/schemas/VoucherPaymentIndicator' + voucherPaymentPeriodicity: + $ref: '#/components/schemas/VoucherPaymentPeriodicity' + voucherPaymentPeriodicityAdditionalInfo: + type: string + description: | + Informações adicionais da periodicidade de pagamento de cupom + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'voucherPaymentPeriodicity'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Diária + clearingCode: + type: string + description: | + Código de registro do ativo na Clearing. Caso a transmissora possua a informação o envio deste campo é obrigatório. + + [Restrição] Deve ser preenchido nos casos em que o 'isinCode' não seja preenchido. + maxLength: 30 + pattern: '[\w\W-]*' + example: CDB421GPXXX + purchaseDate: + type: string + format: date + description: Data de aquisição do cliente + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + gracePeriodDate: + type: string + format: date + description: Data até a qual o cliente não poderá resgatar antecipadamente seu investimento + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + CreditFixedIncomesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + CreditFixedIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + CreditFixedIncomesMetaTransactions: + type: object + description: Meta informações referente a 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' + CreditFixedList: + type: object + description: Lista de títulos de renda fixa crédito mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentType + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + maxLength: 80 + example: Organização A + companyCnpj: + type: string + 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' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + investmentType: + $ref: '#/components/schemas/EnumInvestimentType' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + Currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + EnumCalculation: + type: string + description: | + Base de cálculo (dias úteis ou dias corridos). + 1. dias úteis + 2. dias corridos + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + example: DIAS_CORRIDOS + EnumTaxExemptProduct: + type: string + description: Indicador de um produto incentivado + enum: + - SIM + - NAO + example: SIM + EnumIndexer: + type: string + description: | + Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo + 1. CDI + 2. DI + 3. TR + 4. IPCA + 5. IGP_M + 6. IGP_DI + 7. INPC + 8. BCP + 10. TLC + 11. SELIC + 12. PRE_FIXADO + 13. OUTROS + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + example: CDI + EnumInvestimentType: + type: string + description: 'Especificação do ativo em questão (Debêntures, CRI ou CRA).' + enum: + - DEBENTURES + - CRI + - CRA + example: CRI + EnumRatePeriodicity: + type: string + description: 'Periodicidade da taxa de remuneração (mensal, anual, diário, semestral)' + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + example: MENSAL + EnumRateType: + type: string + description: | + Tipo da taxa de remuneração + 1. LINEAR + 2. EXPONENCIAL + enum: + - LINEAR + - EXPONENCIAL + example: LINEAR + FinancialTransactionTax: + type: object + description: | + Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + Fine: + type: object + description: | + Valor de multa devido ao atraso do pagamento acordado em contrato. + Caso a transmissora possua a informação, o envio deste campo é obrigatório. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + GrossAmount: + type: object + description: valor do investimento que se refere a quantidade x PU atualizado na data de referência + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + IncomeTax: + type: object + description: | + Valor do imposto provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + IndexerPercentage: + type: string + description: | + Percentual máximo do indexador na transação acordado com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + IssueUnitPrice: + type: object + required: + - amount + - currency + properties: + amount: + type: string + description: Valor relacionado ao objeto. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + LatePayment: + type: object + description: | + Valor de mora devido ao atraso do pagamento acordado em contrato. + Caso a transmissora possua a informação, o envio deste campo é obrigatório. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + NetAmount: + type: object + description: 'valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + PostFixedIndexerPercentage: + type: string + description: | + Percentual do indexador acordado com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. + É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentagedo endpoint /investment/{investmentId}. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + PurchaseUnitPrice: + type: object + description: valor unitário negociado com o cliente na data de aquisição + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + ReferenceDateTime: + type: string + format: date-time + description: 'data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z)' + maxLength: 20 + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + Remuneration: + type: object + required: + - rateType + - ratePeriodicity + - calculation + - indexer + properties: + preFixedRate: + type: string + description: | + Valor da taxa de emissão do contrato. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + postFixedIndexerPercentage: + type: string + description: | + Percentual do indexador de emissão do contrato. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + rateType: + $ref: '#/components/schemas/EnumRateType' + ratePeriodicity: + $ref: '#/components/schemas/EnumRatePeriodicity' + calculation: + $ref: '#/components/schemas/EnumCalculation' + indexer: + $ref: '#/components/schemas/EnumIndexer' + indexerAdditionalInfo: + type: string + description: | + Informações adicionais do indexador + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'indexer'. + pattern: '[\w\W\s]*' + maxLength: 50 + example: Dólar + CreditFixedIncomesTransactions: + type: object + required: + - type + - transactionType + - transactionDate + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/Type' + transactionType: + $ref: '#/components/schemas/TransactionType' + transactionTypeAdditionalInfo: + $ref: '#/components/schemas/TypeAdditionalInfo' + transactionDate: + $ref: '#/components/schemas/TransactionDate' + transactionUnitPrice: + type: object + description: | + valor unitário negociado com o cliente na data de aquisição + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionQuantity: + $ref: '#/components/schemas/TransactionQuantity' + transactionGrossValue: + $ref: '#/components/schemas/TransactionGrossValue' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionNetValue: + $ref: '#/components/schemas/TransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/RemunerationTransactionRate' + indexerPercentage: + $ref: '#/components/schemas/IndexerPercentage' + transactionId: + $ref: '#/components/schemas/TransactionId' + RemunerationTransactionRate: + type: string + description: | + Taxa de remuneração acordada com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + TransactionDate: + type: string + format: date + description: Data da movimentação + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + TransactionGrossValue: + type: object + description: 'Valor bruto da transação (Preço unitário da movimentação x Quantidade)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + TransactionId: + type: string + description: | + Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + TransactionNetValue: + type: object + description: Valor líquido da transação + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + TransactionQuantity: + type: string + description: | + Quantidade de títulos envolvidos na movimentação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + TransactionType: + type: string + description: 'Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros' + enum: + - COMPRA + - VENDA + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - PREMIO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - MULTA + - MORA + - OUTROS + example: COMPRA + Type: + type: string + description: | + Tipo de movimentação na visão de investimento​: + + ENTRADA: COMPRA, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS​. + + SAIDA: VENDA, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, PREMIO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, MULTA, MORA, OUTROS. ​ + + Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de COMPRA, considera-se type SAIDA; para cancelamento de VENDA, considera-se type ENTRADA. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + TypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. + maxLength: 100 + pattern: '[\w\W\s]*' + UpdatedUnitPrice: + type: object + description: valor bruto unitário atualizado na data de referência; + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.0400' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + VoucherPaymentIndicator: + type: string + description: | + Indicativo se há pagamento de cupom + 1. Sim + 2. Nao + enum: + - SIM + - NAO + example: SIM + VoucherPaymentPeriodicity: + type: string + description: | + Em caso de haver pagamento de cupom, descrever a periodicidade (mensal, trimestral, semestral, anual, irregular e outros) + 1. Mensal + + 2. Trimestral + + 3. Semestral + + 4. Anual + + 5. Irregular + + 6. Outros + + [Restrição] Campo de preenchimento obrigatório pelos participantes quando houver 'SIM' no campo indicativo de pagamento de cupom 'voucherPaymentIndicator'. + enum: + - MENSAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - IRREGULAR + - OUTROS + example: MENSAL + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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' + 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: + - 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. + Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. + Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2022-01-01' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2022-12-31' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2023-02-01' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2023-02-01' + securitySchemes: + OAuth2AuthorizationCode: + 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: + credit-fixed-incomes: Escopo necessário para acesso à API Credit-Fixed-Incomes. O controle dos endpoints específicos é feito via permissions. + responses: + ResponseCreditFixedIncomesProductList: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesProductList' + ResponseCreditFixedIncomesProductIdentification: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesProductIdentification' + ResponseCreditFixedIncomesBalances: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesBalances' + ResponseCreditFixedIncomesTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesTransactions' + ResponseCreditFixedIncomesTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesTransactionsCurrent' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptableWithAdditionalProperties: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequestsWithAdditionalProperties: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntityWithAdditionalProperties: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' \ No newline at end of file diff --git a/swagger-apis/credit-fixed-incomes/1.0.0-rc3.0.yml b/swagger-apis/credit-fixed-incomes/1.0.0-rc3.0.yml new file mode 100644 index 000000000..8c84494e0 --- /dev/null +++ b/swagger-apis/credit-fixed-incomes/1.0.0-rc3.0.yml @@ -0,0 +1,1717 @@ +openapi: 3.0.0 +info: + title: API Credit Fixed Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Fixa Crédito do Open Finance Brasil – Fase 4. API que retorna informações de operações de investimento do tipo Renda Fixa Crédito (Debêntures, CRI/CRA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. + version: 1.0.0-rc3.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/credit-fixed-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/credit-fixed-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: creditFixedIncomesGetInvestments + description: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. - + 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/ResponseCreditFixedIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseCreditFixedIncomesProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseCreditFixedIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseCreditFixedIncomesTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/ResponseCreditFixedIncomesTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes +components: + schemas: + ResponseCreditFixedIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/CreditFixedList' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/CreditFixedIdentification' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + required: + - referenceDateTime + - updatedUnitPrice + - quantity + - grossAmount + - netAmount + - incomeTax + - financialTransactionTax + - blockedBalance + - purchaseUnitPrice + properties: + referenceDateTime: + $ref: '#/components/schemas/ReferenceDateTime' + updatedUnitPrice: + $ref: '#/components/schemas/UpdatedUnitPrice' + quantity: + type: string + format: double + description: quantidade de títulos detidos na data da posição do cliente + maxLength: 24 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '15.00' + grossAmount: + $ref: '#/components/schemas/GrossAmount' + netAmount: + $ref: '#/components/schemas/NetAmount' + incomeTax: + $ref: '#/components/schemas/IncomeTax' + financialTransactionTax: + $ref: '#/components/schemas/FinancialTransactionTax' + blockedBalance: + $ref: '#/components/schemas/BlockedBalance' + purchaseUnitPrice: + $ref: '#/components/schemas/PurchaseUnitPrice' + preFixedRate: + type: string + description: | + Taxa de remuneração acordada com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. + É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + postFixedIndexerPercentage: + $ref: '#/components/schemas/PostFixedIndexerPercentage' + fine: + $ref: '#/components/schemas/Fine' + latePayment: + $ref: '#/components/schemas/LatePayment' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/CreditFixedIncomesTransactions' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMetaTransactions' + ResponseCreditFixedIncomesTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + required: + - type + - transactionType + - transactionDate + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/Type' + transactionType: + $ref: '#/components/schemas/TransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: Data da movimentação + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + transactionUnitPrice: + type: object + description: | + valor unitário negociado com o cliente na data de aquisição + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionQuantity: + type: string + description: | + Quantidade de títulos envolvidos na movimentação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionGrossValue: + $ref: '#/components/schemas/TransactionGrossValue' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionNetValue: + $ref: '#/components/schemas/TransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/RemunerationTransactionRate' + indexerPercentage: + type: string + description: | + Percentual máximo do indexador na transação acordado com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + transactionId: + type: string + description: | + Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMetaTransactions' + BlockedBalance: + type: object + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + CreditFixedIdentification: + type: object + required: + - investmentType + - remuneration + - issueUnitPrice + - issueDate + - dueDate + - voucherPaymentIndicator + - purchaseDate + - taxExemptProduct + properties: + issuerInstitutionCnpjNumber: + type: string + description: | + CNPJ da instituição emissora. + + Caso a instituição tenha a informação, o envio será obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN é um código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. Caso a transmissora possua a informação o envio deste campo é obrigatório. + + [Restrição] Deve ser preenchido nos casos em que o 'clearingCode' não seja preenchido. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + investmentType: + $ref: '#/components/schemas/EnumInvestimentType' + debtorCnpjNumber: + type: string + description: | + CNPJ do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + debtorName: + type: string + description: | + Nome do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. + pattern: '[\w\W\s]*' + maxLength: 70 + example: Roberto Marino + taxExemptProduct: + $ref: '#/components/schemas/EnumTaxExemptProduct' + remuneration: + $ref: '#/components/schemas/Remuneration' + issueUnitPrice: + $ref: '#/components/schemas/IssueUnitPrice' + issueDate: + type: string + format: date + description: Data de emissão do título + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + dueDate: + type: string + format: date + description: Data de vencimento do título + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + voucherPaymentIndicator: + $ref: '#/components/schemas/VoucherPaymentIndicator' + voucherPaymentPeriodicity: + $ref: '#/components/schemas/VoucherPaymentPeriodicity' + voucherPaymentPeriodicityAdditionalInfo: + type: string + description: | + Informações adicionais da periodicidade de pagamento de cupom + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'voucherPaymentPeriodicity'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Diária + clearingCode: + type: string + description: | + Código de registro do ativo na Clearing. Caso a transmissora possua a informação o envio deste campo é obrigatório. + + [Restrição] Deve ser preenchido nos casos em que o 'isinCode' não seja preenchido. + maxLength: 30 + pattern: '[\w\W-]*' + example: CDB421GPXXX + purchaseDate: + type: string + format: date + description: Data de aquisição do cliente + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + gracePeriodDate: + type: string + format: date + description: | + Data até a qual o cliente não poderá resgatar antecipadamente seu investimento. + + Caso a instituição tenha a informação, o envio será obrigatório. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + CreditFixedIncomesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + CreditFixedIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + CreditFixedIncomesMetaTransactions: + type: object + description: Meta informações referente a 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' + CreditFixedList: + type: object + description: Lista de títulos de renda fixa crédito mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentType + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + maxLength: 80 + example: Organização A + companyCnpj: + type: string + 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' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + investmentType: + $ref: '#/components/schemas/EnumInvestimentType' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + Currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + EnumCalculation: + type: string + description: | + Base de cálculo (dias úteis ou dias corridos). + 1. dias úteis + 2. dias corridos. + + Caso a instituição tenha a informação, o envio será obrigatório. + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + example: DIAS_CORRIDOS + EnumTaxExemptProduct: + type: string + description: Indicador de um produto incentivado + enum: + - SIM + - NAO + example: SIM + EnumIndexer: + type: string + description: | + Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo + 1. CDI + 2. DI + 3. TR + 4. IPCA + 5. IGP_M + 6. IGP_DI + 7. INPC + 8. BCP + 10. TLC + 11. SELIC + 12. PRE_FIXADO + 13. OUTROS + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + example: CDI + EnumInvestimentType: + type: string + description: 'Especificação do ativo em questão (Debêntures, CRI ou CRA).' + enum: + - DEBENTURES + - CRI + - CRA + example: CRI + EnumRatePeriodicity: + type: string + description: | + Periodicidade da taxa de remuneração (mensal, anual, diário, semestral). + + Caso a instituição tenha a informação, o envio será obrigatório. + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + example: MENSAL + EnumRateType: + type: string + description: | + Tipo da taxa de remuneração + 1. LINEAR + 2. EXPONENCIAL + + Caso a instituição tenha a informação, o envio será obrigatório. + enum: + - LINEAR + - EXPONENCIAL + example: LINEAR + FinancialTransactionTax: + type: object + description: | + Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + Fine: + type: object + description: | + Valor de multa devido ao atraso do pagamento acordado em contrato. + Caso a transmissora possua a informação, o envio deste campo é obrigatório. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + GrossAmount: + type: object + description: valor do investimento que se refere a quantidade x PU atualizado na data de referência + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + IncomeTax: + type: object + description: | + Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + IndexerPercentage: + type: string + description: | + Percentual máximo do indexador na transação acordado com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + IssueUnitPrice: + type: object + required: + - amount + - currency + properties: + amount: + type: string + description: Valor relacionado ao objeto. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + LatePayment: + type: object + description: | + Valor de mora devido ao atraso do pagamento acordado em contrato. + Caso a transmissora possua a informação, o envio deste campo é obrigatório. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + NetAmount: + type: object + description: 'valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + PostFixedIndexerPercentage: + type: string + description: | + Percentual do indexador acordado com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. + É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentagedo endpoint /investment/{investmentId}. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + PurchaseUnitPrice: + type: object + description: valor unitário negociado com o cliente na data de aquisição + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + ReferenceDateTime: + type: string + format: date-time + description: 'data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z)' + maxLength: 20 + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + Remuneration: + type: object + required: + - indexer + properties: + preFixedRate: + type: string + description: | + Valor da taxa de emissão do contrato. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + postFixedIndexerPercentage: + type: string + description: | + Percentual do indexador de emissão do contrato. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + rateType: + $ref: '#/components/schemas/EnumRateType' + ratePeriodicity: + $ref: '#/components/schemas/EnumRatePeriodicity' + calculation: + $ref: '#/components/schemas/EnumCalculation' + indexer: + $ref: '#/components/schemas/EnumIndexer' + indexerAdditionalInfo: + type: string + description: | + Informações adicionais do indexador + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'indexer'. + pattern: '[\w\W\s]*' + maxLength: 50 + example: Dólar + CreditFixedIncomesTransactions: + type: object + required: + - type + - transactionType + - transactionDate + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/Type' + transactionType: + $ref: '#/components/schemas/TransactionType' + transactionTypeAdditionalInfo: + $ref: '#/components/schemas/TypeAdditionalInfo' + transactionDate: + $ref: '#/components/schemas/TransactionDate' + transactionUnitPrice: + type: object + description: | + valor unitário negociado com o cliente na data de aquisição + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionQuantity: + $ref: '#/components/schemas/TransactionQuantity' + transactionGrossValue: + $ref: '#/components/schemas/TransactionGrossValue' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionNetValue: + $ref: '#/components/schemas/TransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/RemunerationTransactionRate' + indexerPercentage: + $ref: '#/components/schemas/IndexerPercentage' + transactionId: + $ref: '#/components/schemas/TransactionId' + RemunerationTransactionRate: + type: string + description: | + Taxa de remuneração acordada com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + TransactionDate: + type: string + format: date + description: Data da movimentação + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + TransactionGrossValue: + type: object + description: 'Valor bruto da transação (Preço unitário da movimentação x Quantidade)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + TransactionId: + type: string + description: | + Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + TransactionNetValue: + type: object + description: Valor líquido da transação + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + TransactionQuantity: + type: string + description: | + Quantidade de títulos envolvidos na movimentação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + TransactionType: + type: string + description: Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título. + enum: + - COMPRA + - VENDA + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - PREMIO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - MULTA + - MORA + - OUTROS + example: COMPRA + Type: + type: string + description: | + Tipo de movimentação na visão de investimento​: + + ENTRADA: COMPRA, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS​. + + SAIDA: VENDA, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, PREMIO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, MULTA, MORA, OUTROS. ​ + + Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de COMPRA, considera-se type SAIDA; para cancelamento de VENDA, considera-se type ENTRADA. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + TypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. + maxLength: 100 + pattern: '[\w\W\s]*' + UpdatedUnitPrice: + type: object + description: valor bruto unitário atualizado na data de referência; + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.0400' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + VoucherPaymentIndicator: + type: string + description: | + Indicativo se há pagamento de cupom + 1. Sim + 2. Nao + enum: + - SIM + - NAO + example: SIM + VoucherPaymentPeriodicity: + type: string + description: | + Em caso de haver pagamento de cupom, descrever a periodicidade (mensal, trimestral, semestral, anual, irregular e outros) + 1. Mensal + + 2. Trimestral + + 3. Semestral + + 4. Anual + + 5. Irregular + + 6. Outros + + [Restrição] Campo de preenchimento obrigatório pelos participantes quando houver 'SIM' no campo indicativo de pagamento de cupom 'voucherPaymentIndicator'. + enum: + - MENSAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - IRREGULAR + - OUTROS + example: MENSAL + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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' + 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: + - 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. + Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. + Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2022-01-01' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2022-12-31' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2023-02-01' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2023-02-01' + securitySchemes: + OAuth2AuthorizationCode: + 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: + credit-fixed-incomes: Escopo necessário para acesso à API Credit-Fixed-Incomes. O controle dos endpoints específicos é feito via permissions. + responses: + ResponseCreditFixedIncomesProductList: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesProductList' + ResponseCreditFixedIncomesProductIdentification: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesProductIdentification' + ResponseCreditFixedIncomesBalances: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesBalances' + ResponseCreditFixedIncomesTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesTransactions' + ResponseCreditFixedIncomesTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesTransactionsCurrent' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptableWithAdditionalProperties: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequestsWithAdditionalProperties: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntityWithAdditionalProperties: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' \ No newline at end of file diff --git a/swagger-apis/credit-fixed-incomes/1.0.0.yml b/swagger-apis/credit-fixed-incomes/1.0.0.yml new file mode 100644 index 000000000..98ca61936 --- /dev/null +++ b/swagger-apis/credit-fixed-incomes/1.0.0.yml @@ -0,0 +1,1763 @@ +openapi: 3.0.0 +info: + title: API Credit Fixed Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Fixa Crédito do Open Finance Brasil – Fase 4. API que retorna informações de operações de investimento do tipo Renda Fixa Crédito (Debêntures, CRI/CRA) mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação do produto, rentabilidade, quantidade, prazos, saldos em posição do cliente e movimentações financeiras. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. A exposição se dará por cada operação de renda fixa contratada pelo cliente. + version: 1.0.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/credit-fixed-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/credit-fixed-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: creditFixedIncomesGetInvestments + description: Obtém a lista de operações de Renda Fixa Crédito mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. - + 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/ResponseCreditFixedIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseCreditFixedIncomesProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Renda Fixa Crédito identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseCreditFixedIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + operationId: creditFixedIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Fixa Crédito identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseCreditFixedIncomesTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: creditFixedIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Fixa Crédito identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/ResponseCreditFixedIncomesTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - credit-fixed-incomes +components: + schemas: + ResponseCreditFixedIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/CreditFixedList' + links: + $ref: '#/components/schemas/CreditFixedIncomesProductListLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/CreditFixedIdentification' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: object + required: + - referenceDateTime + - updatedUnitPrice + - quantity + - grossAmount + - netAmount + - incomeTax + - financialTransactionTax + - blockedBalance + - purchaseUnitPrice + properties: + referenceDateTime: + $ref: '#/components/schemas/ReferenceDateTime' + updatedUnitPrice: + $ref: '#/components/schemas/UpdatedUnitPrice' + quantity: + type: string + format: double + description: quantidade de títulos detidos na data da posição do cliente + maxLength: 24 + minLength: 4 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '15.00' + grossAmount: + $ref: '#/components/schemas/GrossAmount' + netAmount: + $ref: '#/components/schemas/NetAmount' + incomeTax: + $ref: '#/components/schemas/IncomeTax' + financialTransactionTax: + $ref: '#/components/schemas/FinancialTransactionTax' + blockedBalance: + $ref: '#/components/schemas/BlockedBalance' + purchaseUnitPrice: + $ref: '#/components/schemas/PurchaseUnitPrice' + preFixedRate: + type: string + description: | + Taxa de remuneração acordada com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. + É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo preFixedRate do endpoint /investment/{investmentId}. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + postFixedIndexerPercentage: + $ref: '#/components/schemas/PostFixedIndexerPercentage' + fine: + $ref: '#/components/schemas/Fine' + latePayment: + $ref: '#/components/schemas/LatePayment' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMeta' + ResponseCreditFixedIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/CreditFixedIncomesTransactions' + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMetaTransactions' + ResponseCreditFixedIncomesTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + required: + - type + - transactionType + - transactionDate + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/Type' + transactionType: + $ref: '#/components/schemas/TransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: Data da movimentação + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + transactionUnitPrice: + type: object + description: | + valor unitário negociado com o cliente na data de aquisição + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionQuantity: + type: string + description: | + Quantidade de títulos envolvidos na movimentação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionGrossValue: + $ref: '#/components/schemas/TransactionGrossValue' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionNetValue: + $ref: '#/components/schemas/TransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/RemunerationTransactionRate' + indexerPercentage: + type: string + description: | + Percentual máximo do indexador na transação acordado com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + transactionId: + type: string + description: | + Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + links: + $ref: '#/components/schemas/CreditFixedIncomesLinks' + meta: + $ref: '#/components/schemas/CreditFixedIncomesMetaTransactions' + BlockedBalance: + type: object + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + CreditFixedIdentification: + type: object + required: + - investmentType + - remuneration + - issueUnitPrice + - issueDate + - dueDate + - voucherPaymentIndicator + - purchaseDate + - taxExemptProduct + properties: + issuerInstitutionCnpjNumber: + type: string + description: | + CNPJ da instituição emissora. + + Caso a instituição tenha a informação, o envio será obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN é um código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. Caso a transmissora possua a informação o envio deste campo é obrigatório. + + [Restrição] Deve ser preenchido nos casos em que o 'clearingCode' não seja preenchido. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + investmentType: + $ref: '#/components/schemas/EnumInvestimentType' + debtorCnpjNumber: + type: string + description: | + CNPJ do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + debtorName: + type: string + description: | + Nome do devedor. Caso a transmissora possua a informação para os produtos CRI e CRA, o envio deste campo é obrigatório. + pattern: '[\w\W\s]*' + maxLength: 70 + example: Roberto Marino + taxExemptProduct: + $ref: '#/components/schemas/EnumTaxExemptProduct' + remuneration: + $ref: '#/components/schemas/Remuneration' + issueUnitPrice: + $ref: '#/components/schemas/IssueUnitPrice' + issueDate: + type: string + format: date + description: Data de emissão do título + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + dueDate: + type: string + format: date + description: Data de vencimento do título + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + voucherPaymentIndicator: + $ref: '#/components/schemas/VoucherPaymentIndicator' + voucherPaymentPeriodicity: + $ref: '#/components/schemas/VoucherPaymentPeriodicity' + voucherPaymentPeriodicityAdditionalInfo: + type: string + description: | + Informações adicionais da periodicidade de pagamento de cupom + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'voucherPaymentPeriodicity'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Diária + clearingCode: + type: string + description: | + Código de registro do ativo na Clearing. Caso a transmissora possua a informação o envio deste campo é obrigatório. + + [Restrição] Deve ser preenchido nos casos em que o 'isinCode' não seja preenchido. + maxLength: 30 + pattern: '[\w\W-]*' + example: CDB421GPXXX + purchaseDate: + type: string + format: date + description: Data de aquisição do cliente + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + gracePeriodDate: + type: string + format: date + description: | + Data até a qual o cliente não poderá resgatar antecipadamente seu investimento. + + Caso a instituição tenha a informação, o envio será obrigatório. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-16' + CreditFixedIncomesProductListLinks: + 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@:%\+.~#?&\/\/=]*)$' + CreditFixedIncomesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + CreditFixedIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + CreditFixedIncomesMetaTransactions: + type: object + description: Meta informações referente a 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' + CreditFixedList: + type: object + description: Lista de títulos de renda fixa crédito mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentType + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + maxLength: 80 + example: Organização A + companyCnpj: + type: string + 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' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + investmentType: + $ref: '#/components/schemas/EnumInvestimentType' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + Currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + EnumCalculation: + type: string + description: | + Base de cálculo (dias úteis ou dias corridos). + 1. dias úteis + 2. dias corridos. + + Caso a instituição tenha a informação, o envio será obrigatório. + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + example: DIAS_CORRIDOS + EnumTaxExemptProduct: + type: string + description: Indicador de um produto incentivado + enum: + - SIM + - NAO + example: SIM + EnumIndexer: + type: string + description: | + Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo + 1. CDI + 2. DI + 3. TR + 4. IPCA + 5. IGP_M + 6. IGP_DI + 7. INPC + 8. BCP + 10. TLC + 11. SELIC + 12. PRE_FIXADO + 13. OUTROS + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + example: CDI + EnumInvestimentType: + type: string + description: 'Especificação do ativo em questão (Debêntures, CRI ou CRA).' + enum: + - DEBENTURES + - CRI + - CRA + example: CRI + EnumRatePeriodicity: + type: string + description: | + Periodicidade da taxa de remuneração (mensal, anual, diário, semestral). + + Caso a instituição tenha a informação, o envio será obrigatório. + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + example: MENSAL + EnumRateType: + type: string + description: | + Tipo da taxa de remuneração + 1. LINEAR + 2. EXPONENCIAL + + Caso a instituição tenha a informação, o envio será obrigatório. + enum: + - LINEAR + - EXPONENCIAL + example: LINEAR + FinancialTransactionTax: + type: object + description: | + Valor do imposto (IOF) provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + Fine: + type: object + description: | + Valor de multa devido ao atraso do pagamento acordado em contrato. + Caso a transmissora possua a informação, o envio deste campo é obrigatório. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + GrossAmount: + type: object + description: valor do investimento que se refere a quantidade x PU atualizado na data de referência + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + IncomeTax: + type: object + description: | + Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + IndexerPercentage: + type: string + description: | + Percentual máximo do indexador na transação acordado com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + IssueUnitPrice: + type: object + required: + - amount + - currency + properties: + amount: + type: string + description: Valor relacionado ao objeto. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + LatePayment: + type: object + description: | + Valor de mora devido ao atraso do pagamento acordado em contrato. + Caso a transmissora possua a informação, o envio deste campo é obrigatório. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + NetAmount: + type: object + description: 'valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + PostFixedIndexerPercentage: + type: string + description: | + Percentual do indexador acordado com o cliente na contratação. + Em casos de produtos progressivos, considerar taxa vigente. + É esperado que o preenchimento deste campo pelas participantes seja enviado de acordo com o campo postFixedIndexerPercentagedo endpoint /investment/{investmentId}. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + PurchaseUnitPrice: + type: object + description: valor unitário negociado com o cliente na data de aquisição + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + ReferenceDateTime: + type: string + format: date-time + description: 'data e hora da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos; Na representação data deve se considerar os minutos e segundos como zero (00:00:00Z)' + maxLength: 20 + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + Remuneration: + type: object + required: + - indexer + properties: + preFixedRate: + type: string + description: | + Valor da taxa de emissão do contrato. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'PRE_FIXADO' no campo 'indexer' ou quando se tratar de produto com remuneração híbrida. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + postFixedIndexerPercentage: + type: string + description: | + Percentual do indexador de emissão do contrato. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de 'PRE_FIXADO' ou quando se tratar de produto com remuneração híbrida. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + rateType: + $ref: '#/components/schemas/EnumRateType' + ratePeriodicity: + $ref: '#/components/schemas/EnumRatePeriodicity' + calculation: + $ref: '#/components/schemas/EnumCalculation' + indexer: + $ref: '#/components/schemas/EnumIndexer' + indexerAdditionalInfo: + type: string + description: | + Informações adicionais do indexador + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'Outros' no campo 'indexer'. + pattern: '[\w\W\s]*' + maxLength: 50 + example: Dólar + CreditFixedIncomesTransactions: + type: object + required: + - type + - transactionType + - transactionDate + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/Type' + transactionType: + $ref: '#/components/schemas/TransactionType' + transactionTypeAdditionalInfo: + $ref: '#/components/schemas/TypeAdditionalInfo' + transactionDate: + $ref: '#/components/schemas/TransactionDate' + transactionUnitPrice: + type: object + description: | + valor unitário negociado com o cliente na data de aquisição + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'VENCIMENTO'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.000004' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionQuantity: + $ref: '#/components/schemas/TransactionQuantity' + transactionGrossValue: + $ref: '#/components/schemas/TransactionGrossValue' + incomeTax: + type: object + description: | + Valor do imposto de renda recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + financialTransactionTax: + type: object + description: | + Valor do IOF recolhido na transação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + transactionNetValue: + $ref: '#/components/schemas/TransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/RemunerationTransactionRate' + indexerPercentage: + $ref: '#/components/schemas/IndexerPercentage' + transactionId: + $ref: '#/components/schemas/TransactionId' + RemunerationTransactionRate: + type: string + description: | + Taxa de remuneração acordada com o cliente na contratação. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + TransactionDate: + type: string + format: date + description: Data da movimentação + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + TransactionGrossValue: + type: object + description: 'Valor bruto da transação (Preço unitário da movimentação x Quantidade)' + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + TransactionId: + type: string + description: | + Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + TransactionNetValue: + type: object + description: Valor líquido da transação + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + minLength: 4 + example: '1000.04' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + TransactionQuantity: + type: string + description: | + Quantidade de títulos envolvidos na movimentação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA', 'VENCIMENTO', 'TRANSFERENCIA_TITULARIDADE' ou 'TRANSFERENCIA_CUSTODIA'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + TransactionType: + type: string + description: Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, prêmio, transferência de titularidade, transferência de custódia, multa, mora e outros. Para movimentos de transferência (titularidade ou custódia) deve ser considerado o preço unitário (transactionUnitPrice) da aquisição do título. + enum: + - COMPRA + - VENDA + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - PREMIO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - MULTA + - MORA + - OUTROS + example: COMPRA + Type: + type: string + description: | + Tipo de movimentação na visão de investimento​: + + ENTRADA: COMPRA, CANCELAMENTO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, OUTROS​. + + SAIDA: VENDA, CANCELAMENTO, VENCIMENTO, PAGAMENTO_JUROS, AMORTIZACAO, PREMIO, TRANSFERENCIA_TITULARIDADE, TRANSFERENCIA_CUSTODIA, MULTA, MORA, OUTROS. ​ + + Por exemplo, para movimentação de CANCELAMENTO, tipicamente, será o type contrário ao evento originário. Ou seja, para cancelamento de COMPRA, considera-se type SAIDA; para cancelamento de VENDA, considera-se type ENTRADA. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + TypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio + [Restrição] Campo de preenchimento obrigatório pelas participantes quando houver 'OUTROS' no campo 'transactionType'. + maxLength: 100 + pattern: '[\w\W\s]*' + UpdatedUnitPrice: + type: object + description: valor bruto unitário atualizado na data de referência; + required: + - amount + - currency + properties: + amount: + type: string + format: double + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + minLength: 4 + example: '1000.0400' + description: Valor relacionado ao objeto. + currency: + $ref: '#/components/schemas/Currency' + VoucherPaymentIndicator: + type: string + description: | + Indicativo se há pagamento de cupom + 1. Sim + 2. Nao + enum: + - SIM + - NAO + example: SIM + VoucherPaymentPeriodicity: + type: string + description: | + Em caso de haver pagamento de cupom, descrever a periodicidade (mensal, trimestral, semestral, anual, irregular e outros) + 1. Mensal + + 2. Trimestral + + 3. Semestral + + 4. Anual + + 5. Irregular + + 6. Outros + + [Restrição] Campo de preenchimento obrigatório pelos participantes quando houver 'SIM' no campo indicativo de pagamento de cupom 'voucherPaymentIndicator'. + enum: + - MENSAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - IRREGULAR + - OUTROS + example: MENSAL + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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' + 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: + - 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. + Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. + Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2022-01-01' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2022-12-31' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2023-02-01' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2023-02-01' + securitySchemes: + OAuth2AuthorizationCode: + 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: + credit-fixed-incomes: Escopo necessário para acesso à API Credit-Fixed-Incomes. O controle dos endpoints específicos é feito via permissions. + responses: + ResponseCreditFixedIncomesProductList: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesProductList' + ResponseCreditFixedIncomesProductIdentification: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesProductIdentification' + ResponseCreditFixedIncomesBalances: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesBalances' + ResponseCreditFixedIncomesTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesTransactions' + ResponseCreditFixedIncomesTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseCreditFixedIncomesTransactionsCurrent' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptableWithAdditionalProperties: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequestsWithAdditionalProperties: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntityWithAdditionalProperties: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloadedWithAdditionalProperties: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' \ No newline at end of file diff --git a/swagger-apis/credit-fixed-incomes/index.html b/swagger-apis/credit-fixed-incomes/index.html index 00bbf6e2f..f9b97cb8e 100644 --- a/swagger-apis/credit-fixed-incomes/index.html +++ b/swagger-apis/credit-fixed-incomes/index.html @@ -45,8 +45,11 @@ window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}], - "urls.primaryName": "1.0.0-rc1.0", // default spec + urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/exchanges/1.0.0-rc1.0.yml b/swagger-apis/exchanges/1.0.0-rc1.0.yml new file mode 100644 index 000000000..acbc694ef --- /dev/null +++ b/swagger-apis/exchanges/1.0.0-rc1.0.yml @@ -0,0 +1,1004 @@ +openapi: 3.0.0 +info: + title: API Exchanges - Open Finance Brasil + description: | + API de informações de operações de Câmbio Open Finance Brasil – Fase 4. + API que retorna informações de operações de Câmbio realizadas nas instituições transmissoras por seus clientes, incluindo dados como informações da operação contratada, valor da operação em moeda nacional e moeda estrangeira, classificação da operação, forma de entrega, VET e, quando aplicável, valor a liquidar. + Também serão compartilhados os eventos de alteração da operação, caso existam, com as informações modificadas. + Não possui segregação entre pessoa natural e pessoa jurídica. + Requer consentimento do cliente para todos os endpoints. + __São escopo de compartilhamento as operações de compra e venda de moeda estrangeira de liquidação pronta ou futura, inclusive com adiantamento. + Operações de câmbio anuladas não são escopo de exposição, bem como eventos de vinculação de operações. + A exposição se dará por cada operação de câmbio contratada pelo cliente.__ + version: 1.0.0-rc1.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/exchanges/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/exchanges/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Câmbio mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Operation Details + description: Obtém os dados da operação de Câmbio identificada por operationId. + - name: Events + description: Obtém os dados dos eventos da operação de Câmbio identificada por operationId. +paths: + /operations: + get: + tags: + - Product List + summary: Obtém a lista de operações de Câmbio mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: exchangesGetOperations + description: Obtém a lista de operações de Câmbio mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OKResponseProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - 'openid' + - 'consent:consentId' + - 'exchanges' + /operations/{operationId}: + get: + tags: + - Operation Details + summary: Obtém os dados da operação de Câmbio identificada por operationId. + operationId: exchangesGetOperationsOperationId + description: Obtém os dados da operação de Câmbio identificada por operationId. + parameters: + - $ref: '#/components/parameters/OperationId' + - $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/OKResponseOperationDetails' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - 'openid' + - 'consent:consentId' + - 'exchanges' + /operations/{operationId}/events: + get: + tags: + - Events + summary: Obtém os dados dos eventos da operação de Câmbio identificada por operationId. + operationId: exchangesGetOperationsOperationIdEvents + description: Obtém os dados dos eventos da operação de Câmbio identificada por operationId. + parameters: + - $ref: '#/components/parameters/OperationId' + - $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/OKResponseEvents' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - 'openid' + - 'consent:consentId' + - 'exchanges' +components: + schemas: + Links: + type: object + description: Referências para outros recusos da API requisitada. + required: + - self + properties: + self: + type: string + format: uri + maxLength: 2000 + description: URI completo que gerou a resposta atual. + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + first: + type: string + format: uri + maxLength: 2000 + description: URI da primeira página que originou essa lista de resultados. Restrição - Obrigatório quando não for a primeira página da resposta + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + prev: + type: string + format: uri + maxLength: 2000 + description: "URI da página anterior dessa lista de resultados. Restrição - \tObrigatório quando não for a primeira página da resposta" + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + next: + type: string + format: uri + maxLength: 2000 + description: URI da próxima página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + last: + type: string + format: uri + maxLength: 2000 + description: URI da última página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + OKResponseProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ProductList' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + OKResponseOperationDetails: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/OperationDetails' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + OKResponseEvents: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/Events' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + ProductList: + type: object + description: Lista de operações de câmbio + required: + - brandName + - companyCnpj + - operationId + properties: + brandName: + type: string + 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). Instituição autorizada a operar' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + operationId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929240' + additionalProperties: false + OperationDetails: + type: object + description: Detalhes da operação de câmbio. + required: + - authorizedInstitutionCnpjNumber + - authorizedInstitutionName + - operationType + - operationDate + - dueDate + - localCurrencyOperationTax + - localCurrencyOperationValue + - foreignOperationValue + - deliveryForeignCurrency + - operationCategoryCode + properties: + authorizedInstitutionCnpjNumber: + type: string + description: CNPJ da instituição autorizada a operar no mercado de câmbio. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + authorizedInstitutionName: + type: string + description: Nome da Instituição Financeira no Brasil. + maxLength: 250 + pattern: '[\w\W\s]*' + example: AGENCIA CORRETORA + intermediaryInstitutionCnpjNumber: + type: string + description: | + CNPJ da instituição intermediadora autorizada a operar no mercado de câmbio. + Campo de envio obrigatório nos casos em que houver instituição intermediadora. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + intemediaryInstitutionName: + type: string + description: | + Nome da corretora interveniente autorizada a operar no mercado de câmbio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'intermediaryInstitutionCnpjNumber' for informado. + maxLength: 250 + pattern: '[\w\W\s]*' + example: AGENCIA CORRETORA + operationNumber: + type: string + description: Número do registro da operação no Bacen. Deve ser preenchido no compartilhamento, após registro no Sistema de Câmbio e número disponível na transmissora/detentora. + maxLength: 12 + pattern: '^\d{12}$' + example: '393874649456' + operationType: + $ref: '#/components/schemas/EnumExchangesOperationType' + operationDate: + type: string + format: date-time + description: Data do fechamento do contrato de câmbio. + maxLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2023-03-07T08:30:00Z' + dueDate: + type: string + format: date + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + description: Data em que a operação (compra ou venda) está prevista para ser liquidada. + maxLength: 10 + example: "2018-02-15" + localCurrencyOperationTax: + type: object + description: Valor da taxa de câmbio aplicada a este contrato, em moeda nacional. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 31 + pattern: '^\d{1,15}\.\d{1,15}$' + example: '1.3' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + localCurrencyOperationValue: + type: object + description: Valor negociado em moeda nacional. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,17}\.\d{2}$' + example: '1000.04' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + foreignOperationValue: + type: object + description: Valor da operação em moeda estrangeira. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,17}\.\d{2}$' + example: '1000.04' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: USD + operationOutstandingBalance: + type: object + description: Valor do saldo da operação a liquidar em moeda estrangeira. Objeto de envio obrigatório nos casos de operações de câmbio com liquidação futura. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,17}\.\d{2}$' + example: '1000.04' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + vetAmount: + type: object + description: Representa o custo de uma operação de câmbio em reais por moeda estrangeira, englobando a taxa de câmbio, as tarifas e tributos incidentes sobre essa operação. Campo de envio obrigatório nas operações de câmbio pronto que atingirem até o limite de US$100.000 ou equivalente em outras moedas. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 31 + pattern: '\d{1,15}\.\d{1,15}$' + example: '1000.000004' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + localCurrencyAdvancePercentage: + type: string + description: | + Percentual do valor de moeda nacional concedido ao cliente antecipadamente. 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%). Campos de envio obrigatório no caso de operações de câmbio com liquidação futura. + pattern: '^\d{1}\.\d{1,6}$' + maxLength: 8 + minLength: 3 + example: '0.12' + deliveryForeignCurrency: + $ref: '#/components/schemas/EnumExchangesDeliveryForeignCurrency' + operationCategoryCode: + type: string + maxLength: 5 + pattern: '^\d{5}$' + description: Código da natureza fato do fechamento da operação. Deve respeitar os códigos de natureza referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio. + example: '90302' + relationshipCode: + type: string + maxLength: 2 + pattern: '^\d{2}$' + description: | + Código de Relação de vínculo entre o Cliente e o Pagador/Recebedor no Exterior. Deve respeitar os códigos de vínculo referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio. + + [Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. + example: '50' + foreignPartieName: + type: string + description: | + Nome do pagador ou recebedor no exterior. + + [Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. + maxLength: 80 + pattern: '[\w\W\s]*' + example: José da Silva + foreignPartieCountryCode: + type: string + description: | + País do pagador ou recebedor. Código do país segundo a norma ISO 3166-1. + + [Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. + maxLength: 2 + pattern: '^[A-Z]{2}$' + example: ZA + additionalProperties: false + Events: + type: object + description: Detalhes dos eventos da operação de câmbio. + required: + - eventSequenceNumber + - eventType + - eventDate + properties: + eventSequenceNumber: + type: string + description: Número sequência do registro do evento de câmbio no Bacen. + maxLength: 12 + pattern: '^\d{12}$' + example: '493874649457' + eventType: + $ref: '#/components/schemas/EnumExchangesEventType' + eventDate: + type: string + format: date-time + description: Data do evento relacionado com a operação. + maxLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2023-03-07T08:30:00Z' + dueDate: + type: string + format: date + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + description: Data em que a operação (compra ou venda), após evento, está prevista para ser liquidada. + maxLength: 10 + example: "2018-02-15" + localCurrencyOperationTax: + type: object + description: Valor da taxa de câmbio aplicada à operação, em moeda nacional. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 31 + pattern: '^\d{1,15}\.\d{1,15}$' + example: '1.3' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + localCurrencyOperationValue: + type: object + description: Valor negociado em moeda nacional. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,17}\.\d{2}$' + example: '1000.04' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + foreignOperationValue: + type: object + description: Valor da operação em moeda estrangeira. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,17}\.\d{2}$' + example: '1000.04' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: USD + operationOutstandingBalance: + type: object + description: Valor do saldo da operação, após evento, a liquidar em moeda estrangeira. Objeto de envio obrigatório nos casos de operações de câmbio com liquidação futura. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,17}\.\d{2}$' + example: '1000.04' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + vetAmount: + type: object + description: Representa o custo de uma operação de câmbio em reais por moeda estrangeira, englobando a taxa de câmbio, as tarifas e tributos incidentes sobre essa operação. Campo de envio obrigatório nas operações de câmbio pronto que atingirem até o limite de US$100.000 ou equivalente em outras moedas. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 31 + pattern: '\d{1,15}\.\d{1,15}$' + example: '1000.000004' + currency: + type: string + description: Moeda referente ao valor monetário, seguindo o modelo ISO-4217. + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + localCurrencyAdvancePercentage: + type: string + description: | + Percentual do valor de moeda nacional concedido ao cliente antecipadamente. 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%). Campos de envio obrigatório no caso de operações de câmbio com liquidação futura. + pattern: '^\d{1}\.\d{1,6}$' + maxLength: 8 + minLength: 3 + example: '0.12' + deliveryForeignCurrency: + $ref: '#/components/schemas/EnumExchangesDeliveryForeignCurrency' + operationCategoryCode: + type: string + maxLength: 5 + pattern: '^\d{5}$' + description: Código da natureza fato do fechamento da operação. Deve respeitar os códigos de natureza referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio. + example: '90302' + relationshipCode: + type: string + maxLength: 2 + pattern: '^\d{2}$' + description: | + Código de Relação de vínculo entre o Cliente e o Pagador/Recebedor no Exterior. Deve respeitar os códigos de vínculo referenciados na resolução 277 ou na Circular 3690, conforme se aplicar ao contrato de câmbio. + + [Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. + example: '50' + foreignPartieName: + type: string + description: | + Nome do pagador ou recebedor no exterior. + + [Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. + maxLength: 80 + pattern: '[\w\W\s]*' + example: José da Silva + foreignPartieCountryCode: + type: string + description: | + País do pagador ou recebedor. Código do país segundo a norma ISO 3166-1. + + [Restrição] Campo de preenchimento opcional pelas participantes quando o campo 'deliveryForeignCurrency ' for igual EM ESPÉCIE E/OU CHEQUES DE VIAGEM. + maxLength: 2 + pattern: '^[A-Z]{2}$' + example: ZA + additionalProperties: false + EnumExchangesOperationType: + type: string + description: Compra ou venda de moeda estrangeira. + enum: + - COMPRA + - VENDA + example: COMPRA + EnumExchangesEventType: + type: string + description: | + Para o campo domínio: + + 1 - Contratação no Mercado Primário. + 2 - Alteração de Operação Cambial no Mercado Primário. + 3 - Cancelamento de Operação Cambial no Mercado Primário. + 4 - Liquidação de Operação Cambial no Mercado Primário. + 5 - Baixa de Valor a Liquidar de Operação Cambial no Mercado Primário. + 6 - Restabelecimento de Baixa de Valor a Liquidar de Operação Cambial no Mercado Primário. + + O evento está relacionado ao tipo de contratação. + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + example: '2' + EnumExchangesDeliveryForeignCurrency: + type: string + description: Forma de entrega da moeda estrangeira. + enum: + - CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS + - CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR + - ESPECIE_CHEQUES_VIAGEM + - CARTAO_PREPAGO + - TELETRANSMISSAO + - SEM_MOVIMENTACAO_VALORES + - DEMAIS + - CARTA_CREDITO_A_VISTA + - CARTA_CREDITO_A_PRAZO + - CONTA_DEPOSITO + - CHEQUE + - TITULOS_VALORES + - SIMBOLICA + example: CARTA_CREDITO_A_PRAZO + 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/MetaWithAbleAdditionalProperties' + MetaWithAbleAdditionalProperties: + 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' + parameters: + OperationId: + name: operationId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$ + minLength: 1 + maxLength: 100 + 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 + 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]*' + securitySchemes: + OAuth2AuthorizationCode: + 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: + exchanges: Escopo necessário para acesso à API exchanges. O controle dos endpoints específicos é feito via permissions. + responses: + OKResponseProductList: + description: Dados de operações de câmbio da instituição obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseProductList' + OKResponseOperationDetails: + description: Dados de operações de câmbio da instituição obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseOperationDetails' + OKResponseEvents: + description: Dados de operações de câmbio da instituição obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseEvents' + BadRequestWithAdditionalProperties: + 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' + ForbiddenWithAdditionalProperties: + 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' + GatewayTimeoutWithAdditionalProperties: + 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' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + 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' + NotAcceptableWithAdditionalProperties: + 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' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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' diff --git a/swagger-apis/exchanges/index.html b/swagger-apis/exchanges/index.html new file mode 100644 index 000000000..00bbf6e2f --- /dev/null +++ b/swagger-apis/exchanges/index.html @@ -0,0 +1,81 @@ + + + + + + Open Finance Brasil - OpenApi Specification + + + + + + + +
+

+ Essa é uma versão de rascunho e não deve ser utilizada para outras finalidades, você pode encontrar a documentação oficial e atualizada aqui +

+
+ +
+ + + + + + diff --git a/swagger-apis/funds/1.0.0-rc2.0.yml b/swagger-apis/funds/1.0.0-rc2.0.yml new file mode 100644 index 000000000..9675ab5ed --- /dev/null +++ b/swagger-apis/funds/1.0.0-rc2.0.yml @@ -0,0 +1,1618 @@ +openapi: 3.0.0 +info: + title: API Funds - Open Finance Brasil + description: | + API de informações de operações de Fundos de Investimento Open Finance Brasil – Fase 4. + API que retorna informações de operações de investimento do tipo Fundos de Investimento mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente e movimentações financeiras. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. + Devem ser considerados como escopo de exposição todos os fundos de investimento classificados como: Renda Fixa, Ações, Multimercado e Cambial. + Para identificação do produto e posição do cliente, a exposição será de forma consolidada por Fundo de Investimento. + Para movimentações, a exposição se dará pela Ordem do Cliente, por exemplo, uma Ordem de Resgate é compartilhada como uma única movimentação, mesmo que esteja associada a diferentes Certificados (Cautelas). + + As instituições podem apresentar cenários distintos no que diz respeito ao sincronismo entre posição `/balances` e movimentação `/transactions` e `/transactions-current` da API: + + - Algumas instituições refletem movimentações ainda não convertidas na posição do cliente em seus canais eletrônicos. Isso implica que pode ocorrer compartilhamento de posição atualizada, cujas movimentações relacionadas serão expostas no ecossistema apenas após a conversão das mesmas; + + - Outras instituições refletem na posição apenas movimentações convertidas nos seus canais eletrônicos. Isso implica que o compartilhamento da posição em relação às movimentações é feito de forma sincronizada no ecossistema. + version: 1.0.0-rc2.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/funds/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/funds/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: fundsGetInvestments + description: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseFundsProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentId + description: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/OkResponseFundsProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentIdBalances + description: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseFundsBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/OKResponseFundsTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: fundsGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/OKResponseFundsTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds +components: + schemas: + ResponseFundsProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsProductListData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseFundsProductIdentificationData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsBalances: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseFundsBalanceData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsTransactionsData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseFundsTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsTransactionsCurrentData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseFundsProductListData: + type: object + description: Lista de fundos de investimento mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + anbimaCategory: + type: string + description: | + Conforme classificação ANBIMA, que segue a deliberação 77 da ANBIMA. + + – Renda Fixa + + – Ações + + – Multimercado + + – Cambial + + https://www.anbima.com.br/data/files/5A/44/2C/B7/8411B510CD3B4DA568A80AC2/DeliberacaoN77-Diretriz-de-Classificacao-de-Fundos.pdf + enum: + - RENDA_FIXA + - ACOES + - MULTIMERCADO + - CAMBIAL + example: RENDA_FIXA + anbimaClass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + anbimaSubclass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o fundo, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + ResponseFundsProductIdentificationData: + type: object + description: Informações do produto de fundo de investimento a que se refere investmentId. + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome oficial do fundo de investimento conforme exibido para os clientes nos canais eletrônicos. + maxLength: 250 + example: CONSTELLATION MASTER FIA + cnpjNumber: + type: string + description: CNPJ do fundo de investimento. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. + + DEFINIÇÃO: O ISIN (International Securities Identification Number) é um código que identifica um valor mobiliário, conforme a norma ISO 6166. + + ESTRUTURA: O ISIN é um código alfanumérico que possui 12 caracteres com a seguinte estrutura: + - Um prefixo, composto de 2 caracteres alfa, que identifica o código do país (Norma ISO 3166); + - O número básico, composto de 9 caracteres alfabéticos ou numéricos em sua extensão; + - Um dígito numérico de controle. + maxLength: 12 + minLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + anbimaCategory: + type: string + description: | + Conforme classificação ANBIMA, que segue a deliberação 77 da ANBIMA. + + – Renda Fixa + + – Ações + + – Multimercado + + – Cambial + + https://www.anbima.com.br/data/files/5A/44/2C/B7/8411B510CD3B4DA568A80AC2/DeliberacaoN77-Diretriz-de-Classificacao-de-Fundos.pdf + enum: + - RENDA_FIXA + - ACOES + - MULTIMERCADO + - CAMBIAL + example: RENDA_FIXA + anbimaClass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + anbimaSubclass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + additionalProperties: false + ResponseFundsBalanceData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - referenceDate + - grossAmount + - netAmount + - incomeTaxProvision + - financialTransactionTaxProvision + - blockedAmount + - quotaQuantity + - quotaGrossPriceValue + properties: + referenceDate: + type: string + format: date + description: Data da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + grossAmount: + $ref: '#/components/schemas/FundsBalancesGrossAmount' + netAmount: + $ref: '#/components/schemas/FundsBalancesNetAmount' + incomeTaxProvision: + $ref: '#/components/schemas/FundsBalancesIncomeTaxProvision' + financialTransactionTaxProvision: + $ref: '#/components/schemas/FundsBalancesFinancialTransactionTaxProvision' + blockedAmount: + $ref: '#/components/schemas/FundsBalancesBlockedAmount' + quotaQuantity: + type: string + format: double + description: Quantidade de cotas detidas em posição do cliente . + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '42.25' + quotaGrossPriceValue: + $ref: '#/components/schemas/FundsBalancesQuotaGrossPriceValue' + ResponseFundsTransactionsData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - transactionId + - type + - transactionType + - transactionConversionDate + - transactionQuotaPrice + - transactionQuotaQuantity + - transactionValue + - transactionGrossValue + properties: + transactionId: + type: string + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: + $ref: '#/components/schemas/EnumFundsTransactionsType' + transactionType: + $ref: '#/components/schemas/EnumFundsTransactionsTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo do motivo, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionConversionDate: + type: string + format: date + description: Data da conversão da transação de movimentação do fundo de investimento. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + transactionQuotaPrice: + type: object + description: | + É o valor da cota utilizada na conversão para a realização da movimentação do cliente no fundo, conforme a regra prevista em regulamento - valor pode ser negativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 25 + pattern: '^-?\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuotaQuantity: + type: string + format: double + description: | + Número de cotas convertidas na data da movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionValue: + type: object + description: Valor da movimentação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionGrossValue: + type: object + description: | + Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. + Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: | + Valor do Imposto de Renda (IR) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + financialTransactionTax: + type: object + description: | + Valor do Imposto sobre Operações Financeiras (IOF) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionExitFee: + type: object + description: | + Valor da taxa de saída considerado na movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionNetValue: + type: object + description: | + Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + ResponseFundsTransactionsCurrentData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - transactionId + - type + - transactionType + - transactionConversionDate + - transactionQuotaPrice + - transactionQuotaQuantity + - transactionValue + - transactionGrossValue + properties: + transactionId: + type: string + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: + $ref: '#/components/schemas/EnumFundsTransactionsCurrentType' + transactionType: + $ref: '#/components/schemas/EnumFundsTransactionsCurrentTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo do motivo, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionConversionDate: + type: string + format: date + description: Data da conversão da transação de movimentação do fundo de investimento. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + transactionQuotaPrice: + type: object + description: | + É o valor da cota utilizada na conversão para a realização da movimentação do cliente no fundo, conforme a regra prevista em regulamento - valor pode ser negativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 25 + pattern: '^-?\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuotaQuantity: + type: string + format: double + description: | + Número de cotas convertidas na data da movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionValue: + type: object + description: Valor da movimentação. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionGrossValue: + type: object + description: | + Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. + Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: | + Valor do Imposto de Renda (IR) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + financialTransactionTax: + type: object + description: | + Valor do Imposto sobre Operações Financeiras (IOF) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionExitFee: + type: object + description: | + Valor da taxa de saída considerado na movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionNetValue: + type: object + description: | + Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + MetaSingle: + type: object + description: Meta informação referente a API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + FundsMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + FundsLinks: + 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@:%_\+.~#?&\/\/=]*)$' + FundsBalancesBlockedAmount: + type: object + description: 'Valor líquido não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros);' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesFinancialTransactionTaxProvision: + type: object + description: Valor do imposto considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '50.02' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesGrossAmount: + type: object + description: 'Valor do investimento que se refere a quantidade da cota x valor da cota, atualizado na data de referência.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesIncomeTaxProvision: + type: object + description: Valor do imposto considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '50.02' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesNetAmount: + type: object + description: 'Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR) e taxa de saída, caso a instituição considere este valor na composição do saldo líquido.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesQuotaGrossPriceValue: + type: object + description: Valor bruto da cota atualizado na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,8}$' + maxLength: 25 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + EnumFundsTransactionsType: + type: string + description: | + Tipo de movimentação (Entrada ou Saída). + + ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. + + SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumFundsTransactionsTransactionType: + type: string + description: | + O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). + A opção OUTROS só deve ser utilizada para os casos em que de fato a transação compartilhada não possa ser classificada como um dos itens deste Enum, e nesse caso deve-se preencher informações adicionais. + enum: + - AMORTIZACAO + - TRANSFERENCIA_COTAS + - APLICACAO + - RESGATE + - COME_COTAS + - OUTROS + example: AMORTIZACAO + EnumFundsTransactionsCurrentType: + type: string + description: | + Tipo de movimentação (Entrada ou Saída). + + ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. + + SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumFundsTransactionsCurrentTransactionType: + type: string + description: | + O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). + A opção OUTROS só deve ser utilizada para os casos em que de fato a transação compartilhada não possa ser classificada como um dos itens deste Enum, e nesse caso deve-se preencher informações adicionais. + enum: + - AMORTIZACAO + - TRANSFERENCIA_COTAS + - APLICACAO + - RESGATE + - COME_COTAS + - OUTROS + example: AMORTIZACAO + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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' + 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/MetaWithAbleAdditionalProperties' + MetaWithAbleAdditionalProperties: + 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + securitySchemes: + OAuth2AuthorizationCode: + 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: + funds: Escopo necessário para acesso à API funds. O controle dos endpoints específicos é feito via permissions. + responses: + OkResponseFundsProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsProductList' + OkResponseFundsProductIdentification: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsProductIdentification' + ResponseFundsBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsBalances' + OKResponseFundsTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsTransactions' + OKResponseFundsTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsTransactionsCurrent' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + 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' + ForbiddenWithAdditionalProperties: + 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' + GatewayTimeoutWithAdditionalProperties: + 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' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + 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' + NotAcceptableWithAdditionalProperties: + 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' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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' diff --git a/swagger-apis/funds/1.0.0-rc3.0.yml b/swagger-apis/funds/1.0.0-rc3.0.yml new file mode 100644 index 000000000..091b836b4 --- /dev/null +++ b/swagger-apis/funds/1.0.0-rc3.0.yml @@ -0,0 +1,1625 @@ +openapi: 3.0.0 +info: + title: API Funds - Open Finance Brasil + description: | + API de informações de operações de Fundos de Investimento Open Finance Brasil – Fase 4. + API que retorna informações de operações de investimento do tipo Fundos de Investimento mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente e movimentações financeiras. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. + Devem ser considerados como escopo de exposição todos os fundos de investimento classificados como: Renda Fixa, Ações, Multimercado e Cambial. + Para identificação do produto e posição do cliente, a exposição será de forma consolidada por Fundo de Investimento. + Para movimentações, a exposição se dará pela Ordem do Cliente, por exemplo, uma Ordem de Resgate é compartilhada como uma única movimentação, mesmo que esteja associada a diferentes Certificados (Cautelas). + + As instituições podem apresentar cenários distintos no que diz respeito ao sincronismo entre posição `/balances` e movimentação `/transactions` e `/transactions-current` da API: + + - Algumas instituições refletem movimentações ainda não convertidas na posição do cliente em seus canais eletrônicos. Isso implica que pode ocorrer compartilhamento de posição atualizada, cujas movimentações relacionadas serão expostas no ecossistema apenas após a conversão das mesmas; + + - Outras instituições refletem na posição apenas movimentações convertidas nos seus canais eletrônicos. Isso implica que o compartilhamento da posição em relação às movimentações é feito de forma sincronizada no ecossistema. + version: 1.0.0-rc3.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/funds/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/funds/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: fundsGetInvestments + description: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseFundsProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentId + description: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/OkResponseFundsProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseFundsBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/OKResponseFundsTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: fundsGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/OKResponseFundsTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds +components: + schemas: + ResponseFundsProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsProductListData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseFundsProductIdentificationData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsBalances: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseFundsBalanceData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsTransactionsData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseFundsTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsTransactionsCurrentData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseFundsProductListData: + type: object + description: Lista de fundos de investimento mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + anbimaCategory: + type: string + description: | + Conforme classificação ANBIMA, que segue a deliberação 77 da ANBIMA. + + – Renda Fixa + + – Ações + + – Multimercado + + – Cambial + + https://www.anbima.com.br/data/files/5A/44/2C/B7/8411B510CD3B4DA568A80AC2/DeliberacaoN77-Diretriz-de-Classificacao-de-Fundos.pdf + enum: + - RENDA_FIXA + - ACOES + - MULTIMERCADO + - CAMBIAL + example: RENDA_FIXA + anbimaClass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + anbimaSubclass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + investmentId: + type: string + description: Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. Nos casos em que o cliente, após completar 12 meses da última movimentação e com quantidade de ativos zerada (cliente não tem mais posse do produto sob custódia da transmissora), compre novamente o ativo que já investiu em períodos passados, manter o mesmo investmentId anteriormente utilizado. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + ResponseFundsProductIdentificationData: + type: object + description: Informações do produto de fundo de investimento a que se refere investmentId. + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome oficial do fundo de investimento conforme exibido para os clientes nos canais eletrônicos. + maxLength: 250 + example: CONSTELLATION MASTER FIA + cnpjNumber: + type: string + description: CNPJ do fundo de investimento. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. + + DEFINIÇÃO: O ISIN (International Securities Identification Number) é um código que identifica um valor mobiliário, conforme a norma ISO 6166. + + ESTRUTURA: O ISIN é um código alfanumérico que possui 12 caracteres com a seguinte estrutura: + - Um prefixo, composto de 2 caracteres alfa, que identifica o código do país (Norma ISO 3166); + - O número básico, composto de 9 caracteres alfabéticos ou numéricos em sua extensão; + - Um dígito numérico de controle. + maxLength: 12 + minLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + anbimaCategory: + type: string + description: | + Conforme classificação ANBIMA, que segue a deliberação 77 da ANBIMA. + + – Renda Fixa + + – Ações + + – Multimercado + + – Cambial + + https://www.anbima.com.br/data/files/5A/44/2C/B7/8411B510CD3B4DA568A80AC2/DeliberacaoN77-Diretriz-de-Classificacao-de-Fundos.pdf + enum: + - RENDA_FIXA + - ACOES + - MULTIMERCADO + - CAMBIAL + example: RENDA_FIXA + anbimaClass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + anbimaSubclass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + additionalProperties: false + ResponseFundsBalanceData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - referenceDate + - grossAmount + - netAmount + - incomeTaxProvision + - financialTransactionTaxProvision + - blockedAmount + - quotaQuantity + - quotaGrossPriceValue + properties: + referenceDate: + type: string + format: date + description: Data da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + grossAmount: + $ref: '#/components/schemas/FundsBalancesGrossAmount' + netAmount: + $ref: '#/components/schemas/FundsBalancesNetAmount' + incomeTaxProvision: + $ref: '#/components/schemas/FundsBalancesIncomeTaxProvision' + financialTransactionTaxProvision: + $ref: '#/components/schemas/FundsBalancesFinancialTransactionTaxProvision' + blockedAmount: + $ref: '#/components/schemas/FundsBalancesBlockedAmount' + quotaQuantity: + type: string + format: double + description: Quantidade de cotas detidas em posição do cliente . + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '42.25' + quotaGrossPriceValue: + $ref: '#/components/schemas/FundsBalancesQuotaGrossPriceValue' + ResponseFundsTransactionsData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - transactionId + - type + - transactionType + - transactionConversionDate + - transactionQuotaPrice + - transactionQuotaQuantity + - transactionValue + - transactionGrossValue + properties: + transactionId: + type: string + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: + $ref: '#/components/schemas/EnumFundsTransactionsType' + transactionType: + $ref: '#/components/schemas/EnumFundsTransactionsTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo do motivo, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionConversionDate: + type: string + format: date + description: Data da conversão da transação de movimentação do fundo de investimento. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + transactionQuotaPrice: + type: object + description: | + É o valor da cota utilizada na conversão para a realização da movimentação do cliente no fundo, conforme a regra prevista em regulamento - valor pode ser negativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 25 + pattern: '^-?\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuotaQuantity: + type: string + format: double + description: | + Número de cotas convertidas na data da movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionValue: + type: object + description: Valor solicitado pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionGrossValue: + type: object + description: | + Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. + Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: | + Valor do Imposto de Renda (IR) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + financialTransactionTax: + type: object + description: | + Valor do Imposto sobre Operações Financeiras (IOF) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionExitFee: + type: object + description: | + Valor da taxa de saída considerado na movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionNetValue: + type: object + description: | + Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + ResponseFundsTransactionsCurrentData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - transactionId + - type + - transactionType + - transactionConversionDate + - transactionQuotaPrice + - transactionQuotaQuantity + - transactionValue + - transactionGrossValue + properties: + transactionId: + type: string + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: + $ref: '#/components/schemas/EnumFundsTransactionsCurrentType' + transactionType: + $ref: '#/components/schemas/EnumFundsTransactionsCurrentTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo do motivo, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionConversionDate: + type: string + format: date + description: Data da conversão da transação de movimentação do fundo de investimento. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + transactionQuotaPrice: + type: object + description: | + É o valor da cota utilizada na conversão para a realização da movimentação do cliente no fundo, conforme a regra prevista em regulamento - valor pode ser negativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 25 + pattern: '^-?\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuotaQuantity: + type: string + format: double + description: | + Número de cotas convertidas na data da movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionValue: + type: object + description: Valor solicitado pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionGrossValue: + type: object + description: | + Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. + Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: | + Valor do Imposto de Renda (IR) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + financialTransactionTax: + type: object + description: | + Valor do Imposto sobre Operações Financeiras (IOF) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionExitFee: + type: object + description: | + Valor da taxa de saída considerado na movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionNetValue: + type: object + description: | + Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + MetaSingle: + type: object + description: Meta informação referente a API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + FundsMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + FundsLinks: + 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@:%_\+.~#?&\/\/=]*)$' + FundsBalancesBlockedAmount: + type: object + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesFinancialTransactionTaxProvision: + type: object + description: Valor do imposto considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '50.02' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesGrossAmount: + type: object + description: 'Valor do investimento que se refere a quantidade da cota x valor da cota, atualizado na data de referência.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesIncomeTaxProvision: + type: object + description: Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '50.02' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesNetAmount: + type: object + description: 'Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR) e taxa de saída, caso a instituição considere este valor na composição do saldo líquido.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesQuotaGrossPriceValue: + type: object + description: Valor bruto da cota atualizado na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,8}$' + maxLength: 25 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + EnumFundsTransactionsType: + type: string + description: | + Tipo de movimentação (Entrada ou Saída). + + ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. + + SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumFundsTransactionsTransactionType: + type: string + description: | + O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). + A opção OUTROS só deve ser utilizada para os casos em que de fato a transação compartilhada não possa ser classificada como um dos itens deste Enum, e nesse caso deve-se preencher informações adicionais. + enum: + - AMORTIZACAO + - TRANSFERENCIA_COTAS + - APLICACAO + - RESGATE + - COME_COTAS + - OUTROS + example: AMORTIZACAO + EnumFundsTransactionsCurrentType: + type: string + description: | + Tipo de movimentação (Entrada ou Saída). + + ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. + + SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumFundsTransactionsCurrentTransactionType: + type: string + description: | + O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). + A opção OUTROS só deve ser utilizada para os casos em que de fato a transação compartilhada não possa ser classificada como um dos itens deste Enum, e nesse caso deve-se preencher informações adicionais. + enum: + - AMORTIZACAO + - TRANSFERENCIA_COTAS + - APLICACAO + - RESGATE + - COME_COTAS + - OUTROS + example: AMORTIZACAO + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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' + 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/MetaWithAbleAdditionalProperties' + MetaWithAbleAdditionalProperties: + 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: Identifica de forma única o relacionamento do cliente com o fundo, mantendo as regras de imutabilidade dentro da instituição transmissora. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + securitySchemes: + OAuth2AuthorizationCode: + 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: + funds: Escopo necessário para acesso à API funds. O controle dos endpoints específicos é feito via permissions. + responses: + OkResponseFundsProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsProductList' + OkResponseFundsProductIdentification: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsProductIdentification' + ResponseFundsBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsBalances' + OKResponseFundsTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsTransactions' + OKResponseFundsTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsTransactionsCurrent' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + 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' + ForbiddenWithAdditionalProperties: + 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' + GatewayTimeoutWithAdditionalProperties: + 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' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + 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' + NotAcceptableWithAdditionalProperties: + 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' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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' diff --git a/swagger-apis/funds/1.0.0.yml b/swagger-apis/funds/1.0.0.yml new file mode 100644 index 000000000..4385f96e1 --- /dev/null +++ b/swagger-apis/funds/1.0.0.yml @@ -0,0 +1,1672 @@ +openapi: 3.0.0 +info: + title: API Funds - Open Finance Brasil + description: | + API de informações de operações de Fundos de Investimento Open Finance Brasil – Fase 4. + API que retorna informações de operações de investimento do tipo Fundos de Investimento mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente e movimentações financeiras. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. + Devem ser considerados como escopo de exposição todos os fundos de investimento classificados como: Renda Fixa, Ações, Multimercado e Cambial. + Para identificação do produto e posição do cliente, a exposição será de forma consolidada por Fundo de Investimento. + Para movimentações, a exposição se dará pela Ordem do Cliente, por exemplo, uma Ordem de Resgate é compartilhada como uma única movimentação, mesmo que esteja associada a diferentes Certificados (Cautelas). + + As instituições podem apresentar cenários distintos no que diz respeito ao sincronismo entre posição `/balances` e movimentação `/transactions` e `/transactions-current` da API: + + - Algumas instituições refletem movimentações ainda não convertidas na posição do cliente em seus canais eletrônicos. Isso implica que pode ocorrer compartilhamento de posição atualizada, cujas movimentações relacionadas serão expostas no ecossistema apenas após a conversão das mesmas; + + - Outras instituições refletem na posição apenas movimentações convertidas nos seus canais eletrônicos. Isso implica que o compartilhamento da posição em relação às movimentações é feito de forma sincronizada no ecossistema. + + Para o identificador do investimento (investmentId) deve ser adotado o seguinte comportamento: + + - Após 12 meses sem movimentações e com quantidade de ativos zerada, o resourceId correspondente ao investmentId em questão deve passar ao status UNAVAILABLE (considerando consentimento válido); + + - Nas situações em que o cliente compre novamente o ativo após um período de 12 meses sem movimentação e com quantidade de ativos zerada, o mesmo identificador (investmentId) deve ser utilizado. Especificamente para tais produtos, o status do recurso na resources deve passar de UNAVAILABLE para AVAILABLE. + version: 1.0.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/funds/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/funds/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: fundsGetInvestments + description: Obtém a lista de operações de Fundos de Investimento mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseFundsProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentId + description: Obtém os dados da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/OkResponseFundsProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Fundos de Investimento identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseFundsBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + operationId: fundsGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Fundos de Investimento identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionConversionDate' + - $ref: '#/components/parameters/toTransactionConversionDate' + responses: + '200': + $ref: '#/components/responses/OKResponseFundsTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: fundsGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Fundos de Investimento identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionConversionDateCurrent' + - $ref: '#/components/parameters/toTransactionConversionDateCurrent' + responses: + '200': + $ref: '#/components/responses/OKResponseFundsTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - funds +components: + schemas: + ResponseFundsProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsProductListData' + links: + $ref: '#/components/schemas/FundsProductListLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseFundsProductIdentificationData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsBalances: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseFundsBalanceData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/FundsMeta' + additionalProperties: false + ResponseFundsTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsTransactionsData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseFundsTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseFundsTransactionsCurrentData' + links: + $ref: '#/components/schemas/FundsLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseFundsProductListData: + type: object + description: Lista de fundos de investimento mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + anbimaCategory: + type: string + description: | + Conforme classificação ANBIMA, que segue a deliberação 77 da ANBIMA. + + – Renda Fixa + + – Ações + + – Multimercado + + – Cambial + + https://www.anbima.com.br/data/files/5A/44/2C/B7/8411B510CD3B4DA568A80AC2/DeliberacaoN77-Diretriz-de-Classificacao-de-Fundos.pdf + enum: + - RENDA_FIXA + - ACOES + - MULTIMERCADO + - CAMBIAL + example: RENDA_FIXA + anbimaClass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + anbimaSubclass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + investmentId: + type: string + description: Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. Nos casos em que o cliente, após completar 12 meses da última movimentação e com quantidade de ativos zerada (cliente não tem mais posse do produto sob custódia da transmissora), compre novamente o ativo que já investiu em períodos passados, manter o mesmo investmentId anteriormente utilizado. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + ResponseFundsProductIdentificationData: + type: object + description: Informações do produto de fundo de investimento a que se refere investmentId. + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome oficial do fundo de investimento conforme exibido para os clientes nos canais eletrônicos. + maxLength: 250 + example: CONSTELLATION MASTER FIA + cnpjNumber: + type: string + description: CNPJ do fundo de investimento. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. + + DEFINIÇÃO: O ISIN (International Securities Identification Number) é um código que identifica um valor mobiliário, conforme a norma ISO 6166. + + ESTRUTURA: O ISIN é um código alfanumérico que possui 12 caracteres com a seguinte estrutura: + - Um prefixo, composto de 2 caracteres alfa, que identifica o código do país (Norma ISO 3166); + - O número básico, composto de 9 caracteres alfabéticos ou numéricos em sua extensão; + - Um dígito numérico de controle. + maxLength: 12 + minLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + anbimaCategory: + type: string + description: | + Conforme classificação ANBIMA, que segue a deliberação 77 da ANBIMA. + + – Renda Fixa + + – Ações + + – Multimercado + + – Cambial + + https://www.anbima.com.br/data/files/5A/44/2C/B7/8411B510CD3B4DA568A80AC2/DeliberacaoN77-Diretriz-de-Classificacao-de-Fundos.pdf + enum: + - RENDA_FIXA + - ACOES + - MULTIMERCADO + - CAMBIAL + example: RENDA_FIXA + anbimaClass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + anbimaSubclass: + type: string + description: Campo necessário para aderência a Resolução CVM175. Aguardando definições de mercado. Deve se tratar de campo do tipo enum. + maxLength: 70 + pattern: '[\w\W\s]*' + additionalProperties: false + ResponseFundsBalanceData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - referenceDate + - grossAmount + - netAmount + - incomeTaxProvision + - financialTransactionTaxProvision + - blockedAmount + - quotaQuantity + - quotaGrossPriceValue + properties: + referenceDate: + type: string + format: date + description: Data da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + grossAmount: + $ref: '#/components/schemas/FundsBalancesGrossAmount' + netAmount: + $ref: '#/components/schemas/FundsBalancesNetAmount' + incomeTaxProvision: + $ref: '#/components/schemas/FundsBalancesIncomeTaxProvision' + financialTransactionTaxProvision: + $ref: '#/components/schemas/FundsBalancesFinancialTransactionTaxProvision' + blockedAmount: + $ref: '#/components/schemas/FundsBalancesBlockedAmount' + quotaQuantity: + type: string + format: double + description: Quantidade de cotas detidas em posição do cliente . + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '42.25' + quotaGrossPriceValue: + $ref: '#/components/schemas/FundsBalancesQuotaGrossPriceValue' + ResponseFundsTransactionsData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - transactionId + - type + - transactionType + - transactionConversionDate + - transactionQuotaPrice + - transactionQuotaQuantity + - transactionValue + - transactionGrossValue + properties: + transactionId: + type: string + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: + $ref: '#/components/schemas/EnumFundsTransactionsType' + transactionType: + $ref: '#/components/schemas/EnumFundsTransactionsTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo do motivo, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionConversionDate: + type: string + format: date + description: Data da conversão da transação de movimentação do fundo de investimento. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + transactionQuotaPrice: + type: object + description: | + É o valor da cota utilizada na conversão para a realização da movimentação do cliente no fundo, conforme a regra prevista em regulamento - valor pode ser negativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 25 + pattern: '^-?\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuotaQuantity: + type: string + format: double + description: | + Número de cotas convertidas na data da movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionValue: + type: object + description: Valor solicitado pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionGrossValue: + type: object + description: | + Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. + Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: | + Valor do Imposto de Renda (IR) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + financialTransactionTax: + type: object + description: | + Valor do Imposto sobre Operações Financeiras (IOF) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionExitFee: + type: object + description: | + Valor da taxa de saída considerado na movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionNetValue: + type: object + description: | + Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + ResponseFundsTransactionsCurrentData: + type: object + description: Informações da posição do fundo de investimento a que se refere investmentId. + required: + - transactionId + - type + - transactionType + - transactionConversionDate + - transactionQuotaPrice + - transactionQuotaQuantity + - transactionValue + - transactionGrossValue + properties: + transactionId: + type: string + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento na posição do fundo. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: + $ref: '#/components/schemas/EnumFundsTransactionsCurrentType' + transactionType: + $ref: '#/components/schemas/EnumFundsTransactionsCurrentTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo do motivo, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionConversionDate: + type: string + format: date + description: Data da conversão da transação de movimentação do fundo de investimento. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + transactionQuotaPrice: + type: object + description: | + É o valor da cota utilizada na conversão para a realização da movimentação do cliente no fundo, conforme a regra prevista em regulamento - valor pode ser negativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 25 + pattern: '^-?\d{1,15}\.\d{2,8}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuotaQuantity: + type: string + format: double + description: | + Número de cotas convertidas na data da movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + transactionValue: + type: object + description: Valor solicitado pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionGrossValue: + type: object + description: | + Valor da movimentação que se refere a quantidade da cota x valor da cota da movimentação. + Nos casos em que não houver movimentação de cotas, por exemplo: amortização, não considerar a regra descrita. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: | + Valor do Imposto de Renda (IR) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + financialTransactionTax: + type: object + description: | + Valor do Imposto sobre Operações Financeiras (IOF) retido na fonte considerando a alíquota vigente na data da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionExitFee: + type: object + description: | + Valor da taxa de saída considerado na movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionNetValue: + type: object + description: | + Valor líquido da movimentação posterior à dedução de impostos (IOF e IR) e taxa de saída. + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + MetaSingle: + type: object + description: Meta informação referente a API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + FundsMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + FundsProductListLinks: + 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@:%\+.~#?&\/\/=]*)$' + FundsLinks: + 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@:%_\+.~#?&\/\/=]*)$' + FundsBalancesBlockedAmount: + type: object + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesFinancialTransactionTaxProvision: + type: object + description: Valor do imposto considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '50.02' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesGrossAmount: + type: object + description: 'Valor do investimento que se refere a quantidade da cota x valor da cota, atualizado na data de referência.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesIncomeTaxProvision: + type: object + description: Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '50.02' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesNetAmount: + type: object + description: Valor do investimento atualizado na data de referência, posterior a dedução de impostos (IOF e IR) e taxa de saída, caso a instituição considere este valor na composição do saldo líquido. Este valor considera o valor bloqueado (blockedAmount). + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + FundsBalancesQuotaGrossPriceValue: + type: object + description: Valor bruto da cota atualizado na data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,8}$' + maxLength: 25 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + EnumFundsTransactionsType: + type: string + description: | + Tipo de movimentação (Entrada ou Saída). + + ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. + + SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumFundsTransactionsTransactionType: + type: string + description: | + O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). + A opção OUTROS só deve ser utilizada para os casos em que de fato a transação compartilhada não possa ser classificada como um dos itens deste Enum, e nesse caso deve-se preencher informações adicionais. + enum: + - AMORTIZACAO + - TRANSFERENCIA_COTAS + - APLICACAO + - RESGATE + - COME_COTAS + - OUTROS + example: AMORTIZACAO + EnumFundsTransactionsCurrentType: + type: string + description: | + Tipo de movimentação (Entrada ou Saída). + + ENTRADA: APLICACAO, TRANSFERENCIA_COTAS, OUTROS. + + SAIDA: RESGATE, COME_COTAS, TRANSFERENCIA_COTAS, AMORTIZACAO, OUTROS. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumFundsTransactionsCurrentTransactionType: + type: string + description: | + O campo deve classificar a transação de movimentação de investimento em um dos tipos descritos (amortização, transferência de cotas, aplicação, resgate ou come-cotas). + A opção OUTROS só deve ser utilizada para os casos em que de fato a transação compartilhada não possa ser classificada como um dos itens deste Enum, e nesse caso deve-se preencher informações adicionais. + enum: + - AMORTIZACAO + - TRANSFERENCIA_COTAS + - APLICACAO + - RESGATE + - COME_COTAS + - OUTROS + example: AMORTIZACAO + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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' + 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/MetaWithAbleAdditionalProperties' + MetaWithAbleAdditionalProperties: + 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: Identifica de forma única o relacionamento do cliente com o fundo, mantendo as regras de imutabilidade dentro da instituição transmissora. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionConversionDate: + name: fromTransactionConversionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionConversionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionConversionDate: + name: toTransactionConversionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionConversionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionConversionDateCurrent: + name: fromTransactionConversionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionConversionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionConversionDateCurrent: + name: toTransactionConversionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionConversionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + securitySchemes: + OAuth2AuthorizationCode: + 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: + funds: Escopo necessário para acesso à API funds. O controle dos endpoints específicos é feito via permissions. + responses: + OkResponseFundsProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsProductList' + OkResponseFundsProductIdentification: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsProductIdentification' + ResponseFundsBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsBalances' + OKResponseFundsTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsTransactions' + OKResponseFundsTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseFundsTransactionsCurrent' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + 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' + ForbiddenWithAdditionalProperties: + 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' + GatewayTimeoutWithAdditionalProperties: + 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' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + 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' + NotAcceptableWithAdditionalProperties: + 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' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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' diff --git a/swagger-apis/funds/index.html b/swagger-apis/funds/index.html index 00bbf6e2f..05736ef41 100644 --- a/swagger-apis/funds/index.html +++ b/swagger-apis/funds/index.html @@ -45,8 +45,11 @@ window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}], - "urls.primaryName": "1.0.0-rc1.0", // default spec + urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/insurances/1.0.0-rc3.0.yml b/swagger-apis/insurances/1.0.0-rc3.0.yml new file mode 100644 index 000000000..c56ad112e --- /dev/null +++ b/swagger-apis/insurances/1.0.0-rc3.0.yml @@ -0,0 +1,1211 @@ +openapi: 3.0.0 +info: + title: API Seguros - Open Finance Brasil + description: | + As APIs descritas neste documento são referentes a API de Seguros da fase OpenInsurance do Open Finance Brasil. + version: 1.0.0-rc3.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/opendata-insurance/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/opendata-insurance/v1' + description: Servidor de Homologação +tags: + - name: Seguros + description: 'Operações para consulta de informações de seguros automotivos, residenciais e pessoais' +paths: + /personals: + get: + tags: + - Seguros + summary: Conjunto de informações referentes a seguros pessoais de uma instituição + operationId: getPersonalInsurance + description: Método para obter a lista de todos os seguros pessoais de uma instituição + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponsePersonalInsuranceList' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' +components: + schemas: + Participant: + type: object + description: Conjunto de informações relativas ao participante do produto de Open Finance + required: + - brand + - name + - cnpjNumber + properties: + brand: + type: string + description: 'Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Organização + name: + type: string + description: Nome do participante do Open Finance. + maxLength: 80 + example: Organização A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + urlComplementaryList: + type: string + description: | + Espera-se que valor de retorno, após acesso ao link 'urlComplementaryList', deve ser array de objeto com a estrutura abaixo: + - 'name' com o valor contido no campo 'LegalEntityName' conforme cadastro no diretório; + - 'cnpjNumber' com o valor contido no campo CNPJ ('RegistrationNumber') correspondente a esta instituição; + - Ambos do tipo string; + - Ambos obrigatórios. + maxLength: 1024 + pattern: '^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))$|^(NA)$' + example: 'https://empresaa1.com/companies' + additionalProperties: false + CnpjNumber: + type: string + description: '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.' + pattern: '^(\d{14})$|^(NA)$' + example: '13456789000112' + CurrencyCode: + type: string + pattern: '^([A-Z]{3})$|^(NA)$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + InsurancePensionMinValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + InsurancePensionMaxValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + GracePeriod: + type: object + required: + - amount + - unit + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + details: + type: string + maxLength: 500 + pattern: '[\w\W\s]*' + example: Descrições adicionais do período de carência + additionalProperties: false + TermsAndConditionsItem: + type: object + required: + - susepProcessNumber + - detail + properties: + susepProcessNumber: + type: string + description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.' + minLength: 2 + maxLength: 20 + pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$' + example: 15414.622222/2222-22 + detail: + type: string + description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)' + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + EnumProductModality: + type: string + description:
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
  18. NA
+ maxLength: 33 + enum: + - FUNERAL + - PRESTAMISTA + - VIAGEM + - EDUCACIONAL + - DOTAL + - ACIDENTES_PESSOAIS + - VIDA + - PERDA_CERTIFICADO_HABILITACAO_VOO + - DOENCAS_GRAVES_DOENCA_TERMINAL + - DESEMPREGO_PERDA_RENDA + - EVENTOS_ALEATORIOS + - PECULIO + - PENSAO_PRAZO_CERTO + - PENSAO_MENORES_21 + - PENSAO_MENORES_24 + - PENSAO_CONJUGE_VITALICIA + - PENSAO_CONJUGE_TEMPORARIA + - NA + example: FUNERAL + EnumGracePeriodUnit: + type: string + description: Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
+ maxLength: 10 + enum: + - DIAS + - MESES + - NAO_APLICA + - NA + example: MESES + InsurancePensionEnumPmbacRemuneration: + type: object + properties: + interestRate: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros para capitalização da PMBaC + maxLength: 9 + minLength: 8 + example: '0.019800' + updateIndexes: + type: array + items: + $ref: '#/components/schemas/EnumPersonalUpdateIndex' + additionalProperties: false + AgeAdjustment: + type: object + required: + - criterias + - frequency + properties: + criterias: + type: array + items: + type: string + description: | + Critério escolhido para reenquadramento etário + 1. Após período em anos + 2. A cada período em anos + 3. Por mudança de faixa etária + 4. Não aplicável + 5. NA + maxLength: 27 + example: APOS_PERIODO_ANOS + enum: + - APOS_PERIODO_ANOS + - CADA_PERIODO_ANOS + - MUDANCA_FAIXA_ETARIA + - NAO_APLICAVEL + - NA + frequency: + type: integer + description: 'Período em anos, caso critério de reenquadramento após ou a cada período em anos.' + maxLength: 3 + example: 10 + additionalProperties: false + InsurancePensionEnumFinancialRegime: + type: string + description: | + Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto indicando: + 1. Repartição simples + 2. Repartição Capitais Cobertura + 3. Capitalização + 4. NA + maxLength: 19 + example: REPARTICAO_SIMPLES + enum: + - REPARTICAO_SIMPLES + - REPARTICAO_CAPITAIS + - CAPITALIZACAO + - NA + EnumInsurancePersonalBenefitRecalculationUpdateIndex: + type: string + description: | + Índice utilizado na atualização do prêmio/contribuição e do capital segurado/ benefício, caso critério de atualização por meio de índice + enum: + - IPCA + - IGP_M + - INPC + - NA + example: IPCA + EnumPersonalUpdateIndex: + type: string + description: | + Índice utilizado na atualização da PMBaC: + 1. IPCA (IBGE) + 2. IGP-M (FGV) + 3. INPC (IBGE) + 4. NA + enum: + - IPCA + - IGP_M + - INPC + - NA + example: IPCA + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + OKResponsePersonalInsuranceList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/PersonalInsuranceData' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + PersonalInsuranceData: + type: object + required: + - participant + - society + - name + - code + - modality + - coverages + - additionals + - termsAndConditions + - terms + - financialRegimes + - indemnityPaymentMethods + - targetAudience + properties: + participant: + $ref: '#/components/schemas/Participant' + society: + $ref: '#/components/schemas/PersonalInsuranceSociety' + name: + type: string + description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.' + maxLength: 80 + example: Produto A + code: + type: string + description: Código único a ser definido pela sociedade. + maxLength: 80 + example: '0001' + category: + type: string + description: Indicar a categoria do Produto:
  1. Tradicional
  2. Microsseguro
  3. NA
+ maxLength: 12 + enum: + - TRADICIONAL + - MICROSSEGURO + - NA + example: TRADICIONAL + modality: + $ref: '#/components/schemas/EnumProductModality' + coverages: + type: array + items: + $ref: '#/components/schemas/PersonalCoverageItem' + minItems: 1 + assistanceTypes: + type: array + items: + type: string + description: 'Lista padronizada de tipo de assistências ofertadas vinculadas ao produto. Por exemplo, Funeral, Bicicleta, Assistência PET – Tabela padrão a ser consolidada com retorno das empresas com a relação de assistências, permitindo um campo ‘Outros’ para assistências não contempladas na tabela padronizada.' + maxLength: 43 + enum: + - ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + - ARQUITETO_VIRTUAL + - ASSESSORIA_FINANCEIRA + - AUTOMOVEL + - AUXILIO_NATALIDADE + - AVALIACAO_CLINICA_PREVENTIVA + - BOLSA_PROTEGIDA + - CESTA_BASICA + - CHECKUP_ODONTOLOGICO + - CLUBE_VANTAGENS_BENEFICIOS + - CONVALESCENCIA + - DECESSO + - DESCONTO_FARMACIAS_MEDICAMENTOS + - DESPESAS_FARMACEUTICAS_VIAGEM + - DIGITAL + - EDUCACIONAL + - EMPRESARIAL + - ENCANADOR + - ENTRETENIMENTO + - EQUIPAMENTOS_MEDICOS + - FIANCAS_DESPESAS_LEGAIS + - FISIOTERAPIA + - FUNERAL + - HELP_LINE + - HOSPEDAGEM_ACOMPANHANTE + - INTERRUPCAO_VIAGEM + - INVENTARIO + - MAIS_VIDA + - MAMAE_BEBE + - MEDICA_ACIDENTE_DOENCA + - MOTOCICLETA + - MULHER + - NUTRICIONISTA + - ODONTOLOGICA + - ORIENTACAO_FITNESS + - ORIENTACAO_JURIDICA + - ORIENTACAO_NUTRICIONAL + - PERSONAL_FITNESS + - ORIENTACAO_PSICOSSOCIAL_FAMILIAR + - PERDA_ROUBO_CARTAO + - PET + - PRORROGACAO_ESTADIA + - PROTECAO_DADOS + - RECOLOCACAO_PROFISSIONAL + - REDE_DESCONTO_NUTRICIONAL + - RESIDENCIAL + - RETORNO_MENORES_SEGURADO + - SAQUE_COACAO + - SAUDE_BEM_ESTAR + - SEGUNDA_OPINIAO_MEDICA + - SENIOR + - SUSTENTAVEL_DESCARTE_ECOLOGICO + - TELEMEDICINA + - VIAGEM + - VITIMA + - OUTROS + - NA + example: ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + assistanceTypesAdditionalInfos: + description: Lista a ser preenchido pelas participantes quando houver ‘Outros’ no campo ‘Tipo de Assistência’ + type: array + items: + type: string + example: + - Assistance additional info. + additionals: + type: array + items: + type: string + maxLength: 44 + enum: + - SORTEIO + - SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO + - SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO + - OUTROS + - NAO_HA + - NA + example: SORTEIO + termsAndConditions: + type: array + items: + $ref: '#/components/schemas/TermsAndConditionsItem' + minItems: 1 + globalCapital: + type: boolean + description: | + A considerar os seguintes domínios: + 1. true + 2. false + example: true + terms: + type: array + items: + type: string + description: Define o prazo do plano contratado
  1. Vitalícia
  2. Temporária - prazo fixo
  3. Temporária – intermitente
  4. NA
+ maxLength: 23 + enum: + - VITALICIA + - TEMPORARIA_PRAZO_FIXO + - TEMPORARIA_INTERMITENTE + - NA + example: VITALICIA + pmbacRemuneration: + $ref: '#/components/schemas/InsurancePensionEnumPmbacRemuneration' + benefitRecalculation: + $ref: '#/components/schemas/BenefitRecalculation' + ageAdjustment: + $ref: '#/components/schemas/AgeAdjustment' + financialRegimes: + type: array + items: + $ref: '#/components/schemas/InsurancePensionEnumFinancialRegime' + reclaim: + $ref: '#/components/schemas/PersonalInsuranceReclaim' + otherGuaranteedValues: + type: array + items: + $ref: '#/components/schemas/EnumPersonalInsuranceOtherGuaranteedValues' + allowPortability: + type: boolean + description: | + 1. true + 2. false + portabilityGraceTime: + $ref: '#/components/schemas/PersonalInsurancePortabilityGraceTime' + indemnityPaymentMethods: + type: array + items: + $ref: '#/components/schemas/EnumPersonalInsuranceIndemnityPaymentMethod' + indemnityPaymentIncomes: + type: array + items: + $ref: '#/components/schemas/EnumPersonalInsuranceIndemnityPaymentIncome' + premiumPayment: + $ref: '#/components/schemas/PersonalInsurancePremiumPayment' + minimumRequirement: + $ref: '#/components/schemas/PersonalInsuranceMinimumRequirement' + targetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. Ambas (Pessoa Natural e Jurídica) + 4. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - PESSOA_NATURAL_JURIDICA + - NA + example: PESSOA_NATURAL + additionalProperties: false + PersonalCoverageItem: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/EnumInsurancePersonalCoverageTypePersonal' + typeAdditionalInfos: + type: array + description: | + Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'. + Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS' + items: + type: string + maxLength: 100 + example: + - Detalhar os serviços + - benefícios + - outros + attributes: + $ref: '#/components/schemas/PersonalCoverageItemAttributes' + additionalProperties: false + PersonalCoverageItemAttributes: + type: object + required: + - indemnityPaymentMethods + - indemnityPaymentFrequencies + - minValue + - maxValue + - indemnifiablePeriods + - maximumQtyIndemnifiableInstallments + - gracePeriod + - deductibleDays + - deductible + - excludedRisks + properties: + indemnityPaymentMethods: + description: Listagem da forma de pagamento da indenização para cada combinação de modalidade/cobertura do produto. + type: array + items: + type: string + enum: + - PAGAMENTO_CAPITAL_SEGURADO_VALOR_MONETARIO + - REEMBOLSO_DESPESAS + - PRESTACAO_SERVICOS + - NA + maxLength: 42 + indemnityPaymentFrequencies: + description: Listagem de tipos de frequência de pagamento de indenização para cada combinação de modalidade/cobertura do produto. + type: array + items: + $ref: '#/components/schemas/EnumPersonalIndemnityPaymentFrequencyType' + minValue: + $ref: '#/components/schemas/InsurancePensionMinValue' + maxValue: + $ref: '#/components/schemas/InsurancePensionMaxValue' + indemnifiablePeriods: + description: Listagem de período indenizável para cada combinação de modalidade/cobertura do produto. + type: array + items: + type: string + maxLength: 50 + example: ATE_FIM_CICLO_DETERMINADO + maximumQtyIndemnifiableInstallments: + type: integer + description: 'Caso o período indenizável seja relacionado a parcelas, listagem de número máximo de parcelas indenizáveis para cada combinação de modalidade/ cobertura do produto.' + maxLength: 10 + example: 10 + gracePeriod: + $ref: '#/components/schemas/PersonalInsuranceGracePeriod' + differentiatedGracePeriod: + type: string + description: 'Campo aberto para detalhamento de período de carência diferenciado, se houver.' + maxLength: 500 + pattern: '[\w\W\s]*' + example: 90 DIAS + deductibleDays: + type: integer + description: Listagem de franquia em dias para cada combinação de modalidade/cobertura do produto. + maxLength: 10 + example: 10 + differentiatedDeductibleDays: + type: integer + description: 'Detalhamento da franquia em dias diferentes para cada cobertura que exista alguma especificidade. Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.' + maxLength: 10 + example: 15 + deductible: + type: object + required: + - amount + - currency + description: Listagem de franquia em reais para cada combinação de modalidade/cobertura do produto. + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + differentiatedDeductible: + type: object + required: + - amount + - currency + description: 'Detalhamento da franquia em reais diferentes para cada cobertura que exista alguma especificidade.
Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + excludedRisks: + type: array + items: + $ref: '#/components/schemas/EnumExcludedRisks' + excludedRisksURL: + type: string + description: Campo aberto (possibilidade de incluir URL) + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + allowApartPurchase: + type: boolean + description: | + Indicar se a cobertura pode ser contratada isoladamente ou não: + 1. true + 2. false + additionalProperties: false + EnumPersonalIndemnityPaymentFrequencyType: + type: string + description: '' + maxLength: 17 + enum: + - INDENIZACAO_UNICA + - DIARIA_OU_PARCELA + - NA + example: INDENIZACAO_UNICA + EnumExcludedRisks: + type: string + description: Listagem para indicar quais serão o(s) risco(s) excluído(s) aplicável(is) à(s) cobertura(s). + maxLength: 40 + enum: + - ATO_RECONHECIMENTO_PERIGOSO + - ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO + - OPERACOES_GUERRA + - FURACOES_CICLONES_TERREMOTOS + - MATERIAL_NUCLEAR + - DOENCAS_LESOES_PREEXISTENTES + - EPIDEMIAS_PANDEMIAS + - SUICIDIO + - ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR + - OUTROS + - NA + example: ATO_RECONHECIMENTO_PERIGOSO + EnumPersonalInsuranceOtherGuaranteedValues: + type: string + description: | + 1. Saldamento + 2. Benefício Prolongado + 3. Não se aplica + 4. NA + maxLength: 20 + enum: + - SALDAMENTO + - BENEFICIO_PROLONGADO + - NAO_APLICA + - NA + example: SALDAMENTO + EnumPersonalInsuranceIndemnityPaymentMethod: + type: string + description: | + Modalidade de pagamento da indenização, a considerar os domínios abaixo: + 1. Único + 2. Sob a forma de renda + 3. NA + maxLength: 18 + enum: + - UNICO + - SOB_FORMA_RENDA + - NA + example: UNICO + EnumPersonalInsuranceIndemnityPaymentIncome: + type: string + description: | + Tipo de renda ou pensão, caso modalidade de pagamento de indenização seja sob a forma de renda: + 1. Certa + 2. Temporária + 3. Temporária reversível + 4. Temporário com mínimo garantido + 5. Temporária reversível com mínimo garantido + 6. Vitalícia + 7. Vitalícia reversível + 8. Vitalícia com o mínimo garantido + 9. Vitalícia reversível como mínimo garantido + 10. NA + maxLength: 38 + enum: + - CERTA + - TEMPORARIA + - TEMPORARIA_REVERSIVEL + - TEMPORARIO_MINIMO_GARANTIDO + - TEMPORARIA_REVERSIVEL_MINIMO_GARANTIDO + - VITALICIA + - VITALICIA_REVERSIVEL + - VITALICIA_MINIMO_GARANTIDO + - VITALICIA_REVERSIVEL_MINIMO_GARANTIDO + - NA + example: CERTA + PersonalInsurancePremiumPayment: + type: object + required: + - paymentMethods + - frequencies + properties: + paymentMethods: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/EnumPremiumPaymentMethodTypePersonal' + frequencies: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/EnumPersonalInsurancePremiumPaymentFrequency' + contributionTax: + type: string + description: 'Distribuição de frequência relativa aos valores referentes às taxas cobradas, nos termos do Anexo III.' + maxLength: 500 + additionalProperties: false + EnumPersonalInsurancePremiumPaymentFrequency: + type: string + description: | + Periodicidade de pagamento do prêmio: + 1. Diária + 2. Mensal + 3. Única + 4. Anual + 5. Trimestral + 6. Semestral + 7. Fracionado + 8. Outra + 9. NA + maxLength: 10 + enum: + - DIARIA + - MENSAL + - UNICA + - ANUAL + - TRIMESTRAL + - SEMESTRAL + - FRACIONADO + - OUTRA + - NA + example: DIARIA + PersonalInsuranceMinimumRequirement: + type: object + required: + - contractType + - contractingMinRequirement + properties: + contractType: + $ref: '#/components/schemas/EnumContractTypePersonal' + contractingMinRequirement: + type: string + description: Campo aberto (possibilidade de incluir URL) + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + PersonalInsuranceGracePeriod: + type: object + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + details: + type: string + maxLength: 500 + pattern: '[\w\W\s]*' + example: Descrições adicionais do período de carência + additionalProperties: false + PersonalInsuranceReclaim: + type: object + required: + - gracePeriod + properties: + table: + type: array + items: + $ref: '#/components/schemas/PersonalInsuranceReclaimTableItem' + minItems: 1 + gracePeriod: + $ref: '#/components/schemas/GracePeriod' + differenciatedPercentage: + description: Campo aberto (possibilidade de incluir URL) + example: | + https://openinsurance.com.br/aaa’ + Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL + Exemplo: Cobertura X: a partir de 25 meses = 100% + maxLength: 1024 + additionalProperties: false + PersonalInsuranceReclaimTableItem: + type: object + required: + - initialMonthRange + - finalMonthRange + - percentage + properties: + initialMonthRange: + type: integer + maxLength: 2 + example: 1 + finalMonthRange: + type: integer + maxLength: 2 + example: 12 + percentage: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual de faixa de resgate. + example: '0.019800' + additionalProperties: false + EnumInsurancePersonalCoverageTypePersonal: + type: string + description: 'É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura ' + maxLength: 62 + enum: + - ADIANTAMENTO_DOENCA_ESTAGIO_TERMINAL + - AUXILIO_CESTA_BASICA + - AUXILIO_FINANCEIRO_IMEDIATO + - CANCELAMENTO_VIAGEM + - CIRURGIA + - COBERTURA_HERNIA + - COBERTURA_LER_DORT + - CUIDADOS_PROLONGADOS_ACIDENTE + - DESEMPREGO_PERDA_RENDA + - DESPESAS_EXTRA_INVALIDEZ_PERMANENTE_TOTAL_PARCIAL_ACIDENTE_DEI + - DESPESAS_EXTRA_MORTE_DEM + - DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS + - DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS_BRASIL + - DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS_EXTERIOR + - DIARIA_INCAPACIDADE_TOTAL_TEMPORARIA + - DIARIA_INTERNACAO_HOSPITALAR + - INTERNACAO_HOSPITALAR + - DIARIAS_INCAPACIDADE_PECUNIARIA_DIP + - DOENCA_CONGENITA_FILHOS_DCF + - FRATURA_OSSEA + - DOENCAS_TROPICAIS + - INCAPACIDADE_TOTAL_OU_TEMPORARIA + - INVALIDEZ_PERMANENTE_TOTAL_PARCIAL + - INVALIDEZ_TOTAL_ACIDENTE + - INVALIDEZ_PARCIAL_ACIDENTE + - INVALIDEZ_FUNCIONAL_PERMANENTE_DOENCA + - INVALIDEZ_LABORATIVA_DOENCA + - MORTE + - MORTE_ACIDENTAL + - MORTE_CONJUGE + - MORTE_FILHOS + - MORTE_ADIATAMENTO_DOENCA_ESTAGIO_TERMINAL + - PAGAMENTO_ANTECIPADO_ESPECIAL_DOENCA_PROFISSIONAL_PAED + - PERDA_AUTONOMIA_PESSOAL + - PERDA_INVOLUNTARIA_EMPREGO + - QUEIMADURA_GRAVE + - REGRESSO_ANTECIPADO_SANITARIO + - RENDA_INCAPACIDADE_TEMPORARIA + - RESCISAO_CONTRATUAL_CASO_MORTE_RCM + - RESCISAO_TRABALHISTA + - SERVICO_AUXILIO_FUNERAL + - SOBREVIVENCIA + - TRANSPLANTE_ORGAOS + - TRASLADO + - TRANSLADO_CORPO + - VERBA_RESCISORIA + - DOENCA_GRAVE + - TRANSLADO_MEDICO + - OUTROS + - NA + example: INVALIDEZ_PERMANENTE_TOTAL_PARCIAL + EnumPremiumPaymentMethodTypePersonal: + type: string + description: | + Meio de pagamento escolhido pelo segurado. A considerar os domínios abaixo: + 1. Cartão de Crédito + 2. Cartão de Débito + 3. Débito em conta corrente + 4. Débito em conta poupança + 5. Boleto bancário + 6. PIX + 7. Consignação em Folha de Pagamento + 8. Pontos de Programa de Benefício + 9. Regra de Parceiro + 10. NA + maxLength: 27 + enum: + - CARTAO_CREDITO + - CARTAO_DEBITO + - DEBITO_CONTA_CORRENTE + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - REGRA_PARCEIRO + - NA + example: CARTAO_CREDITO + EnumContractTypePersonal: + type: string + description: | + A considerar os domínios abaixo: + 1. Coletivo; + 2. Individual + 3. NA + maxLength: 10 + enum: + - COLETIVO + - INDIVIDUAL + - NA + example: COLETIVO + PersonalInsuranceSociety: + type: object + description: Conjunto de informações relativas à seguradora do produto de open insurance + required: + - name + - cnpjNumber + - brand + properties: + name: + type: string + description: Nome da Sociedade Seguradora. + maxLength: 80 + example: Society A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + brand: + type: string + description: 'Nome da marca reportada pela sociedade seguradora participante do Open Finance. O conceito a que se refere a marca é em essência uma promessa das sociedades sob ela em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Marca + additionalProperties: false + PersonalInsurancePortabilityGraceTime: + type: object + required: + - amount + - unit + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + additionalProperties: false + BenefitRecalculation: + type: object + required: + - criterias + properties: + criterias: + type: array + items: + type: string + enum: + - INDICE + - VINCULADO_SALDO_DEVEDOR + - VARIAVEL_ACORDO_CRITERIO_ESPECIFICO + - NA + updateIndexes: + type: array + items: + $ref: '#/components/schemas/EnumInsurancePersonalBenefitRecalculationUpdateIndex' + additionalProperties: false + 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@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + Meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + 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 + additionalProperties: false + meta: + $ref: '#/components/schemas/Meta' + additionalProperties: false + parameters: + page: + name: page + in: query + description: Número da página que está sendo requisitada (o valor da primeira página é 1). + schema: + type: integer + 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 + responses: + OKResponsePersonalInsuranceList: + description: Dados de seguro(s) pessoais obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponsePersonalInsuranceList' + BadRequest: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' diff --git a/swagger-apis/insurances/1.0.0.yml b/swagger-apis/insurances/1.0.0.yml new file mode 100644 index 000000000..f459dcf89 --- /dev/null +++ b/swagger-apis/insurances/1.0.0.yml @@ -0,0 +1,1211 @@ +openapi: 3.0.0 +info: + title: API Seguros - Open Finance Brasil + description: | + As APIs descritas neste documento são referentes a API de Seguros da fase OpenInsurance do Open Finance Brasil. + version: 1.0.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/opendata-insurance/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/opendata-insurance/v1' + description: Servidor de Homologação +tags: + - name: Seguros + description: 'Operações para consulta de informações de seguros automotivos, residenciais e pessoais' +paths: + /personals: + get: + tags: + - Seguros + summary: Conjunto de informações referentes a seguros pessoais de uma instituição + operationId: getPersonalInsurance + description: Método para obter a lista de todos os seguros pessoais de uma instituição + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponsePersonalInsuranceList' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' +components: + schemas: + Participant: + type: object + description: Conjunto de informações relativas ao participante do produto de Open Finance + required: + - brand + - name + - cnpjNumber + properties: + brand: + type: string + description: 'Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Organização + name: + type: string + description: Nome do participante do Open Finance. + maxLength: 80 + example: Organização A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + urlComplementaryList: + type: string + description: | + Espera-se que valor de retorno, após acesso ao link 'urlComplementaryList', deve ser array de objeto com a estrutura abaixo: + - 'name' com o valor contido no campo 'LegalEntityName' conforme cadastro no diretório; + - 'cnpjNumber' com o valor contido no campo CNPJ ('RegistrationNumber') correspondente a esta instituição; + - Ambos do tipo string; + - Ambos obrigatórios. + maxLength: 1024 + pattern: '^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))$|^(NA)$' + example: 'https://empresaa1.com/companies' + additionalProperties: false + CnpjNumber: + type: string + description: '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.' + pattern: '^(\d{14})$|^(NA)$' + example: '13456789000112' + CurrencyCode: + type: string + pattern: '^([A-Z]{3})$|^(NA)$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + InsurancePensionMinValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + InsurancePensionMaxValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + GracePeriod: + type: object + required: + - amount + - unit + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + details: + type: string + maxLength: 500 + pattern: '[\w\W\s]*' + example: Descrições adicionais do período de carência + additionalProperties: false + TermsAndConditionsItem: + type: object + required: + - susepProcessNumber + - detail + properties: + susepProcessNumber: + type: string + description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.' + minLength: 2 + maxLength: 20 + pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$' + example: 15414.622222/2222-22 + detail: + type: string + description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)' + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + EnumProductModality: + type: string + description:
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
  18. NA
+ maxLength: 33 + enum: + - FUNERAL + - PRESTAMISTA + - VIAGEM + - EDUCACIONAL + - DOTAL + - ACIDENTES_PESSOAIS + - VIDA + - PERDA_CERTIFICADO_HABILITACAO_VOO + - DOENCAS_GRAVES_DOENCA_TERMINAL + - DESEMPREGO_PERDA_RENDA + - EVENTOS_ALEATORIOS + - PECULIO + - PENSAO_PRAZO_CERTO + - PENSAO_MENORES_21 + - PENSAO_MENORES_24 + - PENSAO_CONJUGE_VITALICIA + - PENSAO_CONJUGE_TEMPORARIA + - NA + example: FUNERAL + EnumGracePeriodUnit: + type: string + description: Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
+ maxLength: 10 + enum: + - DIAS + - MESES + - NAO_APLICA + - NA + example: MESES + InsurancePensionEnumPmbacRemuneration: + type: object + properties: + interestRate: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros para capitalização da PMBaC + maxLength: 9 + minLength: 8 + example: '0.019800' + updateIndexes: + type: array + items: + $ref: '#/components/schemas/EnumPersonalUpdateIndex' + additionalProperties: false + AgeAdjustment: + type: object + required: + - criterias + - frequency + properties: + criterias: + type: array + items: + type: string + description: | + Critério escolhido para reenquadramento etário + 1. Após período em anos + 2. A cada período em anos + 3. Por mudança de faixa etária + 4. Não aplicável + 5. NA + maxLength: 27 + example: APOS_PERIODO_ANOS + enum: + - APOS_PERIODO_ANOS + - CADA_PERIODO_ANOS + - MUDANCA_FAIXA_ETARIA + - NAO_APLICAVEL + - NA + frequency: + type: integer + description: 'Período em anos, caso critério de reenquadramento após ou a cada período em anos.' + maxLength: 3 + example: 10 + additionalProperties: false + InsurancePensionEnumFinancialRegime: + type: string + description: | + Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto indicando: + 1. Repartição simples + 2. Repartição Capitais Cobertura + 3. Capitalização + 4. NA + maxLength: 19 + example: REPARTICAO_SIMPLES + enum: + - REPARTICAO_SIMPLES + - REPARTICAO_CAPITAIS + - CAPITALIZACAO + - NA + EnumInsurancePersonalBenefitRecalculationUpdateIndex: + type: string + description: | + Índice utilizado na atualização do prêmio/contribuição e do capital segurado/ benefício, caso critério de atualização por meio de índice + enum: + - IPCA + - IGP_M + - INPC + - NA + example: IPCA + EnumPersonalUpdateIndex: + type: string + description: | + Índice utilizado na atualização da PMBaC: + 1. IPCA (IBGE) + 2. IGP-M (FGV) + 3. INPC (IBGE) + 4. NA + enum: + - IPCA + - IGP_M + - INPC + - NA + example: IPCA + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + OKResponsePersonalInsuranceList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/PersonalInsuranceData' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + PersonalInsuranceData: + type: object + required: + - participant + - society + - name + - code + - modality + - coverages + - additionals + - termsAndConditions + - terms + - financialRegimes + - indemnityPaymentMethods + - targetAudience + properties: + participant: + $ref: '#/components/schemas/Participant' + society: + $ref: '#/components/schemas/PersonalInsuranceSociety' + name: + type: string + description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.' + maxLength: 80 + example: Produto A + code: + type: string + description: Código único a ser definido pela sociedade. + maxLength: 80 + example: '0001' + category: + type: string + description: Indicar a categoria do Produto:
  1. Tradicional
  2. Microsseguro
  3. NA
+ maxLength: 12 + enum: + - TRADICIONAL + - MICROSSEGURO + - NA + example: TRADICIONAL + modality: + $ref: '#/components/schemas/EnumProductModality' + coverages: + type: array + items: + $ref: '#/components/schemas/PersonalCoverageItem' + minItems: 1 + assistanceTypes: + type: array + items: + type: string + description: 'Lista padronizada de tipo de assistências ofertadas vinculadas ao produto. Por exemplo, Funeral, Bicicleta, Assistência PET – Tabela padrão a ser consolidada com retorno das empresas com a relação de assistências, permitindo um campo ‘Outros’ para assistências não contempladas na tabela padronizada.' + maxLength: 43 + enum: + - ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + - ARQUITETO_VIRTUAL + - ASSESSORIA_FINANCEIRA + - AUTOMOVEL + - AUXILIO_NATALIDADE + - AVALIACAO_CLINICA_PREVENTIVA + - BOLSA_PROTEGIDA + - CESTA_BASICA + - CHECKUP_ODONTOLOGICO + - CLUBE_VANTAGENS_BENEFICIOS + - CONVALESCENCIA + - DECESSO + - DESCONTO_FARMACIAS_MEDICAMENTOS + - DESPESAS_FARMACEUTICAS_VIAGEM + - DIGITAL + - EDUCACIONAL + - EMPRESARIAL + - ENCANADOR + - ENTRETENIMENTO + - EQUIPAMENTOS_MEDICOS + - FIANCAS_DESPESAS_LEGAIS + - FISIOTERAPIA + - FUNERAL + - HELP_LINE + - HOSPEDAGEM_ACOMPANHANTE + - INTERRUPCAO_VIAGEM + - INVENTARIO + - MAIS_VIDA + - MAMAE_BEBE + - MEDICA_ACIDENTE_DOENCA + - MOTOCICLETA + - MULHER + - NUTRICIONISTA + - ODONTOLOGICA + - ORIENTACAO_FITNESS + - ORIENTACAO_JURIDICA + - ORIENTACAO_NUTRICIONAL + - PERSONAL_FITNESS + - ORIENTACAO_PSICOSSOCIAL_FAMILIAR + - PERDA_ROUBO_CARTAO + - PET + - PRORROGACAO_ESTADIA + - PROTECAO_DADOS + - RECOLOCACAO_PROFISSIONAL + - REDE_DESCONTO_NUTRICIONAL + - RESIDENCIAL + - RETORNO_MENORES_SEGURADO + - SAQUE_COACAO + - SAUDE_BEM_ESTAR + - SEGUNDA_OPINIAO_MEDICA + - SENIOR + - SUSTENTAVEL_DESCARTE_ECOLOGICO + - TELEMEDICINA + - VIAGEM + - VITIMA + - OUTROS + - NA + example: ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + assistanceTypesAdditionalInfos: + description: Lista a ser preenchido pelas participantes quando houver ‘Outros’ no campo ‘Tipo de Assistência’ + type: array + items: + type: string + example: + - Assistance additional info. + additionals: + type: array + items: + type: string + maxLength: 44 + enum: + - SORTEIO + - SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO + - SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO + - OUTROS + - NAO_HA + - NA + example: SORTEIO + termsAndConditions: + type: array + items: + $ref: '#/components/schemas/TermsAndConditionsItem' + minItems: 1 + globalCapital: + type: boolean + description: | + A considerar os seguintes domínios: + 1. true + 2. false + example: true + terms: + type: array + items: + type: string + description: Define o prazo do plano contratado
  1. Vitalícia
  2. Temporária - prazo fixo
  3. Temporária – intermitente
  4. NA
+ maxLength: 23 + enum: + - VITALICIA + - TEMPORARIA_PRAZO_FIXO + - TEMPORARIA_INTERMITENTE + - NA + example: VITALICIA + pmbacRemuneration: + $ref: '#/components/schemas/InsurancePensionEnumPmbacRemuneration' + benefitRecalculation: + $ref: '#/components/schemas/BenefitRecalculation' + ageAdjustment: + $ref: '#/components/schemas/AgeAdjustment' + financialRegimes: + type: array + items: + $ref: '#/components/schemas/InsurancePensionEnumFinancialRegime' + reclaim: + $ref: '#/components/schemas/PersonalInsuranceReclaim' + otherGuaranteedValues: + type: array + items: + $ref: '#/components/schemas/EnumPersonalInsuranceOtherGuaranteedValues' + allowPortability: + type: boolean + description: | + 1. true + 2. false + portabilityGraceTime: + $ref: '#/components/schemas/PersonalInsurancePortabilityGraceTime' + indemnityPaymentMethods: + type: array + items: + $ref: '#/components/schemas/EnumPersonalInsuranceIndemnityPaymentMethod' + indemnityPaymentIncomes: + type: array + items: + $ref: '#/components/schemas/EnumPersonalInsuranceIndemnityPaymentIncome' + premiumPayment: + $ref: '#/components/schemas/PersonalInsurancePremiumPayment' + minimumRequirement: + $ref: '#/components/schemas/PersonalInsuranceMinimumRequirement' + targetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. Ambas (Pessoa Natural e Jurídica) + 4. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - PESSOA_NATURAL_JURIDICA + - NA + example: PESSOA_NATURAL + additionalProperties: false + PersonalCoverageItem: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/EnumInsurancePersonalCoverageTypePersonal' + typeAdditionalInfos: + type: array + description: | + Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'. + Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS' + items: + type: string + maxLength: 100 + example: + - Detalhar os serviços + - benefícios + - outros + attributes: + $ref: '#/components/schemas/PersonalCoverageItemAttributes' + additionalProperties: false + PersonalCoverageItemAttributes: + type: object + required: + - indemnityPaymentMethods + - indemnityPaymentFrequencies + - minValue + - maxValue + - indemnifiablePeriods + - maximumQtyIndemnifiableInstallments + - gracePeriod + - deductibleDays + - deductible + - excludedRisks + properties: + indemnityPaymentMethods: + description: Listagem da forma de pagamento da indenização para cada combinação de modalidade/cobertura do produto. + type: array + items: + type: string + enum: + - PAGAMENTO_CAPITAL_SEGURADO_VALOR_MONETARIO + - REEMBOLSO_DESPESAS + - PRESTACAO_SERVICOS + - NA + maxLength: 42 + indemnityPaymentFrequencies: + description: Listagem de tipos de frequência de pagamento de indenização para cada combinação de modalidade/cobertura do produto. + type: array + items: + $ref: '#/components/schemas/EnumPersonalIndemnityPaymentFrequencyType' + minValue: + $ref: '#/components/schemas/InsurancePensionMinValue' + maxValue: + $ref: '#/components/schemas/InsurancePensionMaxValue' + indemnifiablePeriods: + description: Listagem de período indenizável para cada combinação de modalidade/cobertura do produto. + type: array + items: + type: string + maxLength: 50 + example: ATE_FIM_CICLO_DETERMINADO + maximumQtyIndemnifiableInstallments: + type: integer + description: 'Caso o período indenizável seja relacionado a parcelas, listagem de número máximo de parcelas indenizáveis para cada combinação de modalidade/ cobertura do produto.' + maxLength: 10 + example: 10 + gracePeriod: + $ref: '#/components/schemas/PersonalInsuranceGracePeriod' + differentiatedGracePeriod: + type: string + description: 'Campo aberto para detalhamento de período de carência diferenciado, se houver.' + maxLength: 500 + pattern: '[\w\W\s]*' + example: 90 DIAS + deductibleDays: + type: integer + description: Listagem de franquia em dias para cada combinação de modalidade/cobertura do produto. + maxLength: 10 + example: 10 + differentiatedDeductibleDays: + type: integer + description: 'Detalhamento da franquia em dias diferentes para cada cobertura que exista alguma especificidade. Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.' + maxLength: 10 + example: 15 + deductible: + type: object + required: + - amount + - currency + description: Listagem de franquia em reais para cada combinação de modalidade/cobertura do produto. + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + differentiatedDeductible: + type: object + required: + - amount + - currency + description: 'Detalhamento da franquia em reais diferentes para cada cobertura que exista alguma especificidade.
Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + excludedRisks: + type: array + items: + $ref: '#/components/schemas/EnumExcludedRisks' + excludedRisksURL: + type: string + description: Campo aberto (possibilidade de incluir URL) + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + allowApartPurchase: + type: boolean + description: | + Indicar se a cobertura pode ser contratada isoladamente ou não: + 1. true + 2. false + additionalProperties: false + EnumPersonalIndemnityPaymentFrequencyType: + type: string + description: '' + maxLength: 17 + enum: + - INDENIZACAO_UNICA + - DIARIA_OU_PARCELA + - NA + example: INDENIZACAO_UNICA + EnumExcludedRisks: + type: string + description: Listagem para indicar quais serão o(s) risco(s) excluído(s) aplicável(is) à(s) cobertura(s). + maxLength: 40 + enum: + - ATO_RECONHECIMENTO_PERIGOSO + - ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO + - OPERACOES_GUERRA + - FURACOES_CICLONES_TERREMOTOS + - MATERIAL_NUCLEAR + - DOENCAS_LESOES_PREEXISTENTES + - EPIDEMIAS_PANDEMIAS + - SUICIDIO + - ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR + - OUTROS + - NA + example: ATO_RECONHECIMENTO_PERIGOSO + EnumPersonalInsuranceOtherGuaranteedValues: + type: string + description: | + 1. Saldamento + 2. Benefício Prolongado + 3. Não se aplica + 4. NA + maxLength: 20 + enum: + - SALDAMENTO + - BENEFICIO_PROLONGADO + - NAO_APLICA + - NA + example: SALDAMENTO + EnumPersonalInsuranceIndemnityPaymentMethod: + type: string + description: | + Modalidade de pagamento da indenização, a considerar os domínios abaixo: + 1. Único + 2. Sob a forma de renda + 3. NA + maxLength: 18 + enum: + - UNICO + - SOB_FORMA_RENDA + - NA + example: UNICO + EnumPersonalInsuranceIndemnityPaymentIncome: + type: string + description: | + Tipo de renda ou pensão, caso modalidade de pagamento de indenização seja sob a forma de renda: + 1. Certa + 2. Temporária + 3. Temporária reversível + 4. Temporário com mínimo garantido + 5. Temporária reversível com mínimo garantido + 6. Vitalícia + 7. Vitalícia reversível + 8. Vitalícia com o mínimo garantido + 9. Vitalícia reversível como mínimo garantido + 10. NA + maxLength: 38 + enum: + - CERTA + - TEMPORARIA + - TEMPORARIA_REVERSIVEL + - TEMPORARIO_MINIMO_GARANTIDO + - TEMPORARIA_REVERSIVEL_MINIMO_GARANTIDO + - VITALICIA + - VITALICIA_REVERSIVEL + - VITALICIA_MINIMO_GARANTIDO + - VITALICIA_REVERSIVEL_MINIMO_GARANTIDO + - NA + example: CERTA + PersonalInsurancePremiumPayment: + type: object + required: + - paymentMethods + - frequencies + properties: + paymentMethods: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/EnumPremiumPaymentMethodTypePersonal' + frequencies: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/EnumPersonalInsurancePremiumPaymentFrequency' + contributionTax: + type: string + description: 'Distribuição de frequência relativa aos valores referentes às taxas cobradas, nos termos do Anexo III.' + maxLength: 500 + additionalProperties: false + EnumPersonalInsurancePremiumPaymentFrequency: + type: string + description: | + Periodicidade de pagamento do prêmio: + 1. Diária + 2. Mensal + 3. Única + 4. Anual + 5. Trimestral + 6. Semestral + 7. Fracionado + 8. Outra + 9. NA + maxLength: 10 + enum: + - DIARIA + - MENSAL + - UNICA + - ANUAL + - TRIMESTRAL + - SEMESTRAL + - FRACIONADO + - OUTRA + - NA + example: DIARIA + PersonalInsuranceMinimumRequirement: + type: object + required: + - contractType + - contractingMinRequirement + properties: + contractType: + $ref: '#/components/schemas/EnumContractTypePersonal' + contractingMinRequirement: + type: string + description: Campo aberto (possibilidade de incluir URL) + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + PersonalInsuranceGracePeriod: + type: object + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + details: + type: string + maxLength: 500 + pattern: '[\w\W\s]*' + example: Descrições adicionais do período de carência + additionalProperties: false + PersonalInsuranceReclaim: + type: object + required: + - gracePeriod + properties: + table: + type: array + items: + $ref: '#/components/schemas/PersonalInsuranceReclaimTableItem' + minItems: 1 + gracePeriod: + $ref: '#/components/schemas/GracePeriod' + differenciatedPercentage: + description: Campo aberto (possibilidade de incluir URL) + example: | + https://openinsurance.com.br/aaa’ + Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL + Exemplo: Cobertura X: a partir de 25 meses = 100% + maxLength: 1024 + additionalProperties: false + PersonalInsuranceReclaimTableItem: + type: object + required: + - initialMonthRange + - finalMonthRange + - percentage + properties: + initialMonthRange: + type: integer + maxLength: 2 + example: 1 + finalMonthRange: + type: integer + maxLength: 2 + example: 12 + percentage: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual de faixa de resgate. + example: '0.019800' + additionalProperties: false + EnumInsurancePersonalCoverageTypePersonal: + type: string + description: 'É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura ' + maxLength: 62 + enum: + - ADIANTAMENTO_DOENCA_ESTAGIO_TERMINAL + - AUXILIO_CESTA_BASICA + - AUXILIO_FINANCEIRO_IMEDIATO + - CANCELAMENTO_VIAGEM + - CIRURGIA + - COBERTURA_HERNIA + - COBERTURA_LER_DORT + - CUIDADOS_PROLONGADOS_ACIDENTE + - DESEMPREGO_PERDA_RENDA + - DESPESAS_EXTRA_INVALIDEZ_PERMANENTE_TOTAL_PARCIAL_ACIDENTE_DEI + - DESPESAS_EXTRA_MORTE_DEM + - DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS + - DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS_BRASIL + - DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS_EXTERIOR + - DIARIA_INCAPACIDADE_TOTAL_TEMPORARIA + - DIARIA_INTERNACAO_HOSPITALAR + - INTERNACAO_HOSPITALAR + - DIARIAS_INCAPACIDADE_PECUNIARIA_DIP + - DOENCA_CONGENITA_FILHOS_DCF + - FRATURA_OSSEA + - DOENCAS_TROPICAIS + - INCAPACIDADE_TOTAL_OU_TEMPORARIA + - INVALIDEZ_PERMANENTE_TOTAL_PARCIAL + - INVALIDEZ_TOTAL_ACIDENTE + - INVALIDEZ_PARCIAL_ACIDENTE + - INVALIDEZ_FUNCIONAL_PERMANENTE_DOENCA + - INVALIDEZ_LABORATIVA_DOENCA + - MORTE + - MORTE_ACIDENTAL + - MORTE_CONJUGE + - MORTE_FILHOS + - MORTE_ADIATAMENTO_DOENCA_ESTAGIO_TERMINAL + - PAGAMENTO_ANTECIPADO_ESPECIAL_DOENCA_PROFISSIONAL_PAED + - PERDA_AUTONOMIA_PESSOAL + - PERDA_INVOLUNTARIA_EMPREGO + - QUEIMADURA_GRAVE + - REGRESSO_ANTECIPADO_SANITARIO + - RENDA_INCAPACIDADE_TEMPORARIA + - RESCISAO_CONTRATUAL_CASO_MORTE_RCM + - RESCISAO_TRABALHISTA + - SERVICO_AUXILIO_FUNERAL + - SOBREVIVENCIA + - TRANSPLANTE_ORGAOS + - TRASLADO + - TRANSLADO_CORPO + - VERBA_RESCISORIA + - DOENCA_GRAVE + - TRANSLADO_MEDICO + - OUTROS + - NA + example: INVALIDEZ_PERMANENTE_TOTAL_PARCIAL + EnumPremiumPaymentMethodTypePersonal: + type: string + description: | + Meio de pagamento escolhido pelo segurado. A considerar os domínios abaixo: + 1. Cartão de Crédito + 2. Cartão de Débito + 3. Débito em conta corrente + 4. Débito em conta poupança + 5. Boleto bancário + 6. PIX + 7. Consignação em Folha de Pagamento + 8. Pontos de Programa de Benefício + 9. Regra de Parceiro + 10. NA + maxLength: 27 + enum: + - CARTAO_CREDITO + - CARTAO_DEBITO + - DEBITO_CONTA_CORRENTE + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - REGRA_PARCEIRO + - NA + example: CARTAO_CREDITO + EnumContractTypePersonal: + type: string + description: | + A considerar os domínios abaixo: + 1. Coletivo; + 2. Individual + 3. NA + maxLength: 10 + enum: + - COLETIVO + - INDIVIDUAL + - NA + example: COLETIVO + PersonalInsuranceSociety: + type: object + description: Conjunto de informações relativas à seguradora do produto de open insurance + required: + - name + - cnpjNumber + - brand + properties: + name: + type: string + description: Nome da Sociedade Seguradora. + maxLength: 80 + example: Society A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + brand: + type: string + description: 'Nome da marca reportada pela sociedade seguradora participante do Open Finance. O conceito a que se refere a marca é em essência uma promessa das sociedades sob ela em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Marca + additionalProperties: false + PersonalInsurancePortabilityGraceTime: + type: object + required: + - amount + - unit + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + additionalProperties: false + BenefitRecalculation: + type: object + required: + - criterias + properties: + criterias: + type: array + items: + type: string + enum: + - INDICE + - VINCULADO_SALDO_DEVEDOR + - VARIAVEL_ACORDO_CRITERIO_ESPECIFICO + - NA + updateIndexes: + type: array + items: + $ref: '#/components/schemas/EnumInsurancePersonalBenefitRecalculationUpdateIndex' + additionalProperties: false + 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@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + Meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + 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 + additionalProperties: false + meta: + $ref: '#/components/schemas/Meta' + additionalProperties: false + parameters: + page: + name: page + in: query + description: Número da página que está sendo requisitada (o valor da primeira página é 1). + schema: + type: integer + 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 + responses: + OKResponsePersonalInsuranceList: + description: Dados de seguro(s) pessoais obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponsePersonalInsuranceList' + BadRequest: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' diff --git a/swagger-apis/insurances/index.html b/swagger-apis/insurances/index.html index 2b7cf310a..f9b97cb8e 100644 --- a/swagger-apis/insurances/index.html +++ b/swagger-apis/insurances/index.html @@ -46,8 +46,10 @@ // Begin Swagger UI call region const ui = SwaggerUIBundle({ urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, - {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}], - "urls.primaryName": "1.0.0-rc2.0", // default spec + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/pension/1.0.0-rc3.0.yml b/swagger-apis/pension/1.0.0-rc3.0.yml new file mode 100644 index 000000000..879c8e494 --- /dev/null +++ b/swagger-apis/pension/1.0.0-rc3.0.yml @@ -0,0 +1,1567 @@ +openapi: 3.0.0 +info: + title: API Pension - Open Finance Brasil + description: | + API de Previdência do Open Finance Brasil – Fase 4. + API que retorna informações de Previdência. + version: 1.0.0-rc3.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/opendata-pension/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/opendata-pension/v1' + description: Servidor de Homologação +tags: + - name: Risk Coverages + description: Operações relacionadas à Previdência com Coberturas de Risco. + - name: Survival Coverages + description: Operações relacionadas à Previdência com Coberturas de Sobrevivência. +paths: + /risk-coverages: + get: + tags: + - Risk Coverages + summary: Informações de Previdência com Cobertura de Riscos. + operationId: getPensionRiskCoverages + description: Método para obter informações de Previdência de Cobertura de Riscos. + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponseRiskCoveragePension' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + /survival-coverages: + get: + tags: + - Survival Coverages + summary: Informações de Previdência com Cobertura de Sobrevivência. + operationId: getPensionSurvivalCoverages + description: Método para obter informações de Previdência de Cobertura de Sobrevivência. + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponseSurvivorCoveragePension' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' +components: + schemas: + OKResponseRiskCoveragePension: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/GetRiskPensionContractData' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + GetRiskPensionContractData: + type: object + required: + - participant + - society + - name + - code + - modality + - coverages + - termsAndConditions + - premiumUpdateIndex + - otherGuaranteedValues + - contributionPayment + - minimumRequirement + - targetAudience + properties: + participant: + $ref: '#/components/schemas/PensionParticipant' + society: + $ref: '#/components/schemas/PensionSociety' + name: + type: string + maxLength: 80 + description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.' + example: Produto A + code: + type: string + maxLength: 80 + description: Código único a ser definido pela sociedade. + example: '0001' + modality: + $ref: '#/components/schemas/EnumProductModality' + coverages: + type: array + items: + $ref: '#/components/schemas/Coverage' + assistanceTypes: + type: array + items: + $ref: '#/components/schemas/EnumAssistanceType' + example: + - PET + - FUNERAL + assistanceTypesAdditionalInfos: + type: array + items: + type: string + description: Lista a ser preenchida pelas participantes quando houver 'Outros' no campo 'Tipo de Assistência'. + example: + - Assistance additional info. + additional: + $ref: '#/components/schemas/EnumAdditional' + termsAndConditions: + type: array + items: + $ref: '#/components/schemas/TermsAndConditions' + minItems: 1 + pmbacRemuneration: + $ref: '#/components/schemas/RiskPensionEnumPmbacRemuneration' + premiumUpdateIndex: + $ref: '#/components/schemas/RiskPensionEnumPremiumUpdateIndex' + ageAdjustment: + $ref: '#/components/schemas/AgeAdjustment' + financialRegimeContractType: + $ref: '#/components/schemas/RiskPensionEnumFinancialRegime' + reclaim: + $ref: '#/components/schemas/RiskPensionReclaim' + otherGuaranteedValues: + $ref: '#/components/schemas/RiskPensionEnumOtherGuaranteedValues' + contributionPayment: + $ref: '#/components/schemas/RiskPensionEnumContributionPayment' + minimumRequirement: + $ref: '#/components/schemas/RiskPensionMinimumRequirement' + targetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. Ambas (Pessoa Natural e Jurídica) + 4. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - PESSOA_NATURAL_JURIDICA + - NA + example: PESSOA_NATURAL + additionalProperties: false + OKResponseSurvivalCoveragePension: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/GetSurvivalPensionContractData' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + GetSurvivalPensionContractData: + type: object + required: + - participant + - name + - code + - segment + - modality + - defferalPeriod + - grantPeriodBenefit + - costs + - targetAudience + properties: + participant: + $ref: '#/components/schemas/PensionParticipant' + society: + $ref: '#/components/schemas/PensionSociety' + name: + type: string + maxLength: 80 + description: | + Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade. + example: Produto A + code: + type: string + maxLength: 80 + description: | + Código único a ser definido pela sociedade. + example: '0001' + segment: + type: string + description: | + Segmento do qual se trata o produto contratado + 1. Seguro de Pessoas + 2. Previdência + 3. NA + maxLength: 20 + enum: + - SEGURO_PESSOAS + - PREVIDENCIA + - NA + example: PREVIDENCIA + modality: + type: string + description: | + 1. Contribuição Variável; + 2. Benefício Definido. + 3. NA + maxLength: 21 + enum: + - CONTRIBUICAO_VARIAVEL + - BENEFICIO_DEFINIDO + - NA + example: BENEFICIO_DEFINIDO + additionalInfo: + type: string + description: Campo aberto (possibilidade de incluir URL) + example: 'https://openinsurance.com.br/aaa' + maxLength: 1024 + termsAndConditions: + type: array + items: + $ref: '#/components/schemas/TermsAndConditions' + minItems: 1 + type: + $ref: '#/components/schemas/SurvivalPensionType' + defferalPeriod: + $ref: '#/components/schemas/SurvivalPensionDefferalPeriod' + grantPeriodBenefit: + $ref: '#/components/schemas/SurvivalPensionGrantPeriodBenefit' + costs: + $ref: '#/components/schemas/SurvivalPensionCosts' + minimumRequirement: + $ref: '#/components/schemas/SurvivalPensionMinimumRequirements' + targetAudience: + $ref: '#/components/schemas/SurvivalPensionEnumTargetAudience' + additionalProperties: false + SurvivalPensionInvestmentFund: + type: object + description: Fundos de Investimento (por fundo). + required: + - cnpjNumber + - name + - maximumAdministrationFee + - typePerformanceFee + properties: + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + name: + type: string + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Nome Fantasia + maxLength: 80 + example: EMPRESAAPREV + maximumAdministrationFee: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Taxa Máxima de Administração - em % + example: '0.019800' + maxLength: 9 + minLength: 8 + typePerformanceFee: + type: string + enum: + - DIRETAMENTE + - INDIRETAMENTE + - NAO_APLICA + - NA + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Tipo de taxa de performance + example: DIRETAMENTE + maxLength: 13 + maximumPerformanceFee: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Taxa Máxima de Performance - em % + maxLength: 9 + minLength: 8 + example: '0.019800' + eligibilityRule: + type: boolean + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Regra de Elegibilidade + example: true + minimumContributionAmount: + type: string + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Valor Mínimo de Contribuição + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '1000.00' + maxLength: 21 + minimumMathematicalProvisionAmount: + type: string + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Valor Mínimo do Saldo Provisão matemática + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '1000.00' + maxLength: 21 + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + SurvivalPensionMinimumRequirements: + type: object + required: + - contractType + - contractingMinRequirement + properties: + contractType: + type: string + maxLength: 27 + enum: + - COLETIVO_AVERBADO + - COLETIVO_INSTITUIDO + - INDIVIDUAL + - NA + description: | + O tipo de serviço contratado. A considerar os domínios abaixo: + 1. Coletivo Averbado; + 2. Coletivo instituído; + 3. Individual. + 4. NA + example: COLETIVO_AVERBADO + participantQualified: + type: boolean + description: | + Indicação se o plano é destinado para participante qualificado. A considerar os domínios abaixo: + 1. true + 2. false + example: true + contractingMinRequirement: + type: string + maxLength: 1024 + description: Campo aberto (possibilidade de incluir URL) + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + CnpjNumber: + type: string + description: '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.' + pattern: '^(\d{14})$|^(NA)$' + example: '13456789000112' + SurvivalPensionDefferalPeriod: + type: object + description: Período de Diferimento + required: + - interestRate + - updateIndex + - otherMinimumPerformanceGarantees + - reversalFinancialResults + - redemptionPaymentTerm + - portabilityPaymentTerm + properties: + interestRate: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros mensal garantida que remunera o plano durante a fase de diferimento/acumulação. + example: '0.019800' + updateIndex: + $ref: '#/components/schemas/UpdateIndex' + otherMinimumPerformanceGarantees: + type: string + description: 'Para produtos do tipo PDR e VDR, indicação do índice de ampla divulgação utilizados como garantia mínima de desempenho.' + example: SELIC + maxLength: 12 + reversalFinancialResults: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Percentual de reversão de excedente financeiro na concessão. Em %. + example: '0.019800' + minimumPremiums: + type: array + items: + $ref: '#/components/schemas/SurvivalPensionMinimumPremium' + premiumPaymentMethods: + type: array + items: + type: string + maxLength: 27 + enum: + - CARTAO_CREDITO + - DEBITO_CONTA + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - CARTAO_DEBITO + - REGRA_PARCEIRO + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - TED_DOC + - OUTROS + - NA + example: CARTAO_CREDITO + permissionExtraordinaryContributions: + description: | + Se ficam permitidos aportes extraordinários. A considerar os seguintes domínios: + 1. true + 2. false + type: boolean + example: true + permissionScheduledFinancialPayments: + description: | + Se ficam permitidos pagamentos financeiros programados. A considerar os seguintes domínios: + 1. true + 2. false + type: boolean + example: true + gracePeriod: + $ref: '#/components/schemas/SurvivalPensionGracePeriod' + redemptionPaymentTerm: + type: integer + description: Prazo em dias para pagamento do resgate + maximum: 9999 + example: 10 + portabilityPaymentTerm: + type: number + description: Prazo em dias para pagamento da portabilidade (entre empresas diferentes). + example: 20 + maximum: 9999 + investmentFunds: + type: array + items: + $ref: '#/components/schemas/SurvivalPensionInvestmentFund' + additionalProperties: false + SurvivalPensionType: + type: string + description: | + 1. PGBL + 2. PRGP + 3. PAGP + 4. PRSA + 5. PRI + 6. PDR + 7. VGBL + 8. VRGP + 9. VAGP + 10. VRSA + 11. VRI + 12. VDR + 13. Demais produtos de Previdência. + 14. NA + maxLength: 27 + enum: + - PGBL + - PRGP + - PAGP + - PRSA + - PRI + - PDR + - VGBL + - VRGP + - VAGP + - VRSA + - VRI + - VDR + - DEMAIS_PRODUTOS_PREVIDENCIA + - NA + SurvivalPensionGracePeriod: + type: object + description: Prazo de carência + required: + - redemption + - betweenRedemptionRequests + - portability + - betweenPortabilityRequests + properties: + redemption: + type: number + description: | + Prazo em dias de carência para resgate Para Coletivos: Valor máximo da carência. + example: 100 + maximum: 9999 + betweenRedemptionRequests: + type: number + description: | + Prazo em dias de carência entre pedidos de resgate Para Coletivos: Valor máximo da carência + example: 30 + maximum: 9999 + portability: + type: number + description: Prazo em dias de carência para portabilidade (entre empresas diferentes). + example: 12 + maximum: 9999 + betweenPortabilityRequests: + type: number + description: Prazo em dias de carência entre pedidos de portabilidade (entre empresas diferentes). + example: 15 + maximum: 9999 + additionalProperties: false + SurvivalPensionCosts: + type: object + description: Custos + required: + - loadingAntecipated + - loadingLate + properties: + loadingAntecipated: + $ref: '#/components/schemas/SurvivalPensionLoadingAntecipated' + loadingLate: + $ref: '#/components/schemas/SurvivalPensionLoadingLate' + additionalProperties: false + SurvivalPensionLoadingAntecipated: + type: object + description: Carregamento antecipado. + required: + - minValue + - maxValue + properties: + minValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual mínimo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %. + example: '0.019800' + maxValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual máximo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %. + example: '0.019800' + additionalProperties: false + SurvivalPensionLoadingLate: + type: object + description: Carregamento postecipado. + required: + - minValue + - maxValue + properties: + minValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual mínimo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade. + example: '0.019800' + maxValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual máximo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade. + example: '0.019800' + additionalProperties: false + SurvivalPensionMinimumPremium: + type: object + description: Valor mínimo de prêmio/contribuição + properties: + currency: + $ref: '#/components/schemas/CurrencyCode' + periodicity: + type: string + maxLength: 10 + example: MENSAL + enum: + - DIARIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - UNICO + - NA + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + description: Valor mínimo em R$ de prêmio/ contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único). + example: '250.00' + additionalProperties: false + SurvivalPensionGrantPeriodBenefit: + type: object + description: Período de concessão do benefício + required: + - incomeModalities + - interestRate + - updateIndex + - reversalFinancialResults + properties: + incomeModalities: + type: array + minItems: 1 + items: + type: string + description: | + Modalidades de renda disponíveis para contratação. + A considerar os seguintes domínios: + 1. Pagamento Único + 2. Renda por Prazo Certo; + 3. Renda Temporária; + 4. Renda Temporária Reversível; + 5. Renda Temporária com mínimo garantido; + 6. Renda Temporária Reversível com Mínimo Garantido; + 7. Renda Vitalícia; + 8. Renda Vitalícia Reversível ao Beneficiário Indicado + 9. Renda Vitalícia Reversível ao Cônjuge com Continuidade de Menores + 10. Renda Vitalícia com o Mínimo Garantido; + 11. Renda Vitalícia com Prazo mínimo garantido. + 12. NA + enum: + - PAGAMENTO_UNICO + - RENDA_PRAZO_CERTO + - RENDA_TEMPORARIA + - RENDA_TEMPORARIA_REVERSIVEL + - RENDA_TEMPORARIA_MINMO_GARANTIDO + - RENDA_TEMPORARIA_REVERSIVEL_MININO_GARANTIDO + - RENDA_VITALICIA + - RENDA_VITALICIA_REVERSIVEL_BENEFICIARIO_INDICADO + - RENDA_VITALICIA_CONJUGE_CONTINUIDADE_MENORES + - RENDA_VITALICIA_MINIMO_GARANTIDO + - RENDA_VITALICIA_PRAZO_MINIMO_GRANTIDO + - NA + example: PAGAMENTO_UNICO + biometricTable: + type: array + minItems: 0 + items: + type: string + maxLength: 32 + description: | + Tábua biométrica utilizada como parâmetro para conversão em renda atuarial que deve observar a relação discriminada de coberturas, conforme Tabela II.2 do Anexo II. + Deverá ser informada a tábua biométrica aplicável à modalidade de renda padrão do plano. + enum: + - AT_2000_MALE + - AT_2000_FEMALE + - AT_2000_MALE_FEMALE + - AT_2000_MALE_SUAVIZADA_10 + - AT_2000_FEMALE_SUAVIZADA_10 + - AT_2000_MALE_FEMALE_SUAVIZADA_10 + - AT_2000_MALE_SUAVIZADA_15 + - AT_2000_FEMALE_SUAVIZADA_15 + - AT_2000_MALE_FEMALE_SUAVIZADA_15 + - AT_83_MALE + - AT_83_FEMALE + - AT_83_MALE_FEMALE + - BR_EMSSB_MALE + - BR_EMSSB_FEMALE + - BR_EMSSB_MALE_FEMALE + - NA + example: AT_2000_MALE + interestRate: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros garantida utilizada para conversão em renda. Em % + example: '0.019800' + updateIndex: + $ref: '#/components/schemas/UpdateIndex' + reversalFinancialResults: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Percentual de reversão de excedente financeiro na concessão. Em %. + example: '0.019800' + investmentFunds: + type: array + items: + $ref: '#/components/schemas/SurvivalPensionInvestmentFund' + additionalProperties: false + 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@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + PensionParticipant: + type: object + description: Conjunto de informações relativas ao participante do produto de Open Finance + required: + - brand + - name + - cnpjNumber + properties: + brand: + type: string + description: 'Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Organização + name: + type: string + description: Nome do participante do Open Finance. + maxLength: 80 + example: Organização A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + urlComplementaryList: + description: | + Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: + + - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; + + - ‘cnpjNumber’ com o valor contido no campo CNPJ (‘RegistrationNumber’) correspondente a esta instituição; + + - Ambos do tipo string; + + - Ambos obrigatórios. + type: string + maxLength: 1024 + pattern: '^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))|(NA)$' + example: 'https://empresaa1.com/companies' + additionalProperties: false + PensionSociety: + type: object + description: Conjunto de informações relativas à seguradora do produto de open insurance + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome da Sociedade Seguradora. + maxLength: 80 + example: Society A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + additionalProperties: false + RiskPensionEnumIndemnifiablePeriodType: + type: string + description: | + Listagem do pagamento para cada benefício: + 1. Quantidade determinada de parcelas; + 2. Até o fim de ciclo determinado; + 3. NA. + + Observação: Se for pagamento único, este campo não deve ser informado. + enum: + - QUANTIDADE_DETERMINADA_PARCELAS + - FIM_CICLO_DETERMINADO + - NA + example: QUANTIDADE_DETERMINADA_PARCELAS + SurvivalPensionEnumTargetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - NA + example: PESSOA_NATURAL + EnumProductModality: + type: string + description:
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
  18. NA
+ maxLength: 33 + enum: + - FUNERAL + - PRESTAMISTA + - VIAGEM + - EDUCACIONAL + - DOTAL + - ACIDENTES_PESSOAIS + - VIDA + - PERDA_CERTIFICADO_HABILITACAO_VOO + - DOENCAS_GRAVES_DOENCA_TERMINAL + - DESEMPREGO_PERDA_RENDA + - EVENTOS_ALEATORIOS + - PECULIO + - PENSAO_PRAZO_CERTO + - PENSAO_MENORES_21 + - PENSAO_MENORES_24 + - PENSAO_CONJUGE_VITALICIA + - PENSAO_CONJUGE_TEMPORARIA + - NA + example: FUNERAL + Coverage: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/EnumRiskPensionCoverageType' + typeAdditionalInfos: + type: array + description: | + Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'. + Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS' + items: + type: string + maxLength: 100 + example: + - Detalhar os serviços + - benefícios + - outros + attributes: + $ref: '#/components/schemas/CoverageAttributes' + additionalProperties: false + EnumRiskPensionCoverageType: + type: string + description: 'É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura.' + maxLength: 9 + enum: + - MORTE + - INVALIDEZ + - OUTROS + - NA + example: MORTE + CoverageAttributes: + type: object + description: Atributos da cobertura + required: + - minValue + - maxValue + - indemnifiableDeadline + - indemnityPaymentMethod + - gracePeriod + - excludedRisks + - excludedRisksURL + - profitModality + properties: + minValue: + $ref: '#/components/schemas/InsurancePensionMinValue' + maxValue: + $ref: '#/components/schemas/InsurancePensionMaxValue' + indemnifiablePeriod: + $ref: '#/components/schemas/RiskPensionEnumIndemnifiablePeriodType' + indemnifiableDeadline: + type: integer + description: Número máximo de parcelas indenizáveis. Caso seja relacionado a parcelas. + indemnityPaymentMethod: + $ref: '#/components/schemas/RiskPensionEnumIndemnityPaymentMethod' + gracePeriod: + type: object + description: Período de carência da cobertura + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + additionalProperties: false + excludedRisks: + type: array + items: + $ref: '#/components/schemas/EnumExcludedRisks' + excludedRisksURL: + type: string + maxLength: 1024 + description: Campo aberto (possibilidade de incluir URL). + example: 'https://openinsurance.com.br/aaa' + profitModality: + $ref: '#/components/schemas/RiskPensionEnumProfitModality' + additionalProperties: false + RiskPensionGracePeriod: + type: object + required: + - amount + - unit + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/RiskPensionEnumGracePeriodUnit' + additionalProperties: false + TermsAndConditions: + type: object + required: + - susepProcessNumber + - detail + properties: + susepProcessNumber: + type: string + description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.' + minLength: 2 + maxLength: 20 + pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$' + example: 15414.622222/2222-22 + detail: + type: string + description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)' + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + UpdateIndex: + type: string + maxLength: 5 + description: | + Índice utilizado na atualização do prêmio e do capital segurado, caso critério de atualização por meio de índice: + 1. IPCA (IBGE); + 2. IGP-M (FGV); + 3. INPC (IBGE). + 4. Não se aplica + 5. NA + enum: + - IPCA + - IGP_M + - INPC + - NAO_SE_APLICA + - NA + example: IPCA + RiskPensionReclaim: + type: object + required: + - gracePeriod + properties: + table: + type: array + items: + $ref: '#/components/schemas/RiskPensionReclaimTableItem' + minItems: 1 + gracePeriod: + $ref: '#/components/schemas/RiskPensionGracePeriod' + differenciatedPercentage: + description: Campo aberto (possibilidade de incluir URL) + example: | + https://openinsurance.com.br/aaa’ + Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL + Exemplo: Cobertura X: a partir de 25 meses = 100% + maxLength: 1024 + additionalProperties: false + InsurancePensionMinValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + InsurancePensionMaxValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + RiskPensionMinimumRequirement: + type: object + required: + - contractType + - contractingMinRequirement + properties: + contractType: + type: string + description: | + O tipo de serviço contratado. A considerar os domínios abaixo: + 1. Coletivo; + 2. Individual. + 3. NA + enum: + - COLETIVO + - INDIVIDUAL + - NA + example: COLETIVO + contractingMinRequirement: + type: string + description: Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL). + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + RiskPensionReclaimTableItem: + type: object + required: + - initialMonthRange + - finalMonthRange + - percentage + properties: + initialMonthRange: + type: integer + maxLength: 2 + example: 1 + finalMonthRange: + type: integer + maxLength: 2 + example: 12 + percentage: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual de faixa de resgate. + example: '0.019800' + additionalProperties: false + RiskPensionEnumPmbacRemuneration: + type: object + required: + - interestRate + properties: + interestRate: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros para capitalização da PMBaC + maxLength: 9 + minLength: 8 + example: '0.019800' + updateIndexes: + type: array + items: + type: string + description: | + Índice utilizado na atualização da PMBaC: + 1. IPCA (IBGE) + 2. IGP-M (FGV) + 3. INPC (IBGE) + 4. NA + enum: + - IPCA + - IGP_M + - INPC + - NA + example: IPCA + additionalProperties: false + AgeAdjustment: + type: object + required: + - criterias + - frequency + properties: + criterias: + type: array + items: + type: string + description: | + Critério escolhido para reenquadramento etário + 1. Após período em anos + 2. A cada período em anos + 3. Por mudança de faixa etária + 4. Não aplicável + 5. NA + maxLength: 27 + example: APOS_PERIODO_ANOS + enum: + - APOS_PERIODO_ANOS + - CADA_PERIODO_ANOS + - MUDANCA_FAIXA_ETARIA + - NAO_APLICAVEL + - NA + frequency: + type: integer + description: 'Período em anos, caso critério de reenquadramento após ou a cada período em anos.' + maxLength: 3 + example: 10 + additionalProperties: false + CurrencyCode: + type: string + pattern: '^([A-Z]{3})$|^(NA)$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + EnumExcludedRisks: + type: string + description: Listagem para indicar quais serão o(s) risco(s) excluído(s) aplicável(is) à(s) cobertura(s). + maxLength: 40 + enum: + - ATO_RECONHECIMENTO_PERIGOSO + - ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO + - OPERACOES_GUERRA + - FURACOES_CICLONES_TERREMOTOS + - MATERIAL_NUCLEAR + - DOENCAS_LESOES_PREEXISTENTES + - EPIDEMIAS_PANDEMIAS + - SUICIDIO + - ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR + - OUTROS + - NA + example: ATO_RECONHECIMENTO_PERIGOSO + EnumAssistanceType: + type: string + description: 'Lista padronizada de tipo de assistências ofertadas vinculadas ao produto. Por exemplo, Funeral, Bicicleta, Assistência PET – Tabela padrão a ser consolidada com retorno das empresas com a relação de assistências, permitindo um campo ‘Outros’ para assistências não contempladas na tabela padronizada.' + maxLength: 43 + enum: + - ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + - ARQUITETO_VIRTUAL + - ASSESSORIA_FINANCEIRA + - AUTOMOVEL + - AUXILIO_NATALIDADE + - AVALIACAO_CLINICA_PREVENTIVA + - BOLSA_PROTEGIDA + - CESTA_BASICA + - CHECKUP_ODONTOLOGICO + - CLUBE_VANTAGENS_BENEFICIOS + - CONVALESCENCIA + - DECESSO + - DESCONTO_FARMACIAS_MEDICAMENTOS + - DESPESAS_FARMACEUTICAS_VIAGEM + - DIGITAL + - EDUCACIONAL + - EMPRESARIAL + - ENCANADOR + - ENTRETENIMENTO + - EQUIPAMENTOS_MEDICOS + - FIANCAS_DESPESAS_LEGAIS + - FISIOTERAPIA + - FUNERAL + - HELP_LINE + - HOSPEDAGEM_ACOMPANHANTE + - INTERRUPCAO_VIAGEM + - INVENTARIO + - MAIS_VIDA + - MAMAE_BEBE + - MEDICA_ACIDENTE_DOENCA + - MOTOCICLETA + - MULHER + - NUTRICIONISTA + - ODONTOLOGICA + - ORIENTACAO_FITNESS + - ORIENTACAO_JURIDICA + - ORIENTACAO_NUTRICIONAL + - PERSONAL_FITNESS + - ORIENTACAO_PSICOSSOCIAL_FAMILIAR + - PERDA_ROUBO_CARTAO + - PET + - PRORROGACAO_ESTADIA + - PROTECAO_DADOS + - RECOLOCACAO_PROFISSIONAL + - REDE_DESCONTO_NUTRICIONAL + - RESIDENCIAL + - RETORNO_MENORES_SEGURADO + - SAQUE_COACAO + - SAUDE_BEM_ESTAR + - SEGUNDA_OPINIAO_MEDICA + - SENIOR + - SUSTENTAVEL_DESCARTE_ECOLOGICO + - TELEMEDICINA + - VIAGEM + - VITIMA + - OUTROS + - NA + example: ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + EnumAdditional: + type: string + enum: + - SORTEIO + - SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO + - SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO + - OUTROS + - NAO_HA + - NA + example: SORTEIO + EnumGracePeriodUnit: + type: string + description: Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
+ maxLength: 10 + enum: + - DIAS + - MESES + - NAO_APLICA + - NA + example: MESES + RiskPensionEnumGracePeriodUnit: + type: string + description: | + Informar o critério de carência para resgate: + 1. Dias; + 2. Meses; + 3. Não se aplica. + 4. NA + enum: + - DIAS + - MESES + - NAO_APLICA + - NA + example: MESES + RiskPensionEnumFinancialRegime: + type: string + description: | + Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto indicando: + 1. Repartição simples + 2. Repartição Capitais Cobertura + 3. Capitalização + 4. NA + example: REPARTICAO_SIMPLES + enum: + - REPARTICAO_SIMPLES + - REPARTICAO_CAPITAIS + - CAPITALIZACAO + - NA + RiskPensionEnumPremiumUpdateIndex: + type: string + description: Índice utilizado na atualização do prêmio/contribuição e do capital segurado/benefício + enum: + - IPCA + - IGPM + - INPC + - NA + example: IPCA + RiskPensionEnumContributionPayment: + type: object + description: Pagamento da contribuição. + required: + - contributionPaymentMethod + - contributionPeriodicity + properties: + contributionPaymentMethod: + type: string + example: CARTAO_CREDITO + description: | + Forma de pagamento da contribuição. + - CARTAO_CREDITO + - DEBITO_CONTA + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - TED_DOC + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - OUTROS + - NA + enum: + - CARTAO_CREDITO + - DEBITO_CONTA + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - TED_DOC + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - OUTROS + - NA + contributionPaymentMethodAdditionalInfo: + type: string + pattern: '[\w\W\s]*' + example: Informações adicionais + maxLength: 140 + description: | + Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod. + + [Restrição] Obrigatório quando 'contributionPaymentMethod' for igual 'OUTROS'. + contributionPeriodicity: + type: string + example: MENSAL + description: | + Periodicidade de pagamento da contribuição. + - MENSAL + - UNICA + - ANUAL + - TRIMESTRAL + - SEMESTRAL + - BIMESTRAL + - OUTROS + - NA + enum: + - MENSAL + - UNICA + - ANUAL + - TRIMESTRAL + - SEMESTRAL + - BIMESTRAL + - OUTROS + - NA + contributionPeriodicityAdditionalInfo: + type: string + pattern: '[\w\W\s]*' + example: Informações adicionais + maxLength: 140 + description: | + Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod. + + [Restrição] Obrigatório quando 'contributionPeriodicity' for igual 'OUTROS'. + additionalProperties: false + RiskPensionEnumIndemnityPaymentMethod: + type: string + description: | + Modalidade de pagamento da indenização, a considerar os domínios abaixo: + 1. Único + 2. Sob a forma de renda + 3. NA + enum: + - UNICO + - SOB_FORMA_RENDA + - NA + example: UNICO + RiskPensionEnumOtherGuaranteedValues: + type: string + description: | + 1. Saldamento + 2. Benefício Prolongado + 3. Não se aplica + 4. NA + enum: + - SALDAMENTO + - BENEFICIO_PROLONGADO + - NAO_APLICA + - NA + example: SALDAMENTO + RiskPensionEnumProfitModality: + type: string + description: | + Modalidade de pagamento da indenização. + enum: + - PAGAMENTO_UNICO + - FORMA_RENDA + - NA + example: PAGAMENTO_UNICO + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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" + OpenDataResponseError: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + parameters: + page: + name: page + in: query + description: Número da página que está sendo requisitada (o valor da primeira página é 1). + schema: + type: integer + 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 + responses: + OKResponseRiskCoveragePension: + description: Dados de previdência de risco obtidos com sucesso da instituição. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseRiskCoveragePension' + OKResponseSurvivorCoveragePension: + description: Dados de previdência de sobrevivência obtidos com sucesso da instituição. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseSurvivalCoveragePension' + 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/OpenDataResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/OpenDataResponseError' + 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/OpenDataResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/OpenDataResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/OpenDataResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' diff --git a/swagger-apis/pension/1.0.0.yml b/swagger-apis/pension/1.0.0.yml new file mode 100644 index 000000000..11cd05ce9 --- /dev/null +++ b/swagger-apis/pension/1.0.0.yml @@ -0,0 +1,1567 @@ +openapi: 3.0.0 +info: + title: API Pension - Open Finance Brasil + description: | + API de Previdência do Open Finance Brasil – Fase 4. + API que retorna informações de Previdência. + version: 1.0.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/opendata-pension/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/opendata-pension/v1' + description: Servidor de Homologação +tags: + - name: Risk Coverages + description: Operações relacionadas à Previdência com Coberturas de Risco. + - name: Survival Coverages + description: Operações relacionadas à Previdência com Coberturas de Sobrevivência. +paths: + /risk-coverages: + get: + tags: + - Risk Coverages + summary: Informações de Previdência com Cobertura de Riscos. + operationId: getPensionRiskCoverages + description: Método para obter informações de Previdência de Cobertura de Riscos. + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponseRiskCoveragePension' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + /survival-coverages: + get: + tags: + - Survival Coverages + summary: Informações de Previdência com Cobertura de Sobrevivência. + operationId: getPensionSurvivalCoverages + description: Método para obter informações de Previdência de Cobertura de Sobrevivência. + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + responses: + '200': + $ref: '#/components/responses/OKResponseSurvivorCoveragePension' + '400': + $ref: '#/components/responses/BadRequest' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '529': + $ref: '#/components/responses/SiteIsOverloaded' +components: + schemas: + OKResponseRiskCoveragePension: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/GetRiskPensionContractData' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + GetRiskPensionContractData: + type: object + required: + - participant + - society + - name + - code + - modality + - coverages + - termsAndConditions + - premiumUpdateIndex + - otherGuaranteedValues + - contributionPayment + - minimumRequirement + - targetAudience + properties: + participant: + $ref: '#/components/schemas/PensionParticipant' + society: + $ref: '#/components/schemas/PensionSociety' + name: + type: string + maxLength: 80 + description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.' + example: Produto A + code: + type: string + maxLength: 80 + description: Código único a ser definido pela sociedade. + example: '0001' + modality: + $ref: '#/components/schemas/EnumProductModality' + coverages: + type: array + items: + $ref: '#/components/schemas/Coverage' + assistanceTypes: + type: array + items: + $ref: '#/components/schemas/EnumAssistanceType' + example: + - PET + - FUNERAL + assistanceTypesAdditionalInfos: + type: array + items: + type: string + description: Lista a ser preenchida pelas participantes quando houver 'Outros' no campo 'Tipo de Assistência'. + example: + - Assistance additional info. + additional: + $ref: '#/components/schemas/EnumAdditional' + termsAndConditions: + type: array + items: + $ref: '#/components/schemas/TermsAndConditions' + minItems: 1 + pmbacRemuneration: + $ref: '#/components/schemas/RiskPensionEnumPmbacRemuneration' + premiumUpdateIndex: + $ref: '#/components/schemas/RiskPensionEnumPremiumUpdateIndex' + ageAdjustment: + $ref: '#/components/schemas/AgeAdjustment' + financialRegimeContractType: + $ref: '#/components/schemas/RiskPensionEnumFinancialRegime' + reclaim: + $ref: '#/components/schemas/RiskPensionReclaim' + otherGuaranteedValues: + $ref: '#/components/schemas/RiskPensionEnumOtherGuaranteedValues' + contributionPayment: + $ref: '#/components/schemas/RiskPensionEnumContributionPayment' + minimumRequirement: + $ref: '#/components/schemas/RiskPensionMinimumRequirement' + targetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. Ambas (Pessoa Natural e Jurídica) + 4. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - PESSOA_NATURAL_JURIDICA + - NA + example: PESSOA_NATURAL + additionalProperties: false + OKResponseSurvivalCoveragePension: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/GetSurvivalPensionContractData' + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + GetSurvivalPensionContractData: + type: object + required: + - participant + - name + - code + - segment + - modality + - defferalPeriod + - grantPeriodBenefit + - costs + - targetAudience + properties: + participant: + $ref: '#/components/schemas/PensionParticipant' + society: + $ref: '#/components/schemas/PensionSociety' + name: + type: string + maxLength: 80 + description: | + Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade. + example: Produto A + code: + type: string + maxLength: 80 + description: | + Código único a ser definido pela sociedade. + example: '0001' + segment: + type: string + description: | + Segmento do qual se trata o produto contratado + 1. Seguro de Pessoas + 2. Previdência + 3. NA + maxLength: 20 + enum: + - SEGURO_PESSOAS + - PREVIDENCIA + - NA + example: PREVIDENCIA + modality: + type: string + description: | + 1. Contribuição Variável; + 2. Benefício Definido. + 3. NA + maxLength: 21 + enum: + - CONTRIBUICAO_VARIAVEL + - BENEFICIO_DEFINIDO + - NA + example: BENEFICIO_DEFINIDO + additionalInfo: + type: string + description: Campo aberto (possibilidade de incluir URL) + example: 'https://openinsurance.com.br/aaa' + maxLength: 1024 + termsAndConditions: + type: array + items: + $ref: '#/components/schemas/TermsAndConditions' + minItems: 1 + type: + $ref: '#/components/schemas/SurvivalPensionType' + defferalPeriod: + $ref: '#/components/schemas/SurvivalPensionDefferalPeriod' + grantPeriodBenefit: + $ref: '#/components/schemas/SurvivalPensionGrantPeriodBenefit' + costs: + $ref: '#/components/schemas/SurvivalPensionCosts' + minimumRequirement: + $ref: '#/components/schemas/SurvivalPensionMinimumRequirements' + targetAudience: + $ref: '#/components/schemas/SurvivalPensionEnumTargetAudience' + additionalProperties: false + SurvivalPensionInvestmentFund: + type: object + description: Fundos de Investimento (por fundo). + required: + - cnpjNumber + - name + - maximumAdministrationFee + - typePerformanceFee + properties: + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + name: + type: string + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Nome Fantasia + maxLength: 80 + example: EMPRESAAPREV + maximumAdministrationFee: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Taxa Máxima de Administração - em % + example: '0.019800' + maxLength: 9 + minLength: 8 + typePerformanceFee: + type: string + enum: + - DIRETAMENTE + - INDIRETAMENTE + - NAO_APLICA + - NA + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Tipo de taxa de performance + example: DIRETAMENTE + maxLength: 13 + maximumPerformanceFee: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Taxa Máxima de Performance - em % + maxLength: 9 + minLength: 8 + example: '0.019800' + eligibilityRule: + type: boolean + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Regra de Elegibilidade + example: true + minimumContributionAmount: + type: string + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Valor Mínimo de Contribuição + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '1000.00' + maxLength: 21 + minimumMathematicalProvisionAmount: + type: string + description: | + Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: + - Valor Mínimo do Saldo Provisão matemática + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '1000.00' + maxLength: 21 + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + SurvivalPensionMinimumRequirements: + type: object + required: + - contractType + - contractingMinRequirement + properties: + contractType: + type: string + maxLength: 27 + enum: + - COLETIVO_AVERBADO + - COLETIVO_INSTITUIDO + - INDIVIDUAL + - NA + description: | + O tipo de serviço contratado. A considerar os domínios abaixo: + 1. Coletivo Averbado; + 2. Coletivo instituído; + 3. Individual. + 4. NA + example: COLETIVO_AVERBADO + participantQualified: + type: boolean + description: | + Indicação se o plano é destinado para participante qualificado. A considerar os domínios abaixo: + 1. true + 2. false + example: true + contractingMinRequirement: + type: string + maxLength: 1024 + description: Campo aberto (possibilidade de incluir URL) + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + CnpjNumber: + type: string + description: '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.' + pattern: '^(\d{14})$|^(NA)$' + example: '13456789000112' + SurvivalPensionDefferalPeriod: + type: object + description: Período de Diferimento + required: + - interestRate + - updateIndex + - otherMinimumPerformanceGarantees + - reversalFinancialResults + - redemptionPaymentTerm + - portabilityPaymentTerm + properties: + interestRate: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros mensal garantida que remunera o plano durante a fase de diferimento/acumulação. + example: '0.019800' + updateIndex: + $ref: '#/components/schemas/UpdateIndex' + otherMinimumPerformanceGarantees: + type: string + description: 'Para produtos do tipo PDR e VDR, indicação do índice de ampla divulgação utilizados como garantia mínima de desempenho.' + example: SELIC + maxLength: 12 + reversalFinancialResults: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Percentual de reversão de excedente financeiro na concessão. Em %. + example: '0.019800' + minimumPremiums: + type: array + items: + $ref: '#/components/schemas/SurvivalPensionMinimumPremium' + premiumPaymentMethods: + type: array + items: + type: string + maxLength: 27 + enum: + - CARTAO_CREDITO + - DEBITO_CONTA + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - CARTAO_DEBITO + - REGRA_PARCEIRO + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - TED_DOC + - OUTROS + - NA + example: CARTAO_CREDITO + permissionExtraordinaryContributions: + description: | + Se ficam permitidos aportes extraordinários. A considerar os seguintes domínios: + 1. true + 2. false + type: boolean + example: true + permissionScheduledFinancialPayments: + description: | + Se ficam permitidos pagamentos financeiros programados. A considerar os seguintes domínios: + 1. true + 2. false + type: boolean + example: true + gracePeriod: + $ref: '#/components/schemas/SurvivalPensionGracePeriod' + redemptionPaymentTerm: + type: integer + description: Prazo em dias para pagamento do resgate + maximum: 9999 + example: 10 + portabilityPaymentTerm: + type: number + description: Prazo em dias para pagamento da portabilidade (entre empresas diferentes). + example: 20 + maximum: 9999 + investmentFunds: + type: array + items: + $ref: '#/components/schemas/SurvivalPensionInvestmentFund' + additionalProperties: false + SurvivalPensionType: + type: string + description: | + 1. PGBL + 2. PRGP + 3. PAGP + 4. PRSA + 5. PRI + 6. PDR + 7. VGBL + 8. VRGP + 9. VAGP + 10. VRSA + 11. VRI + 12. VDR + 13. Demais produtos de Previdência. + 14. NA + maxLength: 27 + enum: + - PGBL + - PRGP + - PAGP + - PRSA + - PRI + - PDR + - VGBL + - VRGP + - VAGP + - VRSA + - VRI + - VDR + - DEMAIS_PRODUTOS_PREVIDENCIA + - NA + SurvivalPensionGracePeriod: + type: object + description: Prazo de carência + required: + - redemption + - betweenRedemptionRequests + - portability + - betweenPortabilityRequests + properties: + redemption: + type: number + description: | + Prazo em dias de carência para resgate Para Coletivos: Valor máximo da carência. + example: 100 + maximum: 9999 + betweenRedemptionRequests: + type: number + description: | + Prazo em dias de carência entre pedidos de resgate Para Coletivos: Valor máximo da carência + example: 30 + maximum: 9999 + portability: + type: number + description: Prazo em dias de carência para portabilidade (entre empresas diferentes). + example: 12 + maximum: 9999 + betweenPortabilityRequests: + type: number + description: Prazo em dias de carência entre pedidos de portabilidade (entre empresas diferentes). + example: 15 + maximum: 9999 + additionalProperties: false + SurvivalPensionCosts: + type: object + description: Custos + required: + - loadingAntecipated + - loadingLate + properties: + loadingAntecipated: + $ref: '#/components/schemas/SurvivalPensionLoadingAntecipated' + loadingLate: + $ref: '#/components/schemas/SurvivalPensionLoadingLate' + additionalProperties: false + SurvivalPensionLoadingAntecipated: + type: object + description: Carregamento antecipado. + required: + - minValue + - maxValue + properties: + minValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual mínimo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %. + example: '0.019800' + maxValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual máximo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %. + example: '0.019800' + additionalProperties: false + SurvivalPensionLoadingLate: + type: object + description: Carregamento postecipado. + required: + - minValue + - maxValue + properties: + minValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual mínimo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade. + example: '0.019800' + maxValue: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual máximo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade. + example: '0.019800' + additionalProperties: false + SurvivalPensionMinimumPremium: + type: object + description: Valor mínimo de prêmio/contribuição + properties: + currency: + $ref: '#/components/schemas/CurrencyCode' + periodicity: + type: string + maxLength: 10 + example: MENSAL + enum: + - DIARIO + - SEMANAL + - QUINZENAL + - MENSAL + - BIMESTRAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - UNICO + - NA + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + description: Valor mínimo em R$ de prêmio/ contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único). + example: '250.00' + additionalProperties: false + SurvivalPensionGrantPeriodBenefit: + type: object + description: Período de concessão do benefício + required: + - incomeModalities + - interestRate + - updateIndex + - reversalFinancialResults + properties: + incomeModalities: + type: array + minItems: 1 + items: + type: string + description: | + Modalidades de renda disponíveis para contratação. + A considerar os seguintes domínios: + 1. Pagamento Único + 2. Renda por Prazo Certo; + 3. Renda Temporária; + 4. Renda Temporária Reversível; + 5. Renda Temporária com mínimo garantido; + 6. Renda Temporária Reversível com Mínimo Garantido; + 7. Renda Vitalícia; + 8. Renda Vitalícia Reversível ao Beneficiário Indicado + 9. Renda Vitalícia Reversível ao Cônjuge com Continuidade de Menores + 10. Renda Vitalícia com o Mínimo Garantido; + 11. Renda Vitalícia com Prazo mínimo garantido. + 12. NA + enum: + - PAGAMENTO_UNICO + - RENDA_PRAZO_CERTO + - RENDA_TEMPORARIA + - RENDA_TEMPORARIA_REVERSIVEL + - RENDA_TEMPORARIA_MINMO_GARANTIDO + - RENDA_TEMPORARIA_REVERSIVEL_MININO_GARANTIDO + - RENDA_VITALICIA + - RENDA_VITALICIA_REVERSIVEL_BENEFICIARIO_INDICADO + - RENDA_VITALICIA_CONJUGE_CONTINUIDADE_MENORES + - RENDA_VITALICIA_MINIMO_GARANTIDO + - RENDA_VITALICIA_PRAZO_MINIMO_GRANTIDO + - NA + example: PAGAMENTO_UNICO + biometricTable: + type: array + minItems: 0 + items: + type: string + maxLength: 32 + description: | + Tábua biométrica utilizada como parâmetro para conversão em renda atuarial que deve observar a relação discriminada de coberturas, conforme Tabela II.2 do Anexo II. + Deverá ser informada a tábua biométrica aplicável à modalidade de renda padrão do plano. + enum: + - AT_2000_MALE + - AT_2000_FEMALE + - AT_2000_MALE_FEMALE + - AT_2000_MALE_SUAVIZADA_10 + - AT_2000_FEMALE_SUAVIZADA_10 + - AT_2000_MALE_FEMALE_SUAVIZADA_10 + - AT_2000_MALE_SUAVIZADA_15 + - AT_2000_FEMALE_SUAVIZADA_15 + - AT_2000_MALE_FEMALE_SUAVIZADA_15 + - AT_83_MALE + - AT_83_FEMALE + - AT_83_MALE_FEMALE + - BR_EMSSB_MALE + - BR_EMSSB_FEMALE + - BR_EMSSB_MALE_FEMALE + - NA + example: AT_2000_MALE + interestRate: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros garantida utilizada para conversão em renda. Em % + example: '0.019800' + updateIndex: + $ref: '#/components/schemas/UpdateIndex' + reversalFinancialResults: + type: string + maxLength: 9 + minLength: 8 + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Percentual de reversão de excedente financeiro na concessão. Em %. + example: '0.019800' + investmentFunds: + type: array + items: + $ref: '#/components/schemas/SurvivalPensionInvestmentFund' + additionalProperties: false + 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@:%_\+.~#?&\/\/=]*)$' + additionalProperties: false + PensionParticipant: + type: object + description: Conjunto de informações relativas ao participante do produto de Open Finance + required: + - brand + - name + - cnpjNumber + properties: + brand: + type: string + description: 'Nome da marca reportada pelo participante do Open Finance. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.' + maxLength: 80 + example: Organização + name: + type: string + description: Nome do participante do Open Finance. + maxLength: 80 + example: Organização A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + urlComplementaryList: + description: | + Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo: + + - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório; + + - ‘cnpjNumber’ com o valor contido no campo CNPJ (‘RegistrationNumber’) correspondente a esta instituição; + + - Ambos do tipo string; + + - Ambos obrigatórios. + type: string + maxLength: 1024 + pattern: '^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))|(NA)$' + example: 'https://empresaa1.com/companies' + additionalProperties: false + PensionSociety: + type: object + description: Conjunto de informações relativas à seguradora do produto de open insurance + required: + - name + - cnpjNumber + properties: + name: + type: string + description: Nome da Sociedade Seguradora. + maxLength: 80 + example: Society A1 + cnpjNumber: + $ref: '#/components/schemas/CnpjNumber' + additionalProperties: false + RiskPensionEnumIndemnifiablePeriodType: + type: string + description: | + Listagem do pagamento para cada benefício: + 1. Quantidade determinada de parcelas; + 2. Até o fim de ciclo determinado; + 3. NA. + + Observação: Se for pagamento único, este campo não deve ser informado. + enum: + - QUANTIDADE_DETERMINADA_PARCELAS + - FIM_CICLO_DETERMINADO + - NA + example: QUANTIDADE_DETERMINADA_PARCELAS + SurvivalPensionEnumTargetAudience: + type: string + description: | + A considerar os domínios abaixo: + + 1. Pessoa Natural + 2. Pessoa Jurídica + 3. NA + maxLength: 23 + enum: + - PESSOA_NATURAL + - PESSOA_JURIDICA + - NA + example: PESSOA_NATURAL + EnumProductModality: + type: string + description:
  1. Funeral
  2. Prestamista (exceto Habitacional e Rural)
  3. Viagem
  4. Educacional
  5. Dotal (Misto e Puro)
  6. Acidentes Pessoais
  7. Vida
  8. Perda do Certificado de Habilitação de Voo – PCHV
  9. Doenças Graves ou Doença Terminal
  10. Desemprego/ Perda de Renda
  11. Eventos Aleatórios
  12. Pecúlio
  13. Pensão prazo certo
  14. Pensão menores 21 anos
  15. Pensão menores 24 anos
  16. Pensão cônjuge vitalícia
  17. Pensão cônjuge temporária
  18. NA
+ maxLength: 33 + enum: + - FUNERAL + - PRESTAMISTA + - VIAGEM + - EDUCACIONAL + - DOTAL + - ACIDENTES_PESSOAIS + - VIDA + - PERDA_CERTIFICADO_HABILITACAO_VOO + - DOENCAS_GRAVES_DOENCA_TERMINAL + - DESEMPREGO_PERDA_RENDA + - EVENTOS_ALEATORIOS + - PECULIO + - PENSAO_PRAZO_CERTO + - PENSAO_MENORES_21 + - PENSAO_MENORES_24 + - PENSAO_CONJUGE_VITALICIA + - PENSAO_CONJUGE_TEMPORARIA + - NA + example: FUNERAL + Coverage: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/EnumRiskPensionCoverageType' + typeAdditionalInfos: + type: array + description: | + Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'. + Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS' + items: + type: string + maxLength: 100 + example: + - Detalhar os serviços + - benefícios + - outros + attributes: + $ref: '#/components/schemas/CoverageAttributes' + additionalProperties: false + EnumRiskPensionCoverageType: + type: string + description: 'É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura.' + maxLength: 9 + enum: + - MORTE + - INVALIDEZ + - OUTROS + - NA + example: MORTE + CoverageAttributes: + type: object + description: Atributos da cobertura + required: + - minValue + - maxValue + - indemnifiableDeadline + - indemnityPaymentMethod + - gracePeriod + - excludedRisks + - excludedRisksURL + - profitModality + properties: + minValue: + $ref: '#/components/schemas/InsurancePensionMinValue' + maxValue: + $ref: '#/components/schemas/InsurancePensionMaxValue' + indemnifiablePeriod: + $ref: '#/components/schemas/RiskPensionEnumIndemnifiablePeriodType' + indemnifiableDeadline: + type: integer + description: Número máximo de parcelas indenizáveis. Caso seja relacionado a parcelas. + indemnityPaymentMethod: + $ref: '#/components/schemas/RiskPensionEnumIndemnityPaymentMethod' + gracePeriod: + type: object + description: Período de carência da cobertura + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/EnumGracePeriodUnit' + additionalProperties: false + excludedRisks: + type: array + items: + $ref: '#/components/schemas/EnumExcludedRisks' + excludedRisksURL: + type: string + maxLength: 1024 + description: Campo aberto (possibilidade de incluir URL). + example: 'https://openinsurance.com.br/aaa' + profitModality: + $ref: '#/components/schemas/RiskPensionEnumProfitModality' + additionalProperties: false + RiskPensionGracePeriod: + type: object + required: + - amount + - unit + properties: + amount: + type: integer + format: int64 + description: Informar o prazo de carência + example: 90 + maximum: 9999999999 + unit: + $ref: '#/components/schemas/RiskPensionEnumGracePeriodUnit' + additionalProperties: false + TermsAndConditions: + type: object + required: + - susepProcessNumber + - detail + properties: + susepProcessNumber: + type: string + description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.' + minLength: 2 + maxLength: 20 + pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$|^(NA)$' + example: 15414.622222/2222-22 + detail: + type: string + description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)' + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + UpdateIndex: + type: string + maxLength: 5 + description: | + Índice utilizado na atualização do prêmio e do capital segurado, caso critério de atualização por meio de índice: + 1. IPCA (IBGE); + 2. IGP-M (FGV); + 3. INPC (IBGE). + 4. Não se aplica + 5. NA + enum: + - IPCA + - IGP_M + - INPC + - NAO_SE_APLICA + - NA + example: IPCA + RiskPensionReclaim: + type: object + required: + - gracePeriod + properties: + table: + type: array + items: + $ref: '#/components/schemas/RiskPensionReclaimTableItem' + minItems: 1 + gracePeriod: + $ref: '#/components/schemas/RiskPensionGracePeriod' + differenciatedPercentage: + description: Campo aberto (possibilidade de incluir URL) + example: | + https://openinsurance.com.br/aaa’ + Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL + Exemplo: Cobertura X: a partir de 25 meses = 100% + maxLength: 1024 + additionalProperties: false + InsurancePensionMinValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + InsurancePensionMaxValue: + type: object + required: + - amount + - currency + description: 'Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.
Conforme moeda.' + properties: + amount: + type: string + maxLength: 21 + pattern: '^(\d{1,16}\.\d{2,4})$|^(NA)$' + example: '0.01' + currency: + $ref: '#/components/schemas/CurrencyCode' + additionalProperties: false + RiskPensionMinimumRequirement: + type: object + required: + - contractType + - contractingMinRequirement + properties: + contractType: + type: string + description: | + O tipo de serviço contratado. A considerar os domínios abaixo: + 1. Coletivo; + 2. Individual. + 3. NA + enum: + - COLETIVO + - INDIVIDUAL + - NA + example: COLETIVO + contractingMinRequirement: + type: string + description: Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL). + maxLength: 1024 + example: 'https://openinsurance.com.br/aaa' + additionalProperties: false + RiskPensionReclaimTableItem: + type: object + required: + - initialMonthRange + - finalMonthRange + - percentage + properties: + initialMonthRange: + type: integer + maxLength: 2 + example: 1 + finalMonthRange: + type: integer + maxLength: 2 + example: 12 + percentage: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + maxLength: 9 + minLength: 8 + description: Percentual de faixa de resgate. + example: '0.019800' + additionalProperties: false + RiskPensionEnumPmbacRemuneration: + type: object + required: + - interestRate + properties: + interestRate: + type: string + pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$' + description: Taxa de juros para capitalização da PMBaC + maxLength: 9 + minLength: 8 + example: '0.019800' + updateIndexes: + type: array + items: + type: string + description: | + Índice utilizado na atualização da PMBaC: + 1. IPCA (IBGE) + 2. IGP-M (FGV) + 3. INPC (IBGE) + 4. NA + enum: + - IPCA + - IGP_M + - INPC + - NA + example: IPCA + additionalProperties: false + AgeAdjustment: + type: object + required: + - criterias + - frequency + properties: + criterias: + type: array + items: + type: string + description: | + Critério escolhido para reenquadramento etário + 1. Após período em anos + 2. A cada período em anos + 3. Por mudança de faixa etária + 4. Não aplicável + 5. NA + maxLength: 27 + example: APOS_PERIODO_ANOS + enum: + - APOS_PERIODO_ANOS + - CADA_PERIODO_ANOS + - MUDANCA_FAIXA_ETARIA + - NAO_APLICAVEL + - NA + frequency: + type: integer + description: 'Período em anos, caso critério de reenquadramento após ou a cada período em anos.' + maxLength: 3 + example: 10 + additionalProperties: false + CurrencyCode: + type: string + pattern: '^([A-Z]{3})$|^(NA)$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + EnumExcludedRisks: + type: string + description: Listagem para indicar quais serão o(s) risco(s) excluído(s) aplicável(is) à(s) cobertura(s). + maxLength: 40 + enum: + - ATO_RECONHECIMENTO_PERIGOSO + - ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO + - OPERACOES_GUERRA + - FURACOES_CICLONES_TERREMOTOS + - MATERIAL_NUCLEAR + - DOENCAS_LESOES_PREEXISTENTES + - EPIDEMIAS_PANDEMIAS + - SUICIDIO + - ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR + - OUTROS + - NA + example: ATO_RECONHECIMENTO_PERIGOSO + EnumAssistanceType: + type: string + description: 'Lista padronizada de tipo de assistências ofertadas vinculadas ao produto. Por exemplo, Funeral, Bicicleta, Assistência PET – Tabela padrão a ser consolidada com retorno das empresas com a relação de assistências, permitindo um campo ‘Outros’ para assistências não contempladas na tabela padronizada.' + maxLength: 43 + enum: + - ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + - ARQUITETO_VIRTUAL + - ASSESSORIA_FINANCEIRA + - AUTOMOVEL + - AUXILIO_NATALIDADE + - AVALIACAO_CLINICA_PREVENTIVA + - BOLSA_PROTEGIDA + - CESTA_BASICA + - CHECKUP_ODONTOLOGICO + - CLUBE_VANTAGENS_BENEFICIOS + - CONVALESCENCIA + - DECESSO + - DESCONTO_FARMACIAS_MEDICAMENTOS + - DESPESAS_FARMACEUTICAS_VIAGEM + - DIGITAL + - EDUCACIONAL + - EMPRESARIAL + - ENCANADOR + - ENTRETENIMENTO + - EQUIPAMENTOS_MEDICOS + - FIANCAS_DESPESAS_LEGAIS + - FISIOTERAPIA + - FUNERAL + - HELP_LINE + - HOSPEDAGEM_ACOMPANHANTE + - INTERRUPCAO_VIAGEM + - INVENTARIO + - MAIS_VIDA + - MAMAE_BEBE + - MEDICA_ACIDENTE_DOENCA + - MOTOCICLETA + - MULHER + - NUTRICIONISTA + - ODONTOLOGICA + - ORIENTACAO_FITNESS + - ORIENTACAO_JURIDICA + - ORIENTACAO_NUTRICIONAL + - PERSONAL_FITNESS + - ORIENTACAO_PSICOSSOCIAL_FAMILIAR + - PERDA_ROUBO_CARTAO + - PET + - PRORROGACAO_ESTADIA + - PROTECAO_DADOS + - RECOLOCACAO_PROFISSIONAL + - REDE_DESCONTO_NUTRICIONAL + - RESIDENCIAL + - RETORNO_MENORES_SEGURADO + - SAQUE_COACAO + - SAUDE_BEM_ESTAR + - SEGUNDA_OPINIAO_MEDICA + - SENIOR + - SUSTENTAVEL_DESCARTE_ECOLOGICO + - TELEMEDICINA + - VIAGEM + - VITIMA + - OUTROS + - NA + example: ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA + EnumAdditional: + type: string + enum: + - SORTEIO + - SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO + - SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO + - OUTROS + - NAO_HA + - NA + example: SORTEIO + EnumGracePeriodUnit: + type: string + description: Informar o critério de carência para a cobertura:
  1. Dias
  2. Meses
  3. Não se aplica
  4. NA
+ maxLength: 10 + enum: + - DIAS + - MESES + - NAO_APLICA + - NA + example: MESES + RiskPensionEnumGracePeriodUnit: + type: string + description: | + Informar o critério de carência para resgate: + 1. Dias; + 2. Meses; + 3. Não se aplica. + 4. NA + enum: + - DIAS + - MESES + - NAO_APLICA + - NA + example: MESES + RiskPensionEnumFinancialRegime: + type: string + description: | + Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto indicando: + 1. Repartição simples + 2. Repartição Capitais Cobertura + 3. Capitalização + 4. NA + example: REPARTICAO_SIMPLES + enum: + - REPARTICAO_SIMPLES + - REPARTICAO_CAPITAIS + - CAPITALIZACAO + - NA + RiskPensionEnumPremiumUpdateIndex: + type: string + description: Índice utilizado na atualização do prêmio/contribuição e do capital segurado/benefício + enum: + - IPCA + - IGPM + - INPC + - NA + example: IPCA + RiskPensionEnumContributionPayment: + type: object + description: Pagamento da contribuição. + required: + - contributionPaymentMethod + - contributionPeriodicity + properties: + contributionPaymentMethod: + type: string + example: CARTAO_CREDITO + description: | + Forma de pagamento da contribuição. + - CARTAO_CREDITO + - DEBITO_CONTA + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - TED_DOC + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - OUTROS + - NA + enum: + - CARTAO_CREDITO + - DEBITO_CONTA + - DEBITO_CONTA_POUPANCA + - BOLETO_BANCARIO + - PIX + - TED_DOC + - CONSIGNACAO_FOLHA_PAGAMENTO + - PONTOS_PROGRAMA_BENEFICIO + - OUTROS + - NA + contributionPaymentMethodAdditionalInfo: + type: string + pattern: '[\w\W\s]*' + example: Informações adicionais + maxLength: 140 + description: | + Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod. + + [Restrição] Obrigatório quando 'contributionPaymentMethod' for igual 'OUTROS'. + contributionPeriodicity: + type: string + example: MENSAL + description: | + Periodicidade de pagamento da contribuição. + - MENSAL + - UNICA + - ANUAL + - TRIMESTRAL + - SEMESTRAL + - BIMESTRAL + - OUTROS + - NA + enum: + - MENSAL + - UNICA + - ANUAL + - TRIMESTRAL + - SEMESTRAL + - BIMESTRAL + - OUTROS + - NA + contributionPeriodicityAdditionalInfo: + type: string + pattern: '[\w\W\s]*' + example: Informações adicionais + maxLength: 140 + description: | + Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod. + + [Restrição] Obrigatório quando 'contributionPeriodicity' for igual 'OUTROS'. + additionalProperties: false + RiskPensionEnumIndemnityPaymentMethod: + type: string + description: | + Modalidade de pagamento da indenização, a considerar os domínios abaixo: + 1. Único + 2. Sob a forma de renda + 3. NA + enum: + - UNICO + - SOB_FORMA_RENDA + - NA + example: UNICO + RiskPensionEnumOtherGuaranteedValues: + type: string + description: | + 1. Saldamento + 2. Benefício Prolongado + 3. Não se aplica + 4. NA + enum: + - SALDAMENTO + - BENEFICIO_PROLONGADO + - NAO_APLICA + - NA + example: SALDAMENTO + RiskPensionEnumProfitModality: + type: string + description: | + Modalidade de pagamento da indenização. + enum: + - PAGAMENTO_UNICO + - FORMA_RENDA + - NA + example: PAGAMENTO_UNICO + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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" + OpenDataResponseError: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + $ref: '#/components/schemas/OpenDataMeta' + additionalProperties: false + OpenDataMeta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + 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 + additionalProperties: false + parameters: + page: + name: page + in: query + description: Número da página que está sendo requisitada (o valor da primeira página é 1). + schema: + type: integer + 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 + responses: + OKResponseRiskCoveragePension: + description: Dados de previdência de risco obtidos com sucesso da instituição. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseRiskCoveragePension' + OKResponseSurvivorCoveragePension: + description: Dados de previdência de sobrevivência obtidos com sucesso da instituição. + content: + application/json: + schema: + $ref: '#/components/schemas/OKResponseSurvivalCoveragePension' + 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/OpenDataResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/OpenDataResponseError' + 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/OpenDataResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/OpenDataResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/OpenDataResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' diff --git a/swagger-apis/pension/index.html b/swagger-apis/pension/index.html index 2b7cf310a..f9b97cb8e 100644 --- a/swagger-apis/pension/index.html +++ b/swagger-apis/pension/index.html @@ -46,8 +46,10 @@ // Begin Swagger UI call region const ui = SwaggerUIBundle({ urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, - {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}], - "urls.primaryName": "1.0.0-rc2.0", // default spec + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/resources/2.1.0.yml b/swagger-apis/resources/2.1.0.yml new file mode 100644 index 000000000..18b26f6ad --- /dev/null +++ b/swagger-apis/resources/2.1.0.yml @@ -0,0 +1,472 @@ +openapi: 3.0.0 +info: + title: API Resources - Open Finance Brasil + description: | + API que trata da consulta do status de recursos para o Open Finance Brasil - Fase 2.\ + Não possui segregação entre pessoa natural e pessoa jurídica. + + # Orientações importantes + - A API resources lista os recursos vinculados ao consentimento específico, identificado por `consentId` e vinculado ao token enviado no header `Authorization`. + - Os `STATUS` dos recursos listados DEVEM considerar não apenas o consentimento vinculado mas também a disponibilidade do recurso na instituição transmissora dos dados. + - A `permission` específica desta API - `RESOURCES_READ` - DEVE ser solicitada pela instituição receptora na ocasião do pedido de criação do consentimento. + - A consulta à API Resources não é obrigatória por parte das instituições receptoras - esta API foi criada para dar visibilidade da existência de ocorrências que possam impedir o compartilhamento de determinados recursos por parte da instituição transmissora dos dados. + - O identificador do recurso devolvido na API Resources - `resourceId` - quando apresentado corresponde ao mesmo identificador designado para o recurso em sua API específica, o seja: o `resourceId` corresponde ao `accountId` da API accounts, ao `creditCardAccountId` da API de conta + pós-paga e assim sucessivamente. + + ## Status previstos para os recursos listados na API Resources + - AVAILABLE: indica que o recurso encontra-se disponível e o(s) consentimento(s) associado(s) possui(em) status `AUTHORISED`. + - UNAVAILABLE: indica que o recurso não está mais disponível, por exemplo, em caso de uma conta encerrada. + - TEMPORARILY_UNAVAILABLE: indica que o recurso encontra-se temporariamente indisponível, embora o(s) consentimento(s) associado(s) possua(m) status `AUTHORISED`. + Caso de exemplo: conta temporariamente bloqueada por suspeita de fraude. + - PENDING_AUTHORISATION: indica a existência de pendências para o compartilhamento do recurso, por exemplo, em caso de alçada dupla, quando é necessário o consentimento de mais de um titular. + + ## Permissions necessárias para a API Resources + ### `/resources` + - permissions: + - GET: **RESOURCES_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/resources/v2' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/resources/v2' + description: Servidor de Homologação +tags: + - name: Resources +paths: + /resources: + get: + tags: + - Resources + summary: Obtém a lista de recursos consentidos pelo cliente. + operationId: resourcesGetResources + description: Método para obter a lista de recursos mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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' + responses: + '200': + $ref: '#/components/responses/OKResponseResourceList' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/MethodNotAllowed' + '406': + $ref: '#/components/responses/NotAcceptable' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + '504': + $ref: '#/components/responses/GatewayTimeout' + '529': + $ref: '#/components/responses/SiteIsOverloaded' + default: + $ref: '#/components/responses/Default' + security: + - OpenId: + - openid + OAuth2Security: + - 'consent:consentId' + - resources +components: + schemas: + ResponseResourceList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + type: object + required: + - resourceId + - type + - status + properties: + resourceId: + type: string + description: | + Identifica o recurso reportado pelo participante do Open Finance, no caso de: + Contas de depósito à vista, de poupança ou de pagamento pré-paga : corresponde ao accountId; + Conta de pagamento pós-paga: corresponde ao creditCardAccountId; + Empréstimos, Financiamentos, Direitos creditórios descontados e Adiantamento a depositantes: corresponde ao contractId. + Renda Fixa Crédito, Renda Fixa Bancária, Renda Variável, Títulos do Tesouro Direto e Fundos de Investimentos: corresponde ao investmentId + minLength: 1 + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: 25cac914-d8ae-6789-b215-650a6215820d + type: + type: string + enum: + - ACCOUNT + - CREDIT_CARD_ACCOUNT + - LOAN + - FINANCING + - UNARRANGED_ACCOUNT_OVERDRAFT + - INVOICE_FINANCING + - BANK_FIXED_INCOME + - CREDIT_FIXED_INCOME + - VARIABLE_INCOME + - TREASURE_TITLE + - FUND + description: | + Tipo de recurso (vide Enum): + - Account - Conta de depósito à vista, poupança ou pagamento pré-paga + - Credit Card Account - Conta de pagamento pós-paga (Cartão de Crédito) + - Loan - Empréstimo + - Financing - Financiamento + - Unarranged Account Overdraft - Cheque Especial + - Invoice Financing - Financiamento de Fatura + - Bank Fixed Income - Renda Fixa Bancária + - Credit Fixed Income - Renda Fixa Crédito + - Variabel Income - Renda Variável + - Treasure Title - Título do Tesouro Direto + - Fund - Fundo de Investimento + example: ACCOUNT + status: + type: string + enum: + - AVAILABLE + - UNAVAILABLE + - TEMPORARILY_UNAVAILABLE + - PENDING_AUTHORISATION + description: | + Tipo de status de recurso (vide Enum): + Available - Disponível + Unavailable - Indisponível + Temporarily Unavailable - Temporariamente Indisponível + Pending Authorisation - Pendente de Autorização + example: AVAILABLE + description: Lista de recursos e seus respectivos status. + links: + $ref: '#/components/schemas/Links' + meta: + $ref: '#/components/schemas/Meta' + Links: + type: object + description: Referências para outros recusos da API requisitada. + required: + - self + properties: + self: + type: string + format: uri + maxLength: 2000 + description: URI completo que gerou a resposta atual. + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + first: + type: string + format: uri + maxLength: 2000 + description: URI da primeira página que originou essa lista de resultados. Restrição - Obrigatório quando não for a primeira página da resposta + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + prev: + type: string + format: uri + maxLength: 2000 + description: "URI da página anterior dessa lista de resultados. Restrição - \tObrigatório quando não for a primeira página da resposta" + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + next: + type: string + format: uri + maxLength: 2000 + description: URI da próxima página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + last: + type: string + format: uri + maxLength: 2000 + description: URI da última página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta + example: 'https://api.banco.com.br/open-banking/api/v1/resource' + pattern: '^(https:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$' + Meta: + type: object + description: Meta informações referente à API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + 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' + 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.' + 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' + 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 + 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 + 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: + resources: Escopo necessário para acesso à API Resources. O controle dos endpoints específicos é feito via permissions. + responses: + OKResponseResourceList: + description: Dados de status dos recursos obtidos com sucesso. + headers: + x-fapi-interaction-id: + schema: + $ref: '#/components/schemas/XFapiInteractionId' + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseResourceList' + 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' + 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' + 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' \ No newline at end of file diff --git a/swagger-apis/resources/index.html b/swagger-apis/resources/index.html index 4e444eab0..604a5ee53 100644 --- a/swagger-apis/resources/index.html +++ b/swagger-apis/resources/index.html @@ -54,8 +54,9 @@ {"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"}, - {"name": "2.1.0-rc1.0", "url": "./2.1.0-rc1.0.yml"}], - "urls.primaryName": "2.1.0-rc1.0", // default spec + {"name": "2.1.0-rc1.0", "url": "./2.1.0-rc1.0.yml"}, + {"name": "2.1.0", "url": "./2.1.0.yml"}], + "urls.primaryName": "2.1.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/treasure-titles/1.0.0-rc2.0.yml b/swagger-apis/treasure-titles/1.0.0-rc2.0.yml new file mode 100644 index 000000000..ce03a41f8 --- /dev/null +++ b/swagger-apis/treasure-titles/1.0.0-rc2.0.yml @@ -0,0 +1,1500 @@ +openapi: 3.0.0 +info: + title: API Treasure Titles - Open Finance Brasil + description: | + API de informações de operações de Títulos do Tesouro Direto Open Finance Brasil – Fase 4. API que retorna informações de operações de investimento do tipo Títulos do Tesouro Direto mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. Devem ser considerados como escopo de exposição todos os títulos ofertados pelo Tesouro Direto. A exposição se dará por cada operação de títulos do Tesouro Direto contratada pelo cliente. + version: 1.0.0-rc2.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/treasure-titles/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/treasure-titles/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + - name: Transactions + description: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: treasureTitlesGetInvestments + description: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseTreasureTitlesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseTreasureTitlesIdentifyProduct' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentIdBalances + description: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + - $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/OkResponseTreasureTitlesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseTreasureTitlesProductTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateMaxLimited' + - $ref: '#/components/parameters/toTransactionDateMaxLimited' + responses: + '200': + $ref: '#/components/responses/ResponseTreasureTitlesProductTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles +components: + schemas: + LockedWithAdditionalProperties: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + additionalProperties: false + 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' + ResponseTreasureTitlesListProduct: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseTreasureTitlesListProductData' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + TreasureTitlesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + TreasureTitlesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + CurrencyCode: + type: string + pattern: '^[A-Z]{3}$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + ResponseTreasureTitlesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/TreasureTitlesBalances' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + TreasureTitlesProductTransaction: + type: object + required: + - type + - transactionType + - transactionDate + - transactionUnitPrice + - transactionQuantity + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/TreasureTitlesType' + transactionType: + $ref: '#/components/schemas/TreasureTitlesTransactionType' + transactionTypeAdditionalInfo: + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não de limitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + example: '' + type: string + transactionDate: + $ref: '#/components/schemas/TreasureTitlesTransactionDate' + transactionUnitPrice: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPrice' + transactionQuantity: + $ref: '#/components/schemas/TreasureTitlesTransactionQuantity' + transactionGrossValue: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValue' + incomeTax: + description: | + Valor do imposto de renda recolhido na transação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesIncomeTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + financialTransactionTax: + description: | + Valor do IOF recolhido na transação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + transactionNetValue: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/TreasureTitlesRemunerationTransactionRate' + transactionId: + $ref: '#/components/schemas/TreasureTitlesTransactionId' + ResponseTreasureTitlesIdentifyProduct: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/TreasureTitlesIdentifyProduct' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + ResponseTreasureTitlesListProductData: + type: object + description: Lista de títulos de tesouro direto mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + $ref: '#/components/schemas/TreasureTitlesBrandName' + companyCnpj: + $ref: '#/components/schemas/TreasureTitlesCompanyCnpj' + investmentId: + $ref: '#/components/schemas/TreasureTitlesInvestmentId' + additionalProperties: false + ResponseTreasureTitlesProductList: + $ref: '#/components/schemas/ResponseTreasureTitlesListProduct' + ResponseTreasureTitlesProductTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/TreasureTitlesProductTransaction' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMetaTransaction' + additionalProperties: false + ResponseTreasureTitlesProductTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/TreasureTitlesProductTransaction' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMetaTransaction' + additionalProperties: false + TreasureTitlesAmount: + description: Valor relacionado ao objeto. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + type: string + format: double + TreasureTitlesBalances: + type: object + required: + - referenceDateTime + - updatedUnitPrice + - grossAmount + - netAmount + - incomeTax + - blockedBalance + - purchaseUnitPrice + - quantity + properties: + referenceDateTime: + $ref: '#/components/schemas/TreasureTitlesReferenceDateTime' + updatedUnitPrice: + $ref: '#/components/schemas/TreasureTitlesUpdatedUnitPrice' + grossAmount: + $ref: '#/components/schemas/TreasureTitlesGrossAmount' + netAmount: + $ref: '#/components/schemas/TreasureTitlesNetAmount' + incomeTax: + $ref: '#/components/schemas/TreasureTitlesIncomeTax' + financialTransactionTax: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTax' + blockedBalance: + $ref: '#/components/schemas/TreasureTitlesBlockedBalance' + purchaseUnitPrice: + $ref: '#/components/schemas/TreasureTitlesPurchaseUnitPrice' + quantity: + $ref: '#/components/schemas/TreasureTitlesQuantity' + TreasureTitlesBlockedBalance: + description: 'Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesBlockedBalanceAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesBlockedBalanceAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesBrandName: + 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). + maxLength: 80 + pattern: '[\w\W\s]*' + example: Organização A + type: string + TreasureTitlesCalculation: + description: Base de cálculo (dias úteis ou dias corridos) + example: DIAS_CORRIDOS + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + type: string + TreasureTitlesCompanyCnpj: + 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 + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + type: string + TreasureTitlesCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesDueDate: + description: Data de vencimento do título. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesFinancialTransactionTax: + description: | + IOF provisionado. + + Caso seja um produto com alíquota zero esse objeto pode ser enviado sem valores (vazio). + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesFinancialTransactionTaxAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesFinancialTransactionTaxCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesFinancialTransactionTaxFinancialTransactionTaxAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesGrossAmount: + description: | + Valor do investimento anterior à dedução de impostos, taxas e + tarifas (se houver), atualizado (a mercado) na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesGrossAmountAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesGrossAmountAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIdentifyProduct: + type: object + required: + - isinCode + - productName + - remuneration + - dueDate + - purchaseDate + - voucherPaymentIndicator + properties: + isinCode: + $ref: '#/components/schemas/TreasureTitlesIsinCode' + productName: + $ref: '#/components/schemas/TreasureTitlesProductName' + remuneration: + $ref: '#/components/schemas/TreasureTitlesRemuneration' + dueDate: + $ref: '#/components/schemas/TreasureTitlesDueDate' + purchaseDate: + $ref: '#/components/schemas/TreasureTitlesPurchaseDate' + voucherPaymentIndicator: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentIndicator' + voucherPaymentPeriodicity: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentPeriodicity' + voucherPaymentPeriodicityAdditionalInfo: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentPeriodicityAdditionalInfo' + TreasureTitlesIncomeTax: + description: | + Valor do imposto provisionado considerando a alíquota vigente na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesIncomeTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesIncomeTaxAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIncomeTaxCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesIncomeTaxIncomeTaxAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIndexer: + description: 'Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS)' + example: CDI + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + type: string + TreasureTitlesIndexerAdditionalInfo: + description: | + Informações adicionais do indexador. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor 'OUTROS'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Dólar + type: string + TreasureTitlesInvestmentId: + description: | + Identifica de forma única o relacionamento do cliente com o + produto, mantendo as regras de imutabilidade dentro da instituição + transmissora. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + type: string + TreasureTitlesIsinCode: + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora + : código universal que identifica cada valor mobiliário ou instrumento + financeiro, conforme Norma ISO 6166. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + type: string + TreasureTitlesMetaTransaction: + type: object + description: Meta informações referente a 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' + additionalProperties: false + TreasureTitlesNetAmount: + description: 'Valor do investimento posterior a dedução de impostos, taxas e tarifas (se houver), atualizado (a mercado) na data de referência.' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesNetAmountAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesNetAmountAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesPostFixedIndexerPercentage: + description: | + Percentual do indexador da aquisição do contrato. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de ‘PRE FIXADO’. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + type: string + format: double + TreasureTitlesPreFixedRate: + description: | + Valor da taxa da aquisição do contrato. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor ‘PRE FIXADO’. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + type: string + format: double + TreasureTitlesProductName: + description: Descrição do ativo em questão. + maxLength: 70 + pattern: '[\w\W\s]*' + example: TESOURODIRETO + type: string + TreasureTitlesPurchaseDate: + description: Data de aquisição do cliente. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesPurchaseUnitPrice: + description: Valor unitário negociado com o cliente na data de aquisição. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesQuantity: + description: Quantidade de títulos detidos na data da posição do cliente. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$ ' + format: double + type: string + example: '1000.015' + TreasureTitlesRatePeriodicity: + description: 'Periodicidade da taxa de remuneração (mensal, anual, diário e semestral)' + example: DIARIO + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + type: string + TreasureTitlesReferenceDateTime: + description: Data da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos. + maxLength: 20 + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + type: string + format: date-time + TreasureTitlesRemuneration: + description: Objeto para detalhamento de remuneração do titulo. + type: object + required: + - indexer + - ratePeriodicity + - calculation + properties: + indexer: + $ref: '#/components/schemas/TreasureTitlesIndexer' + indexerAdditionalInfo: + $ref: '#/components/schemas/TreasureTitlesIndexerAdditionalInfo' + preFixedRate: + $ref: '#/components/schemas/TreasureTitlesPreFixedRate' + postFixedIndexerPercentage: + $ref: '#/components/schemas/TreasureTitlesPostFixedIndexerPercentage' + ratePeriodicity: + $ref: '#/components/schemas/TreasureTitlesRatePeriodicity' + calculation: + $ref: '#/components/schemas/TreasureTitlesCalculation' + TreasureTitlesRemunerationTransactionRate: + description: | + Taxa de remuneração da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + type: string + format: double + TreasureTitlesTransactionDate: + description: Data da movimentação. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesTransactionGrossValue: + description: | + Valor bruto da movimentação + + Nos casos em que se tratar de movimento de saída e a instituição não tiver a informação de IR recolhido na fonte, o valor bruto e o valor líquido expostos deverão ser iguais. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValueAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValueCurrency' + TreasureTitlesTransactionGrossValueAmount: + description: 'Valor bruto da transação (Preço unitário da movimentação x Quantidade) ' + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionGrossValueCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesTransactionId: + description: Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: string + TreasureTitlesTransactionNetValue: + description: | + Valor líquido da transação + + Nos casos em que se tratar de movimento de saída e a instituição não tiver a informação de IR recolhido na fonte, o valor bruto e o valor líquido expostos deverão ser iguais. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValueAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValueCurrency' + TreasureTitlesTransactionNetValueAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionNetValueCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesTransactionQuantity: + description: Quantidade de títulos envolvidos na movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + type: string + format: double + TreasureTitlesTransactionsLinks: + $ref: '#/components/schemas/TreasureTitlesLinks' + TreasureTitlesTransactionType: + description: 'Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros.' + example: AMORTIZACAO + enum: + - COMPRA + - VENDA + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - OUTROS + type: string + TreasureTitlesTransactionUnitPrice: + description: Preço unitário bruto negociado na transação. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPriceAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPriceCurrency' + TreasureTitlesTransactionUnitPriceAmount: + description: Valor relacionado ao objeto + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionUnitPriceCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesType: + description: | + Tipo de movimentação na visão de investimento (Nos casos de + pagamento de juros e amortização) fica convencionado que será considerado que + o tipo de movimento será saída. + example: ENTRADA + enum: + - ENTRADA + - SAIDA + type: string + TreasureTitlesUpdatedUnitPrice: + description: Valor bruto unitário atualizado (a mercado) na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesVoucherPaymentIndicator: + description: Indicativo se há pagamento de cupom (Sim ou não). + example: SIM + enum: + - SIM + - NAO + type: string + TreasureTitlesVoucherPaymentPeriodicity: + description: | + Em caso de haver pagamento de cupom, descrever a periodicidade + (mensal, trimestral, semestral, anual, irregular e outros) + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'voucherPaymentIndicator' for preenchido com o valor 'SIM'. + example: MENSAL + enum: + - MENSAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - IRREGULAR + - OUTROS + type: string + TreasureTitlesVoucherPaymentPeriodicityAdditionalInfo: + description: | + Informações adicionais da periodicidade de pagamento de cupom. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'voucherPaymentPeriodicity' for preenchido com o valor 'OUTROS'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Diária + type: string + securitySchemes: + OAuth2AuthorizationCode: + 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: + treasure-titles: Escopo necessário para acesso à API Treasure Titles - Open Finance Brasil. O controle dos endpoints específicos é feito via permissions. + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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]*' + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + format: int32 + maximum: 1000 + 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateMaxLimited: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateMaxLimited: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + responses: + OkResponseTreasureTitlesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesBalances' + OkResponseTreasureTitlesProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesListProduct' + ResponseTreasureTitlesIdentifyProduct: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesIdentifyProduct' + ResponseTreasureTitlesProductTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesProductTransactions' + ResponseTreasureTitlesProductTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesProductTransactions' + BadRequest: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Forbidden: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeout: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptable: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntity: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + BadRequestWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + ForbiddenWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + GatewayTimeoutWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + NotAcceptableWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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/LockedWithAdditionalProperties' diff --git a/swagger-apis/treasure-titles/1.0.0-rc3.0.yml b/swagger-apis/treasure-titles/1.0.0-rc3.0.yml new file mode 100644 index 000000000..16eb77a0c --- /dev/null +++ b/swagger-apis/treasure-titles/1.0.0-rc3.0.yml @@ -0,0 +1,1507 @@ +openapi: 3.0.0 +info: + title: API Treasure Titles - Open Finance Brasil + description: | + API de informações de operações de Títulos do Tesouro Direto Open Finance Brasil – Fase 4. API que retorna informações de operações de investimento do tipo Títulos do Tesouro Direto mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. Devem ser considerados como escopo de exposição todos os títulos ofertados pelo Tesouro Direto. A exposição se dará por cada operação de títulos do Tesouro Direto contratada pelo cliente. + version: 1.0.0-rc3.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/treasure-titles/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/treasure-titles/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + - name: Transactions + description: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: treasureTitlesGetInvestments + description: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseTreasureTitlesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseTreasureTitlesIdentifyProduct' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + - $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/OkResponseTreasureTitlesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseTreasureTitlesProductTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateMaxLimited' + - $ref: '#/components/parameters/toTransactionDateMaxLimited' + responses: + '200': + $ref: '#/components/responses/ResponseTreasureTitlesProductTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles +components: + schemas: + LockedWithAdditionalProperties: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + additionalProperties: false + 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' + ResponseTreasureTitlesListProduct: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseTreasureTitlesListProductData' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + TreasureTitlesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + TreasureTitlesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + CurrencyCode: + type: string + pattern: '^[A-Z]{3}$' + maxLength: 3 + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + example: BRL + ResponseTreasureTitlesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/TreasureTitlesBalances' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + TreasureTitlesProductTransaction: + type: object + required: + - type + - transactionType + - transactionDate + - transactionUnitPrice + - transactionQuantity + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/TreasureTitlesType' + transactionType: + $ref: '#/components/schemas/TreasureTitlesTransactionType' + transactionTypeAdditionalInfo: + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não de limitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + example: '' + type: string + transactionDate: + $ref: '#/components/schemas/TreasureTitlesTransactionDate' + transactionUnitPrice: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPrice' + transactionQuantity: + $ref: '#/components/schemas/TreasureTitlesTransactionQuantity' + transactionGrossValue: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValue' + incomeTax: + description: | + Valor do imposto de renda recolhido na transação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesIncomeTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + financialTransactionTax: + description: | + Valor do IOF recolhido na transação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + transactionNetValue: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/TreasureTitlesRemunerationTransactionRate' + transactionId: + $ref: '#/components/schemas/TreasureTitlesTransactionId' + ResponseTreasureTitlesIdentifyProduct: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/TreasureTitlesIdentifyProduct' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + ResponseTreasureTitlesListProductData: + type: object + description: Lista de títulos de tesouro direto mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + $ref: '#/components/schemas/TreasureTitlesBrandName' + companyCnpj: + $ref: '#/components/schemas/TreasureTitlesCompanyCnpj' + investmentId: + $ref: '#/components/schemas/TreasureTitlesInvestmentId' + additionalProperties: false + ResponseTreasureTitlesProductList: + $ref: '#/components/schemas/ResponseTreasureTitlesListProduct' + ResponseTreasureTitlesProductTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/TreasureTitlesProductTransaction' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMetaTransaction' + additionalProperties: false + ResponseTreasureTitlesProductTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/TreasureTitlesProductTransaction' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMetaTransaction' + additionalProperties: false + TreasureTitlesAmount: + description: Valor relacionado ao objeto. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + type: string + format: double + TreasureTitlesBalances: + type: object + required: + - referenceDateTime + - updatedUnitPrice + - grossAmount + - netAmount + - incomeTax + - blockedBalance + - purchaseUnitPrice + - quantity + properties: + referenceDateTime: + $ref: '#/components/schemas/TreasureTitlesReferenceDateTime' + updatedUnitPrice: + $ref: '#/components/schemas/TreasureTitlesUpdatedUnitPrice' + grossAmount: + $ref: '#/components/schemas/TreasureTitlesGrossAmount' + netAmount: + $ref: '#/components/schemas/TreasureTitlesNetAmount' + incomeTax: + $ref: '#/components/schemas/TreasureTitlesIncomeTax' + financialTransactionTax: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTax' + blockedBalance: + $ref: '#/components/schemas/TreasureTitlesBlockedBalance' + purchaseUnitPrice: + $ref: '#/components/schemas/TreasureTitlesPurchaseUnitPrice' + quantity: + $ref: '#/components/schemas/TreasureTitlesQuantity' + TreasureTitlesBlockedBalance: + description: 'Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesBlockedBalanceAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesBlockedBalanceAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesBrandName: + 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). + maxLength: 80 + pattern: '[\w\W\s]*' + example: Organização A + type: string + TreasureTitlesCalculation: + description: Base de cálculo (dias úteis ou dias corridos) + example: DIAS_CORRIDOS + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + type: string + TreasureTitlesCompanyCnpj: + 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 + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + type: string + TreasureTitlesCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesDueDate: + description: Data de vencimento do título. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesFinancialTransactionTax: + description: | + IOF provisionado. + + Caso seja um produto com alíquota zero esse objeto pode ser enviado sem valores (vazio). + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesFinancialTransactionTaxAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesFinancialTransactionTaxCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesFinancialTransactionTaxFinancialTransactionTaxAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesGrossAmount: + description: | + Valor do investimento anterior à dedução de impostos, taxas e + tarifas (se houver), atualizado (a mercado) na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesGrossAmountAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesGrossAmountAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIdentifyProduct: + type: object + required: + - isinCode + - productName + - remuneration + - dueDate + - purchaseDate + - voucherPaymentIndicator + properties: + isinCode: + $ref: '#/components/schemas/TreasureTitlesIsinCode' + productName: + $ref: '#/components/schemas/TreasureTitlesProductName' + remuneration: + $ref: '#/components/schemas/TreasureTitlesRemuneration' + dueDate: + $ref: '#/components/schemas/TreasureTitlesDueDate' + purchaseDate: + $ref: '#/components/schemas/TreasureTitlesPurchaseDate' + voucherPaymentIndicator: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentIndicator' + voucherPaymentPeriodicity: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentPeriodicity' + voucherPaymentPeriodicityAdditionalInfo: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentPeriodicityAdditionalInfo' + TreasureTitlesIncomeTax: + description: | + Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesIncomeTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesIncomeTaxAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIncomeTaxCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesIncomeTaxIncomeTaxAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIndexer: + description: 'Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS)' + example: CDI + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + type: string + TreasureTitlesIndexerAdditionalInfo: + description: | + Informações adicionais do indexador. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor 'OUTROS'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Dólar + type: string + TreasureTitlesInvestmentId: + description: | + Identifica de forma única o relacionamento do cliente com o + produto, mantendo as regras de imutabilidade dentro da instituição + transmissora. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + type: string + TreasureTitlesIsinCode: + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora + : código universal que identifica cada valor mobiliário ou instrumento + financeiro, conforme Norma ISO 6166. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + type: string + TreasureTitlesMetaTransaction: + type: object + description: Meta informações referente a 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' + additionalProperties: false + TreasureTitlesNetAmount: + description: 'Valor do investimento posterior a dedução de impostos, taxas e tarifas (se houver), atualizado (a mercado) na data de referência.' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesNetAmountAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesNetAmountAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesPostFixedIndexerPercentage: + description: | + Percentual do indexador da aquisição do contrato. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de ‘PRE FIXADO’. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + type: string + format: double + TreasureTitlesPreFixedRate: + description: | + Valor da taxa da aquisição do contrato. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor ‘PRE FIXADO’. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + type: string + format: double + TreasureTitlesProductName: + description: Nome do título em questão, conforme listado no site do Tesouro Direto [https://www.tesourodireto.com.br](https://www.tesourodireto.com.br) + maxLength: 70 + pattern: '[\w\W\s]*' + example: Tesouro Selic 2025 + type: string + TreasureTitlesPurchaseDate: + description: Data de aquisição do cliente. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesPurchaseUnitPrice: + description: Valor unitário negociado com o cliente na data de aquisição. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesQuantity: + description: Quantidade de títulos detidos na data da posição do cliente. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$ ' + format: double + type: string + example: '1000.015' + TreasureTitlesRatePeriodicity: + description: 'Periodicidade da taxa de remuneração (mensal, anual, diário e semestral)' + example: DIARIO + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + type: string + TreasureTitlesReferenceDateTime: + description: Data da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos. + maxLength: 20 + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + type: string + format: date-time + TreasureTitlesRemuneration: + description: Objeto para detalhamento de remuneração do titulo. + type: object + required: + - indexer + - ratePeriodicity + - calculation + properties: + indexer: + $ref: '#/components/schemas/TreasureTitlesIndexer' + indexerAdditionalInfo: + $ref: '#/components/schemas/TreasureTitlesIndexerAdditionalInfo' + preFixedRate: + $ref: '#/components/schemas/TreasureTitlesPreFixedRate' + postFixedIndexerPercentage: + $ref: '#/components/schemas/TreasureTitlesPostFixedIndexerPercentage' + ratePeriodicity: + $ref: '#/components/schemas/TreasureTitlesRatePeriodicity' + calculation: + $ref: '#/components/schemas/TreasureTitlesCalculation' + TreasureTitlesRemunerationTransactionRate: + description: | + Taxa de remuneração da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + type: string + format: double + TreasureTitlesTransactionDate: + description: Data da movimentação. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesTransactionGrossValue: + description: | + Valor bruto da movimentação + + Nos casos em que se tratar de movimento de saída e a instituição não tiver a informação de IR recolhido na fonte, o valor bruto e o valor líquido expostos deverão ser iguais. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValueAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValueCurrency' + TreasureTitlesTransactionGrossValueAmount: + description: 'Valor bruto da transação (Preço unitário da movimentação x Quantidade) ' + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionGrossValueCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesTransactionId: + description: Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: string + TreasureTitlesTransactionNetValue: + description: | + Valor líquido da transação + + Nos casos em que se tratar de movimento de saída e a instituição não tiver a informação de IR recolhido na fonte, o valor bruto e o valor líquido expostos deverão ser iguais. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValueAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValueCurrency' + TreasureTitlesTransactionNetValueAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionNetValueCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesTransactionQuantity: + description: Quantidade de títulos envolvidos na movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + type: string + format: double + TreasureTitlesTransactionsLinks: + $ref: '#/components/schemas/TreasureTitlesLinks' + TreasureTitlesTransactionType: + description: 'Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros.' + example: AMORTIZACAO + enum: + - COMPRA + - VENDA + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - OUTROS + type: string + TreasureTitlesTransactionUnitPrice: + description: Preço unitário bruto negociado na transação. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPriceAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPriceCurrency' + TreasureTitlesTransactionUnitPriceAmount: + description: Valor relacionado ao objeto + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionUnitPriceCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesType: + description: | + Tipo de movimentação na visão de investimento (Nos casos de + pagamento de juros e amortização) fica convencionado que será considerado que + o tipo de movimento será saída. + example: ENTRADA + enum: + - ENTRADA + - SAIDA + type: string + TreasureTitlesUpdatedUnitPrice: + description: Valor bruto unitário atualizado (a mercado) na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesVoucherPaymentIndicator: + description: Indicativo se há pagamento de cupom (Sim ou não). + example: SIM + enum: + - SIM + - NAO + type: string + TreasureTitlesVoucherPaymentPeriodicity: + description: | + Em caso de haver pagamento de cupom, descrever a periodicidade + (mensal, trimestral, semestral, anual, irregular e outros) + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'voucherPaymentIndicator' for preenchido com o valor 'SIM'. + example: MENSAL + enum: + - MENSAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - IRREGULAR + - OUTROS + type: string + TreasureTitlesVoucherPaymentPeriodicityAdditionalInfo: + description: | + Informações adicionais da periodicidade de pagamento de cupom. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'voucherPaymentPeriodicity' for preenchido com o valor 'OUTROS'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Diária + type: string + securitySchemes: + OAuth2AuthorizationCode: + 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: + treasure-titles: Escopo necessário para acesso à API Treasure Titles - Open Finance Brasil. O controle dos endpoints específicos é feito via permissions. + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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]*' + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + format: int32 + maximum: 1000 + 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateMaxLimited: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateMaxLimited: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + responses: + OkResponseTreasureTitlesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesBalances' + OkResponseTreasureTitlesProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesListProduct' + ResponseTreasureTitlesIdentifyProduct: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesIdentifyProduct' + ResponseTreasureTitlesProductTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesProductTransactions' + ResponseTreasureTitlesProductTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesProductTransactions' + BadRequest: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Forbidden: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeout: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptable: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntity: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + BadRequestWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + ForbiddenWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + GatewayTimeoutWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + NotAcceptableWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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/LockedWithAdditionalProperties' diff --git a/swagger-apis/treasure-titles/1.0.0.yml b/swagger-apis/treasure-titles/1.0.0.yml new file mode 100644 index 000000000..afe72c307 --- /dev/null +++ b/swagger-apis/treasure-titles/1.0.0.yml @@ -0,0 +1,1498 @@ +openapi: 3.0.0 +info: + title: API Treasure Titles - Open Finance Brasil + description: | + API de informações de operações de Títulos do Tesouro Direto Open Finance Brasil – Fase 4. API que retorna informações de operações de investimento do tipo Títulos do Tesouro Direto mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente e movimentações financeiras. Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. Devem ser considerados como escopo de exposição todos os títulos ofertados pelo Tesouro Direto. A exposição se dará por cada operação de títulos do Tesouro Direto contratada pelo cliente. + version: 1.0.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/treasure-titles/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/treasure-titles/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + - name: Transactions + description: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: treasureTitlesGetInvestments + description: Obtém a lista de operações de Títulos do Tesouro Direto mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OkResponseTreasureTitlesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseTreasureTitlesIdentifyProduct' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Títulos do Tesouro Direto identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + parameters: + - name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + - $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/OkResponseTreasureTitlesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + operationId: treasureTitlesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações da operação (últimos 12 meses) de Títulos do Tesouro Direto identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/ResponseTreasureTitlesProductTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: treasureTitlesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Títulos do Tesouro Direto identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateMaxLimited' + - $ref: '#/components/parameters/toTransactionDateMaxLimited' + responses: + '200': + $ref: '#/components/responses/ResponseTreasureTitlesProductTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - treasure-titles +components: + schemas: + LockedWithAdditionalProperties: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + additionalProperties: false + meta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + additionalProperties: false + 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' + ResponseTreasureTitlesListProduct: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseTreasureTitlesListProductData' + links: + $ref: '#/components/schemas/TreasureTitlesProductListLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + TreasureTitlesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + TreasureTitlesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + TreasureTitlesProductListLinks: + 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@:%\+.~#?&\/\/=]*)$' + ResponseTreasureTitlesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/TreasureTitlesBalances' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + TreasureTitlesProductTransaction: + type: object + required: + - type + - transactionType + - transactionDate + - transactionUnitPrice + - transactionQuantity + - transactionGrossValue + - transactionNetValue + - transactionId + properties: + type: + $ref: '#/components/schemas/TreasureTitlesType' + transactionType: + $ref: '#/components/schemas/TreasureTitlesTransactionType' + transactionTypeAdditionalInfo: + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não de limitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + example: '' + type: string + transactionDate: + $ref: '#/components/schemas/TreasureTitlesTransactionDate' + transactionUnitPrice: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPrice' + transactionQuantity: + $ref: '#/components/schemas/TreasureTitlesTransactionQuantity' + transactionGrossValue: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValue' + incomeTax: + description: | + Valor do imposto de renda recolhido na transação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesIncomeTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + financialTransactionTax: + description: | + Valor do IOF recolhido na transação + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'SAIDA'. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + transactionNetValue: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValue' + remunerationTransactionRate: + $ref: '#/components/schemas/TreasureTitlesRemunerationTransactionRate' + transactionId: + $ref: '#/components/schemas/TreasureTitlesTransactionId' + ResponseTreasureTitlesIdentifyProduct: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/TreasureTitlesIdentifyProduct' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMeta' + additionalProperties: false + ResponseTreasureTitlesListProductData: + type: object + description: Lista de títulos de tesouro direto mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + $ref: '#/components/schemas/TreasureTitlesBrandName' + companyCnpj: + $ref: '#/components/schemas/TreasureTitlesCompanyCnpj' + investmentId: + $ref: '#/components/schemas/TreasureTitlesInvestmentId' + additionalProperties: false + ResponseTreasureTitlesProductTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/TreasureTitlesProductTransaction' + links: + $ref: '#/components/schemas/TreasureTitlesLinks' + meta: + $ref: '#/components/schemas/TreasureTitlesMetaTransaction' + additionalProperties: false + TreasureTitlesAmount: + description: Valor relacionado ao objeto. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.000004' + type: string + format: double + TreasureTitlesBalances: + type: object + required: + - referenceDateTime + - updatedUnitPrice + - grossAmount + - netAmount + - incomeTax + - blockedBalance + - purchaseUnitPrice + - quantity + properties: + referenceDateTime: + $ref: '#/components/schemas/TreasureTitlesReferenceDateTime' + updatedUnitPrice: + $ref: '#/components/schemas/TreasureTitlesUpdatedUnitPrice' + grossAmount: + $ref: '#/components/schemas/TreasureTitlesGrossAmount' + netAmount: + $ref: '#/components/schemas/TreasureTitlesNetAmount' + incomeTax: + $ref: '#/components/schemas/TreasureTitlesIncomeTax' + financialTransactionTax: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTax' + blockedBalance: + $ref: '#/components/schemas/TreasureTitlesBlockedBalance' + purchaseUnitPrice: + $ref: '#/components/schemas/TreasureTitlesPurchaseUnitPrice' + quantity: + $ref: '#/components/schemas/TreasureTitlesQuantity' + TreasureTitlesBlockedBalance: + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesBlockedBalanceAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesBlockedBalanceAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesBrandName: + 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). + maxLength: 80 + pattern: '[\w\W\s]*' + example: Organização A + type: string + TreasureTitlesCalculation: + description: Base de cálculo (dias úteis ou dias corridos) + example: DIAS_CORRIDOS + enum: + - DIAS_UTEIS + - DIAS_CORRIDOS + type: string + TreasureTitlesCompanyCnpj: + 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 + maxLength: 14 + pattern: '^\d{14}$' + example: '21128159000166' + type: string + TreasureTitlesCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesDueDate: + description: Data de vencimento do título. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesFinancialTransactionTax: + description: | + IOF provisionado. + + Caso seja um produto com alíquota zero esse objeto pode ser enviado sem valores (vazio). + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesFinancialTransactionTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesFinancialTransactionTaxAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesGrossAmount: + description: | + Valor do investimento anterior à dedução de impostos, taxas e + tarifas (se houver), atualizado (a mercado) na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesGrossAmountAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesGrossAmountAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIdentifyProduct: + type: object + required: + - isinCode + - productName + - remuneration + - dueDate + - purchaseDate + - voucherPaymentIndicator + properties: + isinCode: + $ref: '#/components/schemas/TreasureTitlesIsinCode' + productName: + $ref: '#/components/schemas/TreasureTitlesProductName' + remuneration: + $ref: '#/components/schemas/TreasureTitlesRemuneration' + dueDate: + $ref: '#/components/schemas/TreasureTitlesDueDate' + purchaseDate: + $ref: '#/components/schemas/TreasureTitlesPurchaseDate' + voucherPaymentIndicator: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentIndicator' + voucherPaymentPeriodicity: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentPeriodicity' + voucherPaymentPeriodicityAdditionalInfo: + $ref: '#/components/schemas/TreasureTitlesVoucherPaymentPeriodicityAdditionalInfo' + TreasureTitlesIncomeTax: + description: | + Valor do imposto de renda provisionado considerando a alíquota vigente na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesIncomeTaxAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesIncomeTaxAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesIndexer: + description: 'Índice utilizado como referência para a correção da rentabilidade e/ou rendimentos do ativo (CDI, DI , TR, IPCA, IGP_M, IGP_DI, INPC, BCP, TLC, SELIC, PRE_FIXADO e OUTROS)' + example: CDI + enum: + - CDI + - DI + - TR + - IPCA + - IGP_M + - IGP_DI + - INPC + - BCP + - TLC + - SELIC + - PRE_FIXADO + - OUTROS + type: string + TreasureTitlesIndexerAdditionalInfo: + description: | + Informações adicionais do indexador. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor 'OUTROS'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Dólar + type: string + TreasureTitlesInvestmentId: + description: | + Identifica de forma única o relacionamento do cliente com o + produto, mantendo as regras de imutabilidade dentro da instituição + transmissora. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + type: string + TreasureTitlesIsinCode: + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora + : código universal que identifica cada valor mobiliário ou instrumento + financeiro, conforme Norma ISO 6166. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + type: string + TreasureTitlesMetaTransaction: + type: object + description: Meta informações referente a 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' + additionalProperties: false + TreasureTitlesNetAmount: + description: 'Valor do investimento posterior a dedução de impostos, taxas e tarifas (se houver), atualizado (a mercado) na data de referência.' + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesNetAmountAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesNetAmountAmount: + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesPostFixedIndexerPercentage: + description: | + Percentual do indexador da aquisição do contrato. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido de forma diferente de ‘PRE FIXADO’. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '1.100000' + type: string + format: double + TreasureTitlesPreFixedRate: + description: | + Valor da taxa da aquisição do contrato. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'indexer' for preenchido com o valor ‘PRE FIXADO’. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + type: string + format: double + TreasureTitlesProductName: + description: Nome do título em questão, conforme listado no site do Tesouro Direto [https://www.tesourodireto.com.br](https://www.tesourodireto.com.br) + maxLength: 70 + pattern: '[\w\W\s]*' + example: Tesouro Selic 2025 + type: string + TreasureTitlesPurchaseDate: + description: Data de aquisição do cliente. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesPurchaseUnitPrice: + description: Valor unitário negociado com o cliente na data de aquisição. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesQuantity: + description: Quantidade de títulos detidos na data da posição do cliente. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$ ' + format: double + type: string + example: '1000.015' + TreasureTitlesRatePeriodicity: + description: 'Periodicidade da taxa de remuneração (mensal, anual, diário e semestral)' + example: DIARIO + enum: + - MENSAL + - ANUAL + - DIARIO + - SEMESTRAL + type: string + TreasureTitlesReferenceDateTime: + description: Data da última posição consolidada disponível a que se referem os dados transacionais do cliente disponíveis nos canais eletrônicos. + maxLength: 20 + pattern: '(^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$)' + example: '2022-07-21T17:32:00Z' + type: string + format: date-time + TreasureTitlesRemuneration: + description: Objeto para detalhamento de remuneração do titulo. + type: object + required: + - indexer + - ratePeriodicity + - calculation + properties: + indexer: + $ref: '#/components/schemas/TreasureTitlesIndexer' + indexerAdditionalInfo: + $ref: '#/components/schemas/TreasureTitlesIndexerAdditionalInfo' + preFixedRate: + $ref: '#/components/schemas/TreasureTitlesPreFixedRate' + postFixedIndexerPercentage: + $ref: '#/components/schemas/TreasureTitlesPostFixedIndexerPercentage' + ratePeriodicity: + $ref: '#/components/schemas/TreasureTitlesRatePeriodicity' + calculation: + $ref: '#/components/schemas/TreasureTitlesCalculation' + TreasureTitlesRemunerationTransactionRate: + description: | + Taxa de remuneração da movimentação. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'type' for preenchido com o valor 'ENTRADA'. + maxLength: 8 + minLength: 8 + pattern: '^\d{1}\.\d{6}$' + example: '0.300000' + type: string + format: double + TreasureTitlesTransactionDate: + description: Data da movimentação. + maxLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + type: string + format: date + TreasureTitlesTransactionGrossValue: + description: | + Valor bruto da movimentação + + Nos casos em que se tratar de movimento de saída e a instituição não tiver a informação de IR recolhido na fonte, o valor bruto e o valor líquido expostos deverão ser iguais. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValueAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionGrossValueCurrency' + TreasureTitlesTransactionGrossValueAmount: + description: 'Valor bruto da transação (Preço unitário da movimentação x Quantidade) ' + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionGrossValueCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesTransactionId: + description: Código ou identificador único prestado pela instituição para individualizar o movimento. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + type: string + TreasureTitlesTransactionNetValue: + description: | + Valor líquido da transação + + Nos casos em que se tratar de movimento de saída e a instituição não tiver a informação de IR recolhido na fonte, o valor bruto e o valor líquido expostos deverão ser iguais. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValueAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionNetValueCurrency' + TreasureTitlesTransactionNetValueAmount: + description: Valor relacionado ao objeto + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionNetValueCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesTransactionQuantity: + description: Quantidade de títulos envolvidos na movimentação. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.25' + type: string + format: double + TreasureTitlesTransactionType: + description: 'Compra, venda, cancelamento, vencimento, pagamento de juros, amortização, transferência de titularidade, transferência de custódia e outros.' + example: AMORTIZACAO + enum: + - COMPRA + - VENDA + - CANCELAMENTO + - VENCIMENTO + - PAGAMENTO_JUROS + - AMORTIZACAO + - TRANSFERENCIA_TITULARIDADE + - TRANSFERENCIA_CUSTODIA + - OUTROS + type: string + TreasureTitlesTransactionUnitPrice: + description: Preço unitário bruto negociado na transação. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPriceAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesTransactionUnitPriceCurrency' + TreasureTitlesTransactionUnitPriceAmount: + description: Valor relacionado ao objeto + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '1000.04' + type: string + format: double + TreasureTitlesTransactionUnitPriceCurrency: + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217' + maxLength: 3 + pattern: '^[A-Z]{3}$' + example: BRL + type: string + TreasureTitlesType: + description: | + Tipo de movimentação na visão de investimento (Nos casos de + pagamento de juros e amortização) fica convencionado que será considerado que + o tipo de movimento será saída. + example: ENTRADA + enum: + - ENTRADA + - SAIDA + type: string + TreasureTitlesUpdatedUnitPrice: + description: Valor bruto unitário atualizado (a mercado) na data de referência. + type: object + required: + - amount + - currency + properties: + amount: + $ref: '#/components/schemas/TreasureTitlesAmount' + currency: + $ref: '#/components/schemas/TreasureTitlesCurrency' + TreasureTitlesVoucherPaymentIndicator: + description: Indicativo se há pagamento de cupom (Sim ou não). + example: SIM + enum: + - SIM + - NAO + type: string + TreasureTitlesVoucherPaymentPeriodicity: + description: | + Em caso de haver pagamento de cupom, descrever a periodicidade + (mensal, trimestral, semestral, anual, irregular e outros) + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'voucherPaymentIndicator' for preenchido com o valor 'SIM'. + example: MENSAL + enum: + - MENSAL + - TRIMESTRAL + - SEMESTRAL + - ANUAL + - IRREGULAR + - OUTROS + type: string + TreasureTitlesVoucherPaymentPeriodicityAdditionalInfo: + description: | + Informações adicionais da periodicidade de pagamento de cupom. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'voucherPaymentPeriodicity' for preenchido com o valor 'OUTROS'. + maxLength: 50 + pattern: '[\w\W\s]*' + example: Diária + type: string + securitySchemes: + OAuth2AuthorizationCode: + 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: + treasure-titles: Escopo necessário para acesso à API Treasure Titles - Open Finance Brasil. O controle dos endpoints específicos é feito via permissions. + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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]*' + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + format: int32 + maximum: 1000 + 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + fromTransactionDateMaxLimited: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + toTransactionDateMaxLimited: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + maxLength: 10 + format: date + example: '2021-05-21' + responses: + OkResponseTreasureTitlesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesBalances' + OkResponseTreasureTitlesProductList: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesListProduct' + ResponseTreasureTitlesIdentifyProduct: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesIdentifyProduct' + ResponseTreasureTitlesProductTransactions: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesProductTransactions' + ResponseTreasureTitlesProductTransactionsCurrent: + description: Dados obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseTreasureTitlesProductTransactions' + BadRequest: + description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Forbidden: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + GatewayTimeout: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotAcceptable: + description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + TooManyRequests: + description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + UnprocessableEntity: + description: 'A sintaxe da requisição esta correta, mas não foi possível processar as instruções presentes.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseError' + BadRequestWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + ForbiddenWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + GatewayTimeoutWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + NotAcceptableWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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/LockedWithAdditionalProperties' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/LockedWithAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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/LockedWithAdditionalProperties' diff --git a/swagger-apis/treasure-titles/index.html b/swagger-apis/treasure-titles/index.html index 00bbf6e2f..e5a2fecea 100644 --- a/swagger-apis/treasure-titles/index.html +++ b/swagger-apis/treasure-titles/index.html @@ -45,8 +45,11 @@ window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}], - "urls.primaryName": "1.0.0-rc1.0", // default spec + urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/variable-incomes/1.0.0-rc2.0.yml b/swagger-apis/variable-incomes/1.0.0-rc2.0.yml new file mode 100644 index 000000000..4a5204abb --- /dev/null +++ b/swagger-apis/variable-incomes/1.0.0-rc2.0.yml @@ -0,0 +1,1678 @@ +openapi: 3.0.0 +info: + title: API Variable Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Variável Open Finance Brasil – Fase 4. + API que retorna informações de operações de investimento do tipo Renda Variável mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente, movimentações financeiras e detalhes da nota de negociação. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. + A granularidade de exposição de operações de renda variável se dá por cada ativo (ticker) da carteira do cliente. + Ações escriturais não fazem parte do escopo do Open Finance Brasil. + Operações de day trade devem ser incluídas nos endpoints. + Segue abaixo tabela com o escopo de produtos a ser considerado para compartilhamento: + ``` + |----------------------|-------------------------------|----------------------|-----------------------------------| + | CLASSE DE ATIVOS | PRODUTO | SUBPRODUTO | DENOMINAÇÃO | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de Investimentos | - | FIAGRO | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Ações | Subscrição | Bonus / Direito / Recibo | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de Investimentos | Fundo imobiliario | FII | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Ações | À vista | ON / PN / UNIT | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF | ETF de Renda Variável | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF | ETF Internacional | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF Renda Fixa | ETF Renda Fixa | + |----------------------|-------------------------------|----------------------|-----------------------------------| + ``` + version: 1.0.0-rc2.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/variable-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/variable-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Variável identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Variável identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + - name: Broker Note Details + description: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: variableIncomesGetInvestments + description: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OKResponseVariableIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/OKResponseVariableIncomesProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentIdBalances + description: Obtém a posição da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseVariableIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/OKResponseVariableIncomesTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/OKResponseVariableIncomesTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/broker-notes/{brokerNoteId}': + get: + tags: + - Broker Note Details + summary: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. + operationId: variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId + description: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $ref: '#/components/parameters/BrokerNoteId' + - $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/ResponseVariableIncomesBroker' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes +components: + schemas: + ResponseVariableIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesProductListData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseVariableIncomesProductIdentificationData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/ResponseVariableIncomesBalanceData' + links: + $ref: '#/components/schemas/VariableIncomesBalancesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesBalancesMeta' + additionalProperties: false + ResponseVariableIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseVariableIncomesTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsCurrentData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseVariableIncomesProductListData: + type: object + description: Lista de ativos de renda variável mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21281590001660' + investmentId: + type: string + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + ResponseVariableIncomesProductIdentificationData: + type: object + required: + - issuerInstitutionCnpjNumber + - isinCode + - ticker + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora: código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + ticker: + type: string + description: Código de negociação para identificação de ativos negociados em bolsa. + maxLength: 35 + pattern: '[\w\W\s]*' + example: PETR4 + additionalProperties: false + ResponseVariableIncomesBalanceData: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - referenceDate + - priceFactor + - grossAmount + - blockedBalance + - quantity + - closingPrice + properties: + referenceDate: + type: string + format: date + description: Posição fechada para o ativo da data do dia anterior. + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + maxLength: 10 + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + grossAmount: + $ref: '#/components/schemas/VariableIncomesBalancesGrossAmount' + blockedBalance: + $ref: '#/components/schemas/VariableIncomesBalancesBlockedBalance' + quantity: + type: string + format: double + description: Quatidade total do ativo na data de referência. + pattern: '^-?\d{1,15}\.\d{2,8}$' + maxLength: 25 + example: '1000.00000004' + closingPrice: + $ref: '#/components/schemas/VariableIncomesBalancesClosingPrice' + ResponseVariableIncomesTransactionsData: + type: object + required: + - type + - transactionType + - transactionDate + - transactionValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsType' + transactionType: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: | + Data da movimentação. + + [Restrição] Data do pregão: compartilhar movimentos até a data da posição. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + transactionUnitPrice: + type: object + description: | + Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuantity: + type: string + format: double + description: | + Quantidade de ativos movimentados. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.00000025' + transactionValue: + type: object + description: Valor da operação realizada pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + brokerNoteId: + type: string + description: | + Identificador da nota de negociação. + + [Restrição] Informação de envio obrigatório caso o motivo da movimentação seja compra ou venda. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: XWYZ555019929279212650822221989319252233 + additionalProperties: false + ResponseVariableIncomesTransactionsCurrentData: + type: object + required: + - type + - transactionType + - transactionDate + - transactionValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsCurrentType' + transactionType: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsCurrentTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: | + Data da movimentação. + + [Restrição] Data do pregão: compartilhar movimentos até a data da posição. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + transactionUnitPrice: + type: object + description: | + Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuantity: + type: string + format: double + description: | + Quantidade de ativos movimentados. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.00000025' + transactionValue: + type: object + description: Valor da operação realizada pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + brokerNoteId: + type: string + description: | + Identificador da nota de negociação. + + [Restrição] Informação de envio obrigatório caso o motivo da movimentação seja compra ou venda. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: XWYZ555019929279212650822221989319252233 + additionalProperties: false + VariableIncomesBalancesBlockedBalance: + type: object + description: 'Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesClosingPrice: + type: object + description: Preço de fechamento da data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesGrossAmount: + type: object + description: 'Valor do investimento anterior à dedução de impostos, taxas e tarifas (se houver), atualizado na data de referência. Quantidade de ativos dividido pelo Fator de cotação e multiplicado pelo pelo preço de fechamento da data de referência.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + VariableIncomesBalancesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + MetaSingle: + type: object + description: Meta informação referente a API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + VariableIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + VariableIncomesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + EnumVariableIncomesTransactionsType: + type: string + description: | + Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumVariableIncomesTransactionsTransactionType: + type: string + description: | + O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. + O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. + A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. + A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. + enum: + - COMPRA + - VENDA + - DIVIDENDOS + - JCP + - ALUGUEIS + - TRANSFERENCIA_CUSTODIA + - TRANSFERENCIA_TITULARIDADE + - OUTROS + example: DIVIDENDOS + EnumVariableIncomesTransactionsCurrentType: + type: string + description: | + Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumVariableIncomesTransactionsCurrentTransactionType: + type: string + description: | + O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. + O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. + A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. + A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. + enum: + - COMPRA + - VENDA + - DIVIDENDOS + - JCP + - ALUGUEIS + - TRANSFERENCIA_CUSTODIA + - TRANSFERENCIA_TITULARIDADE + - OUTROS + example: DIVIDENDOS + ResponseVariableIncomesBroker: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseVariableIncomesBrokerData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesBrokerData: + type: object + required: + - brokerNoteNumber + - grossValue + - brokerageFee + - clearingSettlementFee + - clearingRegistrationFee + - stockExchangeAssetTradeNoticeFee + - stockExchangeFee + - clearingCustodyFee + - taxes + - incomeTax + - netValue + properties: + brokerNoteNumber: + type: string + description: Identificador da nota de negociação. + maxLength: 16 + pattern: '^\d{1,16}$' + example: '1854009930314350' + grossValue: + type: object + description: o valor da nota de negociação é o somatório das operações realizadas. Total de compra e venda do dia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '5000.0024' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + brokerageFee: + type: object + description: | + a taxa de corretagem incide sobre o valor bruto da nota de negociação, e é livremente pactuada entre o investidor e o seu intermediário. + Pode ser cobrada como um valor fixo por operação, ou um como um percentual sobre o valor negociado, ou ainda de forma mista, conforme guia CVM do investidor. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingSettlementFee: + type: object + description: Valor cobrado para liquidação na custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingRegistrationFee: + type: object + description: Valor cobrado para registro na custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + stockExchangeAssetTradeNoticeFee: + type: object + description: Valor cobrada pela bolsa pelo aviso de negociação de ativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + stockExchangeFee: + type: object + description: Valor cobrado pela bolsa para remunerar os serviços de registro prestados. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingCustodyFee: + type: object + description: Taxa cobrada pelas IF para custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + taxes: + type: object + description: 'Impostos cobrados na operação, exceto imposto de renda.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: Imposto de renda retido na fonte. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + netValue: + type: object + description: Valor líquido da nota de negociação após despesas com taxa de corretagem, taxa de liquidação, taxa de registro, taxa A.N.A, emolumentos, taxa de custódia, impostos e IRRF. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '4889.0012' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + parameters: + InvestmentId: + name: investmentId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2022-01-01' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2022-12-31' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2023-02-01' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2023-02-01' + BrokerNoteId: + name: brokerNoteId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + securitySchemes: + OAuth2AuthorizationCode: + 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: + variable-incomes: Escopo necessário para acesso à API Variable Incomes. O controle dos endpoints específicos é feito via permissions. + responses: + ResponseVariableIncomesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesBalances' + OKResponseVariableIncomesProductList: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesProductList' + OKResponseVariableIncomesProductIdentification: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesProductIdentification' + OKResponseVariableIncomesTransactions: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesTransactions' + OKResponseVariableIncomesTransactionsCurrent: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsCurrent' + ResponseVariableIncomesBroker: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesBroker' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' + MethodNotAllowed: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + 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/responses/Locked/content/application~1json%3B%20charset%3Dutf-8/schema' + BadRequestWithAdditionalProperties: + 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/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + ForbiddenWithAdditionalProperties: + description: O token tem escopo incorreto ou uma política de segurança foi violada + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + GatewayTimeoutWithAdditionalProperties: + description: GATEWAY TIMEOUT - A requisição não foi atendida dentro do tempo limite estabelecido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' + MethodNotAllowedWithAdditionalProperties: + description: O consumidor tentou acessar o recurso com um método não suportado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + NotAcceptableWithAdditionalProperties: + 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/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + TooManyRequestsWithAdditionalProperties: + 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/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + UnprocessableEntityWithAdditionalProperties: + 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/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' + SiteIsOverloadedWithAdditionalProperties: + 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/responses/LockedWithAdditionalProperties/content/application~1json%3B%20charset%3Dutf-8/schema' diff --git a/swagger-apis/variable-incomes/1.0.0-rc3.0.yml b/swagger-apis/variable-incomes/1.0.0-rc3.0.yml new file mode 100644 index 000000000..69cde7fc6 --- /dev/null +++ b/swagger-apis/variable-incomes/1.0.0-rc3.0.yml @@ -0,0 +1,1791 @@ +openapi: 3.0.0 +info: + title: API Variable Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Variável Open Finance Brasil – Fase 4. + API que retorna informações de operações de investimento do tipo Renda Variável mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente, movimentações financeiras e detalhes da nota de negociação. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. + A granularidade de exposição de operações de renda variável se dá por cada ativo (ticker) da carteira do cliente. + Compartilhamento considera lote padrão e fracionário, entretanto, no Open Finance Brasil, as informações são consolidadas via ticker do lote padrão. + A defasagem em relação ao canal eletrônico da instituição deve ser o fechamento (pregão) do dia anterior (d-1). + + Em relação ao aluguel de ações: neste momento não faz parte do escopo de compartilhamento a carteira/posição de aluguel do cliente (ativos alugados e movimentações relacionadas a esses ativos). + Apenas deve ser compartilhado as transações de pagamento ou recebimento de juros oriundos dos contratos de ações alugadas (ou doadas) pelos clientes. + + Segue abaixo tabela com o escopo de produtos a ser considerado para compartilhamento: + ``` + |----------------------|-------------------------------|----------------------|-----------------------------------| + | CLASSE DE ATIVOS | PRODUTO | SUBPRODUTO | DENOMINAÇÃO | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de Investimentos | - | FIAGRO | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Ações | Subscrição | Bonus / Direito / Recibo | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de Investimentos | Fundo imobiliario | FII | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Ações | À vista | ON / PN / UNIT | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF | ETF de Renda Variável | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF | ETF Internacional | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF Renda Fixa | ETF Renda Fixa | + |----------------------|-------------------------------|----------------------|-----------------------------------| + ``` + version: 1.0.0-rc3.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/variable-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/variable-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Variável identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Variável identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + - name: Broker Note Details + description: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: variableIncomesGetInvestments + description: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OKResponseVariableIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/OKResponseVariableIncomesProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Renda Variável identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + - Fator de preço: 0.00 + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseVariableIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/OKResponseVariableIncomesTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/OKResponseVariableIncomesTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/broker-notes/{brokerNoteId}': + get: + tags: + - Broker Note Details + summary: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. + operationId: variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId + description: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $ref: '#/components/parameters/BrokerNoteId' + - $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/ResponseVariableIncomesBroker' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes +components: + schemas: + ResponseVariableIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesProductListData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseVariableIncomesProductIdentificationData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/ResponseVariableIncomesBalanceData' + links: + $ref: '#/components/schemas/VariableIncomesBalancesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesBalancesMeta' + additionalProperties: false + ResponseVariableIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseVariableIncomesTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsCurrentData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseVariableIncomesProductListData: + type: object + description: Lista de ativos de renda variável mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21281590001660' + investmentId: + type: string + description: Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. Nos casos em que o cliente, após completar 12 meses da última movimentação e com quantidade de ativos zerada (cliente não tem mais posse do produto sob custódia da transmissora), compre novamente o ativo que já investiu em períodos passados, manter o mesmo investmentId anteriormente utilizado. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + ResponseVariableIncomesProductIdentificationData: + type: object + required: + - isinCode + - ticker + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora. Caso a transmissora possua a informação o envio deste campo é obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora: código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + ticker: + type: string + description: Código de negociação para identificação de ativos negociados em bolsa. + maxLength: 35 + pattern: '[\w\W\s]*' + example: PETR4 + additionalProperties: false + ResponseVariableIncomesBalanceData: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - referenceDate + - priceFactor + - grossAmount + - blockedBalance + - quantity + - closingPrice + properties: + referenceDate: + type: string + format: date + description: Posição fechada para o ativo da data do dia anterior. + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + maxLength: 10 + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + grossAmount: + $ref: '#/components/schemas/VariableIncomesBalancesGrossAmount' + blockedBalance: + $ref: '#/components/schemas/VariableIncomesBalancesBlockedBalance' + quantity: + type: string + format: double + description: Quatidade total do ativo na data de referência. + pattern: '^-?\d{1,15}\.\d{2,8}$' + maxLength: 25 + example: '1000.00000004' + closingPrice: + $ref: '#/components/schemas/VariableIncomesBalancesClosingPrice' + ResponseVariableIncomesTransactionsData: + type: object + required: + - type + - transactionType + - transactionDate + - transactionValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsType' + transactionType: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: | + Data da movimentação. + + [Restrição] Data do pregão: compartilhar movimentos até a data da posição. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + transactionUnitPrice: + type: object + description: | + Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuantity: + type: string + format: double + description: | + Quantidade de ativos movimentados. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.00000025' + transactionValue: + type: object + description: Valor da operação realizada pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + brokerNoteId: + type: string + description: | + Identificador da nota de negociação. + + [Restrição] Informação de envio obrigatório caso o motivo da movimentação seja compra ou venda. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: XWYZ555019929279212650822221989319252233 + additionalProperties: false + ResponseVariableIncomesTransactionsCurrentData: + type: object + required: + - type + - transactionType + - transactionDate + - transactionValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsCurrentType' + transactionType: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsCurrentTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: | + Data da movimentação. + + [Restrição] Data do pregão: compartilhar movimentos até a data da posição. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + transactionUnitPrice: + type: object + description: | + Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuantity: + type: string + format: double + description: | + Quantidade de ativos movimentados. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.00000025' + transactionValue: + type: object + description: Valor da operação realizada pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + brokerNoteId: + type: string + description: | + Identificador da nota de negociação. + + [Restrição] Informação de envio obrigatório caso o motivo da movimentação seja compra ou venda. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: XWYZ555019929279212650822221989319252233 + additionalProperties: false + VariableIncomesBalancesBlockedBalance: + type: object + description: 'Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros).' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesClosingPrice: + type: object + description: Preço de fechamento da data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesGrossAmount: + type: object + description: 'Valor do investimento anterior à dedução de impostos, taxas e tarifas (se houver), atualizado na data de referência. Quantidade de ativos dividido pelo Fator de cotação e multiplicado pelo pelo preço de fechamento da data de referência.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + VariableIncomesBalancesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + MetaSingle: + type: object + description: Meta informação referente a API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + VariableIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + VariableIncomesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + EnumVariableIncomesTransactionsType: + type: string + description: | + Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumVariableIncomesTransactionsTransactionType: + type: string + description: | + O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. + O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. + A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. + A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. + enum: + - COMPRA + - VENDA + - DIVIDENDOS + - JCP + - ALUGUEIS + - TRANSFERENCIA_CUSTODIA + - TRANSFERENCIA_TITULARIDADE + - OUTROS + example: DIVIDENDOS + EnumVariableIncomesTransactionsCurrentType: + type: string + description: | + Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. + enum: + - ENTRADA + - SAIDA + example: ENTRADA + EnumVariableIncomesTransactionsCurrentTransactionType: + type: string + description: | + O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. + O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. + A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. + A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. + enum: + - COMPRA + - VENDA + - DIVIDENDOS + - JCP + - ALUGUEIS + - TRANSFERENCIA_CUSTODIA + - TRANSFERENCIA_TITULARIDADE + - OUTROS + example: DIVIDENDOS + ResponseVariableIncomesBroker: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseVariableIncomesBrokerData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesBrokerData: + type: object + required: + - brokerNoteNumber + - grossValue + - brokerageFee + - clearingSettlementFee + - clearingRegistrationFee + - stockExchangeAssetTradeNoticeFee + - stockExchangeFee + - clearingCustodyFee + - taxes + - incomeTax + - netValue + properties: + brokerNoteNumber: + type: string + description: Identificador da nota de negociação. + maxLength: 16 + pattern: '^\d{1,16}$' + example: '1854009930314350' + grossValue: + type: object + description: o valor da nota de negociação é o somatório das operações realizadas. Total de compra e venda do dia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '5000.0024' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + brokerageFee: + type: object + description: | + a taxa de corretagem incide sobre o valor bruto da nota de negociação, e é livremente pactuada entre o investidor e o seu intermediário. + Pode ser cobrada como um valor fixo por operação, ou um como um percentual sobre o valor negociado, ou ainda de forma mista, conforme guia CVM do investidor. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingSettlementFee: + type: object + description: Valor cobrado para liquidação na custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingRegistrationFee: + type: object + description: Valor cobrado para registro na custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + stockExchangeAssetTradeNoticeFee: + type: object + description: Valor cobrada pela bolsa pelo aviso de negociação de ativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + stockExchangeFee: + type: object + description: Valor cobrado pela bolsa para remunerar os serviços de registro prestados. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingCustodyFee: + type: object + description: Taxa cobrada pelas IF para custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + taxes: + type: object + description: 'Impostos cobrados na operação, exceto imposto de renda.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: Imposto de renda retido na fonte. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + netValue: + type: object + description: Valor líquido da nota de negociação após despesas com taxa de corretagem, taxa de liquidação, taxa de registro, taxa A.N.A, emolumentos, taxa de custódia, impostos e IRRF. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '4889.0012' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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' + 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/MetaWithAbleAdditionalProperties' + MetaWithAbleAdditionalProperties: + 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2022-01-01' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2022-12-31' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2023-02-01' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2023-02-01' + BrokerNoteId: + name: brokerNoteId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + securitySchemes: + OAuth2AuthorizationCode: + 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: + variable-incomes: Escopo necessário para acesso à API Variable Incomes. O controle dos endpoints específicos é feito via permissions. + responses: + ResponseVariableIncomesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesBalances' + OKResponseVariableIncomesProductList: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesProductList' + OKResponseVariableIncomesProductIdentification: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesProductIdentification' + OKResponseVariableIncomesTransactions: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesTransactions' + OKResponseVariableIncomesTransactionsCurrent: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsCurrent' + ResponseVariableIncomesBroker: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesBroker' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + 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' + ForbiddenWithAdditionalProperties: + 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' + GatewayTimeoutWithAdditionalProperties: + 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' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' + MethodNotAllowedWithAdditionalProperties: + 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' + NotAcceptableWithAdditionalProperties: + 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' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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' diff --git a/swagger-apis/variable-incomes/1.0.0.yml b/swagger-apis/variable-incomes/1.0.0.yml new file mode 100644 index 000000000..92ee3fa55 --- /dev/null +++ b/swagger-apis/variable-incomes/1.0.0.yml @@ -0,0 +1,1837 @@ +openapi: 3.0.0 +info: + title: API Variable Incomes - Open Finance Brasil + description: | + API de informações de operações de Renda Variável Open Finance Brasil – Fase 4. + API que retorna informações de operações de investimento do tipo Renda Variável mantidas nas instituições transmissoras por seus clientes, incluindo dados como informações do produto, quantidade, saldos em posição do cliente, movimentações financeiras e detalhes da nota de negociação. + Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os endpoints. + A granularidade de exposição de operações de renda variável se dá por cada ativo (ticker) da carteira do cliente. + Compartilhamento considera lote padrão e fracionário, entretanto, no Open Finance Brasil, as informações são consolidadas via ticker do lote padrão. + A defasagem em relação ao canal eletrônico da instituição deve ser o fechamento (pregão) do dia anterior (d-1). + + Em relação ao aluguel de ações: neste momento não faz parte do escopo de compartilhamento a carteira/posição de aluguel do cliente (ativos alugados e movimentações relacionadas a esses ativos). + Apenas deve ser compartilhado as transações de pagamento ou recebimento de juros oriundos dos contratos de ações alugadas (ou doadas) pelos clientes. + + Para o identificador do investimento (investmentId) deve ser adotado o seguinte comportamento: + + - Após 12 meses sem movimentações e com quantidade de ativos zerada, o resourceId correspondente ao investmentId em questão deve passar ao status UNAVAILABLE (considerando consentimento válido); + + - Nas situações em que o cliente compre novamente o ativo após um período de 12 meses sem movimentação e com quantidade de ativos zerada, o mesmo identificador (investmentId) deve ser utilizado. Especificamente para tais produtos, o status do recurso na resources deve passar de UNAVAILABLE para AVAILABLE. + + Segue abaixo tabela com o escopo de produtos a ser considerado para compartilhamento: + ``` + |----------------------|-------------------------------|----------------------|-----------------------------------| + | CLASSE DE ATIVOS | PRODUTO | SUBPRODUTO | DENOMINAÇÃO | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de Investimentos | - | FIAGRO | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Ações | Subscrição | Bonus / Direito / Recibo | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de Investimentos | Fundo imobiliario | FII | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Ações | À vista | ON / PN / UNIT | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF | ETF de Renda Variável | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF | ETF Internacional | + |----------------------|-------------------------------|----------------------|-----------------------------------| + | Renda Variável | Fundos de índices | ETF Renda Fixa | ETF Renda Fixa | + |----------------------|-------------------------------|----------------------|-----------------------------------| + ``` + version: 1.0.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/variable-incomes/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/variable-incomes/v1' + description: Servidor de Homologação +tags: + - name: Product List + description: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + - name: Product Identification + description: Obtém os dados da operação de Renda Variável identificada por investmentId. + - name: Balances + description: Obtém a posição da operação de Renda Variável identificada por investmentId. + - name: Transactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + - name: Transactions Current + description: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + - name: Broker Note Details + description: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. +paths: + /investments: + get: + tags: + - Product List + summary: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + operationId: variableIncomesGetInvestments + description: Obtém a lista de operações de Renda Variável mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + 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/OKResponseVariableIncomesProductList' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}': + get: + tags: + - Product Identification + summary: Obtém os dados da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentId + description: Obtém os dados da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/OKResponseVariableIncomesProductIdentification' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/balances': + get: + tags: + - Balances + summary: Obtém a posição da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentIdBalances + description: | + Obtém a posição da operação de Renda Variável identificada por investmentId. + + Nos casos em que não houver posição para o investimento, ou seja, quantidade de ativos e valores monetários zerados, mas o mesmo ainda estiver no prazo de exposição (até 12 meses após a última movimentação), deve se retornar status code 200 e para o payload de retorno considerar os valores abaixo. Campos não obrigatórios não devem ser retornados: + + - Valores monetários: 0.00 + - Quantidade de ativos: 0.00 + - Data e hora da última posição: mesmo conteúdo do campo requestDateTime + - Fator de preço: 0.00 + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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/ResponseVariableIncomesBalances' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/transactions': + get: + tags: + - Transactions + summary: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + operationId: variableIncomesGetInvestmentsInvestmentIdTransactions + description: Obtém as movimentações históricas (últimos 12 meses) da operação de Renda Variável identificada por investmentId. + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDate' + - $ref: '#/components/parameters/toTransactionDate' + responses: + '200': + $ref: '#/components/responses/OKResponseVariableIncomesTransactions' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/investments/{investmentId}/transactions-current': + get: + tags: + - Transactions Current + summary: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + operationId: variableIncomesGetInvestmentsInvestmentIdTransactionsCurrent + description: 'Obtém as movimentações recentes da operação de Renda Variável identificada por investmentId. O período a ser considerado para apresentação de movimentações será de até 7 dias - 7 dias anteriores da consulta, incluindo o dia da consulta (D-6).' + parameters: + - $ref: '#/components/parameters/InvestmentId' + - $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' + - $ref: '#/components/parameters/fromTransactionDateCurrent' + - $ref: '#/components/parameters/toTransactionDateCurrent' + responses: + '200': + $ref: '#/components/responses/OKResponseVariableIncomesTransactionsCurrent' + '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: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes + '/broker-notes/{brokerNoteId}': + get: + tags: + - Broker Note Details + summary: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. + operationId: variableIncomesGetInvestmentsInvestmentIdBrokerNotesBrokerNoteId + description: | + Obtém as informações da nota de negociação identificado nas movimentações de compra e venda de ativos em bolsa. + O brokerNoteId é enviado nos movimentos de compra ou venda de ativos e deve ser passada como parâmetro de entrada no endpoint “Nota de Negociação”.Como conteúdo do campo brokerNoteId é esperado que a transmissora gere um identificar único, imutável, para cada número (natural) de nota de negociação. + parameters: + - $ref: '#/components/parameters/BrokerNoteId' + - $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/ResponseVariableIncomesBroker' + '400': + $ref: '#/components/responses/BadRequestWithAdditionalProperties' + '401': + $ref: '#/components/responses/UnauthorizedWithAdditionalProperties' + '403': + $ref: '#/components/responses/ForbiddenWithAdditionalProperties' + '404': + $ref: '#/components/responses/NotFoundWithAdditionalProperties' + '405': + $ref: '#/components/responses/MethodNotAllowedWithAdditionalProperties' + '406': + $ref: '#/components/responses/NotAcceptableWithAdditionalProperties' + '422': + $ref: '#/components/responses/UnprocessableEntityWithAdditionalProperties' + '423': + $ref: '#/components/responses/LockedWithAdditionalProperties' + '429': + $ref: '#/components/responses/TooManyRequestsWithAdditionalProperties' + '500': + $ref: '#/components/responses/InternalServerErrorWithAdditionalProperties' + '504': + $ref: '#/components/responses/GatewayTimeoutWithAdditionalProperties' + '529': + $ref: '#/components/responses/SiteIsOverloadedWithAdditionalProperties' + default: + $ref: '#/components/responses/DefaultWithAdditionalProperties' + security: + - OAuth2AuthorizationCode: + - openid + - 'consent:consentId' + - variable-incomes +components: + schemas: + ResponseVariableIncomesProductList: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesProductListData' + links: + $ref: '#/components/schemas/VariableIncomesProductListLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesProductIdentification: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseVariableIncomesProductIdentificationData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesBalances: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/ResponseVariableIncomesBalanceData' + links: + $ref: '#/components/schemas/VariableIncomesBalancesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesBalancesMeta' + additionalProperties: false + ResponseVariableIncomesTransactions: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseVariableIncomesTransactionsCurrent: + type: object + required: + - data + - links + - meta + properties: + data: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsCurrentData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/MetaSingle' + additionalProperties: false + ResponseVariableIncomesProductListData: + type: object + description: Lista de ativos de renda variável mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento. + required: + - brandName + - companyCnpj + - investmentId + properties: + brandName: + type: string + 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).' + pattern: '[\w\W\s]*' + example: Organização A + maxLength: 80 + companyCnpj: + type: string + 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.' + maxLength: 14 + pattern: '^\d{14}$' + example: '21281590001660' + investmentId: + type: string + description: Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. Nos casos em que o cliente, após completar 12 meses da última movimentação e com quantidade de ativos zerada (cliente não tem mais posse do produto sob custódia da transmissora), compre novamente o ativo que já investiu em períodos passados, manter o mesmo investmentId anteriormente utilizado. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: '92792126019929200000000000000000000000000' + additionalProperties: false + ResponseVariableIncomesProductIdentificationData: + type: object + required: + - isinCode + - ticker + properties: + issuerInstitutionCnpjNumber: + type: string + description: CNPJ da instituição emissora. Caso a transmissora possua a informação o envio deste campo é obrigatório. + maxLength: 14 + pattern: '^\d{14}$' + example: '11225860000140' + isinCode: + type: string + description: | + Código ISIN da emissão, Código ISIN do produto, Código da emissora: código universal que identifica cada valor mobiliário ou instrumento financeiro, conforme Norma ISO 6166. + maxLength: 12 + pattern: '^[A-Z]{2}([A-Z0-9]){9}\d{1}$' + example: BRCST4CTF001 + ticker: + type: string + description: Código de negociação para identificação de ativos negociados em bolsa. + maxLength: 35 + pattern: '[\w\W\s]*' + example: PETR4 + additionalProperties: false + ResponseVariableIncomesBalanceData: + type: object + description: Lista de títulos de renda fixa bancária mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento + required: + - referenceDate + - priceFactor + - grossAmount + - blockedBalance + - quantity + - closingPrice + properties: + referenceDate: + type: string + format: date + description: Posição fechada para o ativo da data do dia anterior. + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2023-01-07' + maxLength: 10 + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + grossAmount: + $ref: '#/components/schemas/VariableIncomesBalancesGrossAmount' + blockedBalance: + $ref: '#/components/schemas/VariableIncomesBalancesBlockedBalance' + quantity: + type: string + format: double + description: Quatidade total do ativo na data de referência. + pattern: '^-?\d{1,15}\.\d{2,8}$' + maxLength: 25 + example: '1000.00000004' + closingPrice: + $ref: '#/components/schemas/VariableIncomesBalancesClosingPrice' + ResponseVariableIncomesTransactionsData: + type: object + required: + - type + - transactionType + - transactionDate + - transactionValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsType' + transactionType: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: | + Data da movimentação. + + [Restrição] Data do pregão: compartilhar movimentos até a data da posição. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + transactionUnitPrice: + type: object + description: | + Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuantity: + type: string + format: double + description: | + Quantidade de ativos movimentados. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.00000025' + transactionValue: + type: object + description: Valor da operação realizada pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + brokerNoteId: + type: string + description: | + Identificador da nota de negociação. + + [Restrição] Informação de envio obrigatório caso o motivo da movimentação seja compra ou venda. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: XWYZ555019929279212650822221989319252233 + additionalProperties: false + ResponseVariableIncomesTransactionsCurrentData: + type: object + required: + - type + - transactionType + - transactionDate + - transactionValue + - transactionId + properties: + type: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsCurrentType' + transactionType: + $ref: '#/components/schemas/EnumVariableIncomesTransactionsCurrentTransactionType' + transactionTypeAdditionalInfo: + type: string + description: | + Informação adicional do tipo de movimentação, para preenchimento no caso de movimentações não delimitadas no domínio. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com o valor 'OUTROS'. + maxLength: 100 + pattern: '[\w\W\s]*' + transactionDate: + type: string + format: date + description: | + Data da movimentação. + + [Restrição] Data do pregão: compartilhar movimentos até a data da posição. + maxLength: 10 + minLength: 10 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$' + example: '2018-02-15' + priceFactor: + type: string + format: double + description: | + Fator que indica o número de ações utilizadas para a formação do preço. Valor informado deve ser maior que zero. + pattern: '^\d{1,15}\.\d{2,8}$' + maxLength: 24 + example: '100.0005' + transactionUnitPrice: + type: object + description: | + Preço unitário da movimentação: valor da unidade do produto na movimentação do investimento. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA' ou 'VENDA'. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 21 + pattern: '^-?\d{1,15}\.\d{2,4}$' + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionQuantity: + type: string + format: double + description: | + Quantidade de ativos movimentados. + + [Restrição] Campo de preenchimento obrigatório pelas participantes quando o campo 'transactionType' for preenchido com os valores 'COMPRA', 'VENDA' ou 'ALUGUEIS'. + maxLength: 24 + pattern: '^\d{1,15}\.\d{2,8}$' + example: '42.00000025' + transactionValue: + type: object + description: Valor da operação realizada pelo cliente. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + maxLength: 20 + pattern: '^\d{1,15}\.\d{2,4}$' + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + transactionId: + type: string + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: ABCD2126019929279212650822221989319253344 + description: Código ou identificador único prestado pela instituição que mantém a representação individual do movimento. + brokerNoteId: + type: string + description: | + Identificador da nota de negociação. + + [Restrição] Informação de envio obrigatório caso o motivo da movimentação seja compra ou venda. + maxLength: 100 + pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]{0,99}$' + example: XWYZ555019929279212650822221989319252233 + additionalProperties: false + VariableIncomesBalancesBlockedBalance: + type: object + description: Valor não disponível para movimentação naquele momento por qualquer motivo (bloqueio judicial, bloqueio em garantia, entre outros). Prazo de carência não é considerado como bloqueio. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^\d{1,15}\.\d{2,4}$' + maxLength: 20 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesClosingPrice: + type: object + description: Preço de fechamento da data de referência. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.0004' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesGrossAmount: + type: object + description: 'Valor do investimento anterior à dedução de impostos, taxas e tarifas (se houver), atualizado na data de referência. Quantidade de ativos dividido pelo Fator de cotação e multiplicado pelo pelo preço de fechamento da data de referência.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '1000.04' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + VariableIncomesBalancesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + VariableIncomesBalancesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + MetaSingle: + type: object + description: Meta informação referente a API requisitada. + required: + - requestDateTime + properties: + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + VariableIncomesMeta: + type: object + description: Meta informações referente a API requisitada. + required: + - totalRecords + - totalPages + - requestDateTime + properties: + totalRecords: + type: integer + format: int32 + description: Número total de registros no resultado + example: 1 + totalPages: + type: integer + format: int32 + description: Número total de páginas no resultado + example: 1 + requestDateTime: + description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' + type: string + maxLength: 20 + format: date-time + example: '2021-05-21T08:30:00Z' + additionalProperties: false + VariableIncomesProductListLinks: + 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@:%\+.~#?&\/\/=]*)$' + VariableIncomesLinks: + 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@:%_\+.~#?&\/\/=]*)$' + EnumVariableIncomesTransactionsType: + type: string + description: | + Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. + enum: + - ENTRADA + - SAIDA + example: SAIDA + EnumVariableIncomesTransactionsTransactionType: + type: string + description: | + O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. + O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. + A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. + A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. + enum: + - COMPRA + - VENDA + - DIVIDENDOS + - JCP + - ALUGUEIS + - TRANSFERENCIA_CUSTODIA + - TRANSFERENCIA_TITULARIDADE + - OUTROS + example: DIVIDENDOS + EnumVariableIncomesTransactionsCurrentType: + type: string + description: | + Tipo de movimentação na visão de investimento: entrada ou saída. Nos casos de pagamento de dividendos, JCP e aluguéis, fica convencionado que será considerado que o tipo de movimento será saída. + enum: + - ENTRADA + - SAIDA + example: SAIDA + EnumVariableIncomesTransactionsCurrentTransactionType: + type: string + description: | + O campo deve classificar a movimentação em um dos tipos descritos: compra, venda, dividendos, JCP, aluguéis, transferência de custódia, transferência de titularidade e outros. + O transmissor deve classificar as movimentações disponíveis associando-a a um dos itens do Enum listado neste campo. + A opção OUTROS só deve ser utilizada para os casos em que de fato a movimentação compartilhada não possa ser classificada como um dos itens deste Enum. + A expressão “aluguéis” deverá ser utilizada apenas para informar os juros/remuneração pagos/recebidos pelo cliente dos contratos de ações alugadas, seguindo o mesmo entendimento de ENTRADA/SAÍDA da expressão “dividendos”. + enum: + - COMPRA + - VENDA + - DIVIDENDOS + - JCP + - ALUGUEIS + - TRANSFERENCIA_CUSTODIA + - TRANSFERENCIA_TITULARIDADE + - OUTROS + example: DIVIDENDOS + ResponseVariableIncomesBroker: + type: object + required: + - data + - links + - meta + properties: + data: + $ref: '#/components/schemas/ResponseVariableIncomesBrokerData' + links: + $ref: '#/components/schemas/VariableIncomesLinks' + meta: + $ref: '#/components/schemas/VariableIncomesMeta' + additionalProperties: false + ResponseVariableIncomesBrokerData: + type: object + required: + - brokerNoteNumber + - grossValue + - brokerageFee + - clearingSettlementFee + - clearingRegistrationFee + - stockExchangeAssetTradeNoticeFee + - stockExchangeFee + - clearingCustodyFee + - taxes + - incomeTax + - netValue + properties: + brokerNoteNumber: + type: string + description: Identificador da nota de negociação. + maxLength: 16 + pattern: '^\d{1,16}$' + example: '1854009930314350' + grossValue: + type: object + description: o valor da nota de negociação é o somatório das operações realizadas. Total de compra e venda do dia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '5000.0024' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + brokerageFee: + type: object + description: | + a taxa de corretagem incide sobre o valor bruto da nota de negociação, e é livremente pactuada entre o investidor e o seu intermediário. + Pode ser cobrada como um valor fixo por operação, ou um como um percentual sobre o valor negociado, ou ainda de forma mista, conforme guia CVM do investidor. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingSettlementFee: + type: object + description: Valor cobrado para liquidação na custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingRegistrationFee: + type: object + description: Valor cobrado para registro na custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + stockExchangeAssetTradeNoticeFee: + type: object + description: Valor cobrada pela bolsa pelo aviso de negociação de ativo. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + stockExchangeFee: + type: object + description: Valor cobrado pela bolsa para remunerar os serviços de registro prestados. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + clearingCustodyFee: + type: object + description: Taxa cobrada pelas IF para custódia. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + taxes: + type: object + description: 'Impostos cobrados na operação, inclusive imposto de renda day-trade, exceto imposto de renda retido na fonte.' + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + incomeTax: + type: object + description: Imposto de renda retido na fonte. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '13.8751' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + netValue: + type: object + description: Valor líquido da nota de negociação após despesas com taxa de corretagem, taxa de liquidação, taxa de registro, taxa A.N.A, emolumentos, taxa de custódia, impostos e IRRF. + required: + - amount + - currency + properties: + amount: + type: string + format: double + description: Valor relacionado ao objeto. + pattern: '^-?\d{1,15}\.\d{2,4}$' + maxLength: 21 + example: '4889.0012' + currency: + type: string + description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.' + pattern: '^[A-Z]{3}$' + maxLength: 3 + example: BRL + additionalProperties: false + ResponseErrorMetaSingle: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\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/MetaOnlyRequestDateTime' + MetaOnlyRequestDateTime: + 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' + 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/MetaWithAbleAdditionalProperties' + MetaWithAbleAdditionalProperties: + 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' + parameters: + InvestmentId: + name: investmentId + in: path + description: Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + 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 + 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. 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 UUID RFC4122 usado como um ID de correlação entre request e response. Campo de geração e envio obrigatório pela receptora (client) e o seu valor deve ser "espelhado" pela transmissora (server) no cabeçalho de resposta. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + minLength: 1 + maxLength: 100 + 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 + 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. A transmissora deve considerar entrada como 25, caso seja informado algum valor menor pela receptora. Enquanto houver mais que 25 registros a enviar, a transmissora deve considerar o mínimo por página como 25. Somente a última página retornada (ou primeira, no caso de página única) pode conter menos de 25 registros. Mais informações, acesse Especificações de APIs > Padrões > Paginação. + schema: + type: integer + default: 25 + minimum: 25 + 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]*' + fromTransactionDate: + name: fromTransactionDate + description: | + Data inicial de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2022-01-01' + toTransactionDate: + name: toTransactionDate + description: | + Data final de filtragem. + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2022-12-31' + fromTransactionDateCurrent: + name: fromTransactionDate + description: | + Data inicial de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo toTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2023-02-01' + toTransactionDateCurrent: + name: toTransactionDate + description: | + Data final de filtragem. O período máximo utilizado no filtro é de 7 dias inclusive (D-6). + [Restrição] Deve obrigatoriamente ser enviado caso o campo fromTransactionDate seja informado. Caso não seja informado, deve ser assumido o dia atual. + required: false + in: query + schema: + type: string + format: date + maxLength: 10 + example: '2023-02-01' + BrokerNoteId: + name: brokerNoteId + in: path + description: 'Identifica de forma única o relacionamento do cliente com o produto, mantendo as regras de imutabilidade dentro da instituição transmissora.' + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + example: '92792126019929200000000000000000000000000' + securitySchemes: + OAuth2AuthorizationCode: + 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: + variable-incomes: Escopo necessário para acesso à API Variable Incomes. O controle dos endpoints específicos é feito via permissions. + responses: + ResponseVariableIncomesBalances: + description: Dados obtidos com sucesso + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesBalances' + OKResponseVariableIncomesProductList: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesProductList' + OKResponseVariableIncomesProductIdentification: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesProductIdentification' + OKResponseVariableIncomesTransactions: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesTransactions' + OKResponseVariableIncomesTransactionsCurrent: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesTransactionsCurrent' + ResponseVariableIncomesBroker: + description: Dados de fundos de investimentos obtidos com sucesso. + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseVariableIncomesBroker' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + InternalServerError: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + Locked: + description: Locked + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' + 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/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + NotFound: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Unauthorized: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + 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/ResponseErrorMetaSingle' + Default: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + SiteIsOverloaded: + description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.' + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorMetaSingle' + BadRequestWithAdditionalProperties: + 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' + ForbiddenWithAdditionalProperties: + 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' + GatewayTimeoutWithAdditionalProperties: + 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' + InternalServerErrorWithAdditionalProperties: + description: Ocorreu um erro no gateway da API ou no microsserviço + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + LockedWithAdditionalProperties: + description: Locked + content: + application/json; charset=utf-8: + schema: + type: object + required: + - errors + properties: + errors: + type: array + minItems: 1 + maxItems: 13 + items: + type: object + required: + - code + - title + - detail + properties: + code: + description: Código de erro específico do endpoint + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + title: + description: Título legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 255 + detail: + description: Descrição legível por humanos deste erro específico + type: string + pattern: '[\w\W\s]*' + maxLength: 2048 + 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' + MethodNotAllowedWithAdditionalProperties: + 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' + NotAcceptableWithAdditionalProperties: + 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' + NotFoundWithAdditionalProperties: + description: O recurso solicitado não existe ou não foi implementado + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + TooManyRequestsWithAdditionalProperties: + 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' + UnauthorizedWithAdditionalProperties: + description: Cabeçalho de autenticação ausente/inválido ou token inválido + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + UnprocessableEntityWithAdditionalProperties: + 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' + DefaultWithAdditionalProperties: + description: Erro inesperado. + content: + application/json; charset=utf-8: + schema: + $ref: '#/components/schemas/ResponseErrorWithAbleAdditionalProperties' + SiteIsOverloadedWithAdditionalProperties: + 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' diff --git a/swagger-apis/variable-incomes/index.html b/swagger-apis/variable-incomes/index.html index 00bbf6e2f..05736ef41 100644 --- a/swagger-apis/variable-incomes/index.html +++ b/swagger-apis/variable-incomes/index.html @@ -45,8 +45,11 @@ window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}], - "urls.primaryName": "1.0.0-rc1.0", // default spec + urls: [ {"name": "1.0.0-rc1.0", "url": "./1.0.0-rc1.0.yml"}, + {"name": "1.0.0-rc2.0", "url": "./1.0.0-rc2.0.yml"}, + {"name": "1.0.0-rc3.0", "url": "./1.0.0-rc3.0.yml"}, + {"name": "1.0.0", "url": "./1.0.0.yml"}], + "urls.primaryName": "1.0.0", // default spec dom_id: '#swagger-ui', deepLinking: true, supportedSubmitMethods:[], diff --git a/swagger-apis/webhook/1.0.0-beta1.yml b/swagger-apis/webhook/1.0.0-beta1.yml new file mode 100644 index 000000000..27e737ff0 --- /dev/null +++ b/swagger-apis/webhook/1.0.0-beta1.yml @@ -0,0 +1,208 @@ +openapi: 3.0.0 +info: + title: API Webhook - Open Finance Brasil + description: | + API de Webhook é responsável por notificar eventos definidos em cada uma das APIs que possuem a funcionalidade no Open Finance Brasil. + + Endpoints que possuem a funcionalidade de Webhook +
+ + Na versão atual, temos os seguintes endpoints: + + API Payments v2: + - POST /pix/payments + - POST /consents + + # Orientações + Todos os endpoints nessa API utilizam-se de mTLS para autenticação, não possuem scopes e permissions específicos de segurança. Toda a segurança é feita via certificado(mTLS – BRCAC). + + Dado que as URLs do ecossistema são formadas com a configuração abaixo: + \ / \ / \ / \ / \ + + Para a utilização desse recurso é necessário que: + - Iniciadoras de pagamentos e/ou Receptora de dados: Precisam cadastrar a sua URI base (\) no diretório de participantes no campo ``, + - Detentoras de contas e/ou Transmissora de dados: Precisam construir a URI de notificação da seguinte forma: + + Exemplo de URI do consentimento: +
+
+ Image Webhook +
+
+ + Exemplo de URI do pagamento: +
+
+ Image Webhook + + version: '1.0.0-beta1' + 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/webhook/v1' + description: Servidor de Produção + - url: 'https://apih.banco.com.br/open-banking/webhook/v1' + description: Servidor de Homologação +tags: + - name: Consent Notification + description: Notificações de mudanças de estados de consentimentos da API de Iniciação de Pagamentos. + - name: Pix Payment Notification + description: 'Notificações de mudanças de estados do pagamento: Arranjo Pix da API de Iniciação de Pagamentos.' + +paths: + '/payments/{versionApi}/consents/{consentId}': + post: + tags: + - Consent Notification + summary: Notificações de mudanças de estados de consentimentos da API de Iniciação de Pagamentos. + operationId: consentNotification + description: Notificações de mudanças de estados de consentimentos da API de Iniciação de Pagamentos. + parameters: + - $ref: '#/components/parameters/consentId' + - $ref: '#/components/parameters/versionApi' + - $ref: '#/components/parameters/xWebhookInteractionId' + requestBody: + content: + application/jwt: + schema: + $ref: '#/components/schemas/RequestBodyWebhook' + description: Payload para criação do consentimento para iniciação do pagamento. + required: true + responses: + '202': + $ref: '#/components/responses/202Webhook' + security: + - OAuth2ClientCredentials: + - payments + '/payments/{versionApi}/pix/payments/{paymentId}': + post: + tags: + - Pix Payment Notification + summary: 'Notificações de mudanças de estados do pagamento: Arranjo Pix da API de Iniciação de Pagamentos.' + operationId: pixPaymentNotification + description: 'Notificações de mudanças de estados do pagamento: Arranjo Pix da API de Iniciação de Pagamentos.' + parameters: + - $ref: '#/components/parameters/paymentId' + - $ref: '#/components/parameters/versionApi' + - $ref: '#/components/parameters/xWebhookInteractionId' + requestBody: + content: + application/jwt: + schema: + $ref: '#/components/schemas/RequestBodyWebhook' + description: Payload para criação do consentimento para iniciação do pagamento. + required: true + responses: + '202': + $ref: '#/components/responses/202Webhook' + security: + - OAuth2ClientCredentials: + - payments +components: + schemas: + RequestBodyWebhook: + type: object + required: + - data + properties: + data: + type: object + description: Informações referentes à chamada realizada. + required: + - timestamp + properties: + timestamp: + type: string + format: date-time + description: Data e hora que foi realizado o cancelamento, conforme especificação RFC-3339, formato UTC. + maxLength: 20 + pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$' + example: '2021-05-21T08:30:00Z' + xWebhookInteractionId: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + description: Identificador único recebido da detentora de conta na notificação enviada pelo Webhook. + parameters: + consentId: + name: consentId + in: path + description: | + O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name. + Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource + Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN + seja um identificador de recurso persistente e independente da localização. + Considerando a string urn:bancoex:C1DD33123 como exemplo para consentId temos: + - o namespace(urn) + - o identificador associado ao namespace da instituição transnmissora (bancoex) + - o identificador específico dentro do namespace (C1DD33123). + Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141). + required: true + schema: + type: string + pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' + maxLength: 256 + versionApi: + name: versionApi + in: path + description: Identifica a versão da API que deverá ser utilizada para recebimento da notificação via webhook + required: true + schema: + type: string + pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$' + maxLength: 256 + paymentId: + name: paymentId + in: path + description: Identificador da operação de pagamento. + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$' + maxLength: 100 + xWebhookInteractionId: + name: x-webhook-interaction-id + in: header + description: Identificador único para cada tentativa de notificação realizada. O identificador deverá seguir o padrão UID [RFC4122](https://tools.ietf.org/html/rfc4122). + required: true + 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' + OAuth2ClientCredentials: + type: oauth2 + description: | + Fluxo OAuth necessário para que a iniciadora possa iniciar pagamentos. Requer o processo de redirecionamento e autenticação do usuário. + Apenas pagamentos iniciados pela mesma iniciadora de pagamentos podem ser consultados ou cancelados através de modelo client credentials. + flows: + clientCredentials: + tokenUrl: 'https://authserver.example/token' + scopes: + payments: Escopo necessário para acesso à API Payment Initiation. + OAuth2AuthorizationCode: + type: oauth2 + description: Fluxo OAuth necessário para que a iniciadora possa iniciar pagamentos. Requer o processo de redirecionamento e autenticação do usuário. + flows: + authorizationCode: + authorizationUrl: 'https://authserver.example/token' + tokenUrl: 'https://authserver.example/token' + scopes: + payments: Escopo necessário para acesso à API Payment Initiation. + responses: + 202Webhook: + description: Requisição aceita para processamento posterior. + headers: + x-webhook-interaction-id: + description: Identificador único recebido da detentora de conta na notificação enviada pelo Webhook. + schema: + $ref: '#/components/schemas/xWebhookInteractionId' diff --git a/swagger-apis/webhook/img/image001.png b/swagger-apis/webhook/img/image001.png new file mode 100644 index 000000000..2fdd0560e Binary files /dev/null and b/swagger-apis/webhook/img/image001.png differ diff --git a/swagger-apis/webhook/img/image002.png b/swagger-apis/webhook/img/image002.png new file mode 100644 index 000000000..013188a4e Binary files /dev/null and b/swagger-apis/webhook/img/image002.png differ diff --git a/swagger-apis/webhook/index.html b/swagger-apis/webhook/index.html new file mode 100644 index 000000000..0c70b89d8 --- /dev/null +++ b/swagger-apis/webhook/index.html @@ -0,0 +1,82 @@ + + + + + + Open Finance Brasil - OpenApi Specification + + + + + + + +
+

+ Essa é uma versão de rascunho e não deve ser utilizada para outras finalidades, você pode encontrar a documentação oficial e atualizada aqui +

+
+ +
+ + + + + +