﻿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.4
  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
          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 a taxa máxima contratada. 
                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 conforme foi acordado no momento da contratação.
              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 a taxa máxima contratada. 
                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 conforme foi acordado no momento da contratação.
              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/BankFixedIncomeTransactionsLinks'
        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@:%_\+.~#?&\/\/=]*)$'
        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@:%_\+.~#?&\/\/=]*)$'
    BankFixedIncomeTransactionsLinks:
      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: Preço unitá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' e se tratar de produto prefixado ou híbrido.
        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' e se tratar de produto pós-fixado ou híbrido.
        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'
