﻿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.2
  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/CreditFixedIncomesTransactionsLinks'
        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' e se tratar de produto pós-fixado ou híbrido.
                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/CreditFixedIncomesTransactionsLinks'
        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@:%_\+.~#?&\/\/=]*)$'
        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@:%_\+.~#?&\/\/=]*)$'
    CreditFixedIncomesTransactionsLinks:
      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' e se tratar de produto pós-fixado ou híbrido.
      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' e se tratar de produto prefixado ou híbrido.
      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'