openapi: 3.0.1
info:
  title: Products
  version: 2.10.0
  description: Description of products endpoints.
  contact:
    name: Tradevest GmbH
    email: hello@tradevest.ai
    url: https://tradevest.ai
servers:
  - url: https://tvda-api.platform-test.tradevest.ai
    description: Test
security:
  - Bearer: []
tags:
  - name: Products
    description: Products
paths:
  /customers/{customerId}/products:
    get:
      summary: Get Customer Products
      tags:
        - Products
      parameters:
        - schema:
            type: string
            format: uuid
          name: customerId
          in: path
          required: true
          description: Customer ID
        - schema:
            $ref: '#/components/schemas/ProductTypeEnum'
          in: query
          name: productType
          description: The type of a product
        - schema:
            $ref: '#/components/schemas/ProductCodeEnum'
          in: query
          name: productCode
          description: The code of a product
        - schema:
            $ref: '#/components/schemas/CustomerProductStatus'
          in: query
          name: status
          description: The status of the account
        - schema:
            type: string
          in: query
          name: iban
          description: The IBAN of a cash account
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerProduct'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-customer-products
      x-operation-group: products-query
      x-required-permissions: rs/products/read
      description: Get Customer Products
    post:
      summary: Create Customer Product
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerProductResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: create-customer-product
      x-operation-group: products-command
      x-required-permissions: rs/products/write
      description: Create Customer Product
      parameters:
        - schema:
            type: string
            format: uuid
          name: customerId
          in: path
          required: true
          description: customer ID the partner is creating a product for
        - schema:
            type: string
            format: uuid
          name: Requestor-ID
          in: header
          required: true
          description: Unique requestor identification in UUID format
          x-requestor-id: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerProductData'
  /products:
    get:
      summary: Get Product Definitions
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerProductDefinitions'
      operationId: get-product-definitions
      description: Get product definitions that are already or could be potentially available for partner
      x-operation-group: products-query
      x-required-permissions: rs/products/read
  /products/{customerProductId}:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerProductId
        in: path
        required: true
        description: the ID of the product instance for the given customer
    get:
      summary: Get Customer Product
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProduct'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-single-customer-product
      x-operation-group: products-query
      x-required-permissions: rs/products/read
      description: Get Customer Product
    patch:
      parameters:
        - schema:
            type: string
            format: uuid
          name: Requestor-ID
          in: header
          required: true
          description: Unique requestor identification in UUID format
          x-requestor-id: true
      summary: Update customer product
      tags:
        - Products
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerProductUpdate'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: update-customer-product
      x-operation-group: products-command
      x-required-permissions: rs/products/write
      description: Update customer product. It is used to close the customer product.
  /products/{customerProductId}/documents/securities-account-statement:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerProductId
        in: path
        required: true
        description: the ID of the product instance for the given customer
    post:
      summary: Create Securities Account Statement
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSecuritiesAccountStatementResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: create-securities-account-statement
      x-operation-group: products-command
      x-required-permissions: rs/products/write
      description: Create securities Account Statement
  /products/{customerProductId}/documents/securities-account-statement/{securityAccountStatementId}:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerProductId
        in: path
        required: true
        description: the ID of the product instance for the given customer
      - schema:
          type: string
          format: uuid
        name: securityAccountStatementId
        in: path
        required: true
        description: the ID of generated security account statement
    get:
      summary: Retrieve Security Account Statement
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-securities-account-statement
      x-operation-group: products-query
      x-required-permissions: rs/products/read
      description: Get securities Account Statement
  /products/{customerProductId}/documents/cash-account-statement:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerProductId
        in: path
        required: true
        description: the ID of the product instance for the given customer
    post:
      summary: Create Cash Account Statement
      tags:
        - Products
      parameters:
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
          name: startDate
          in: query
          required: true
          description: start of the reporting period (inclusive), format YYYY-MM-DD
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
          name: endDate
          in: query
          required: true
          description: end of the reporting period (inclusive), format YYYY-MM-DD
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCashAccountStatementResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: create-cash-account-statement
      x-operation-group: products-command
      x-required-permissions: rs/products/write
      description: Create cash Account Statement for the customer Master Account (cash balance and money market fund holdings)
    get:
      summary: Retrieve Cash Account Statement
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-cash-account-statement
      x-operation-group: products-query
      x-required-permissions: rs/products/read
      description: Get cash Account Statement
  /products/{customerProductId}/documents/wallet-account-statement:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerProductId
        in: path
        required: true
        description: the ID of the wallet product instance for the given customer
    post:
      summary: Create Wallet Account Statement
      tags:
        - Products
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWalletAccountStatementRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWalletAccountStatementResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '429':
          description: Too Many Requests - wallet statement rate limit exceeded
          headers:
            Retry-After:
              description: seconds to wait before retrying
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: create-wallet-account-statement
      x-operation-group: wallet-account-statement-command
      x-required-permissions: rs/products/write
      description: Create an ad-hoc Wallet Account Statement (Walletauszug) over the wallet's tokenized stock positions, valued as of the requested snapshotDate (default current date)
  /products/{customerProductId}/documents/wallet-account-statement/{walletAccountStatementId}:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerProductId
        in: path
        required: true
        description: the ID of the wallet product instance for the given customer
      - schema:
          type: string
          format: uuid
        name: walletAccountStatementId
        in: path
        required: true
        description: the ID of the generated wallet account statement
    get:
      summary: Retrieve Wallet Account Statement
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '202':
          description: Accepted - PDF generation still in progress
          headers:
            Retry-After:
              description: seconds to wait before retrying
              schema:
                type: integer
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-wallet-account-statement
      x-operation-group: wallet-account-statement-query
      x-required-permissions: rs/products/read
      description: Get the generated Wallet Account Statement PDF by ID; returns 202 while generation is still in progress
  /products/fees/instances:
    get:
      summary: Get Fee Instances
      tags:
        - Products
      parameters:
        - schema:
            $ref: '#/components/schemas/ProductCodeEnum'
          in: query
          name: productCode
          description: Optional filter by product code
        - schema:
            $ref: '#/components/schemas/FeeInstanceStatusEnum'
          in: query
          name: feeInstanceStatus
          description: Optional filter by fee instance status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FeeInstance'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-fee-instances
      x-operation-group: products-query
      x-required-permissions: rs/products/read
      description: Get fee instances. If productCode is not provided, returns fees for all products.
components:
  schemas:
    CustomerProductUpdate:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/CustomerProductStatusUpdate'
      required:
        - status
    CustomerProductData:
      type: object
      properties:
        productCode:
          $ref: '#/components/schemas/ProductCodeEnum'
      required:
        - productCode
    CreateCustomerProductResult:
      type: object
      properties:
        customerProductId:
          type: string
          format: uuid
      required:
        - customerProductId
    AccountData:
      type: object
      required:
        - iban
        - bic
        - modifiedOn
      properties:
        iban:
          type: string
        bic:
          type: string
        availableBalance:
          description: |-
            The Available Balance represents the total amount of funds in an account that are accessible for trading at any given moment. \
            This balance takes into account all cleared and processed transactions, including deposits and withdrawals, but also adjusts for any holds, pending transactions, or uncleared checks.
          type: number
        withdrawableBalance:
          description: The withdrawableBalance attribute represents the portion of funds in an account that are available for withdrawal. This balance includes only those funds that have been fully settled and are currently present in the account, ensuring that the amount is readily accessible for outgoing transfers.
          type: number
        mmfBalance:
          description: |-
            The portion of the customer's funds currently held in the money market fund (cost basis). \
            This is an underlying balance type — availableBalance and withdrawableBalance already include these funds and are not adjusted by mmfBalance.
          type: number
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
    CryptoAsset:
      type: object
      properties:
        cryptoSymbol:
          type: string
        quantity:
          type: number
          description: The quantity (position) of the cryptoSymbol held in the customer's wallet
        availableQuantity:
          type: number
          description: The available quantity (position) of the cryptoSymbol held in the customer's wallet that can be traded
        avgBuyPrice:
          type: number
          description: Average buy price, calculated using fifo method
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - cryptoSymbol
        - quantity
        - availableQuantity
        - avgBuyPrice
        - modifiedOn
    TraditionalAsset:
      type: object
      properties:
        isin:
          type: string
          description: ISIN of the asset
        quantity:
          type: number
          description: The quantity (position) of the asset held in the customer's account
        availableQuantity:
          type: number
          description: The available quantity (position) of the asset held in the customer's account that can be traded
        avgBuyPrice:
          type: number
          description: Average buy price, calculated using fifo method
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - isin
        - quantity
        - availableQuantity
        - avgBuyPrice
        - modifiedOn
    TokenizedAsset:
      type: object
      properties:
        underlying:
          type: string
          description: ISIN of the underlying security (e.g. US0378331005)
        tokenSymbol:
          type: string
          description: On-chain token symbol (e.g. TOKUS0378331005)
        name:
          type: string
          description: Human-readable asset name (e.g. Apple Inc.)
        quantity:
          type: number
          description: Total position in tracker certificates (8 decimal places)
        availableQuantity:
          type: number
          description: Position available for trading (quantity minus pending sell locks)
        avgBuyPrice:
          type: number
          description: Average buy price in EUR, FIFO method
        currentPrice:
          type: number
          description: Latest reference price of the underlying (from price stream; omitted if unavailable)
        currency:
          type: string
          description: Settlement currency (always EUR)
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - underlying
        - tokenSymbol
        - name
        - quantity
        - availableQuantity
        - avgBuyPrice
        - currency
        - modifiedOn
    CustomerProduct:
      type: object
      properties:
        customerProductId:
          type: string
          format: uuid
          description: The ID of the product instance for the given customer
        productCode:
          $ref: '#/components/schemas/ProductCodeEnum'
        productType:
          $ref: '#/components/schemas/ProductTypeEnum'
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
        accountData:
          $ref: '#/components/schemas/AccountData'
        cryptoAssets:
          type: array
          items:
            $ref: '#/components/schemas/CryptoAsset'
        traditionalAssets:
          type: array
          items:
            $ref: '#/components/schemas/TraditionalAsset'
        tokenizedAssets:
          type: array
          x-go-omitzero: true
          items:
            $ref: '#/components/schemas/TokenizedAsset'
        status:
          $ref: '#/components/schemas/CustomerProductStatus'
        proxyIds:
          type: array
          items:
            type: string
            format: uuid
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
        openedOn:
          type: string
          format: date-time
          readOnly: true
        closedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - customerProductId
        - productCode
        - productType
        - status
        - createdOn
        - modifiedOn
    PartnerProductDefinitions:
      title: PartnerProductDefinitions
      type: object
      properties:
        data:
          type: array
          description: Array of partner product definitions
          items:
            $ref: '#/components/schemas/PartnerProductDefinition'
      required:
        - data
    PartnerProductDefinition:
      type: object
      properties:
        name:
          type: string
        productType:
          $ref: '#/components/schemas/ProductTypeEnum'
        productCode:
          $ref: '#/components/schemas/ProductCodeEnum'
        description:
          type: string
        isActive:
          type: boolean
      required:
        - description
        - isActive
        - name
        - productCode
        - productType
    Product:
      type: object
      properties:
        name:
          type: string
        productType:
          $ref: '#/components/schemas/ProductTypeEnum'
        productCode:
          $ref: '#/components/schemas/ProductCodeEnum'
        description:
          type: string
      required:
        - name
        - productType
        - productCode
        - description
    CustomerProductStatus:
      title: CustomerProductStatus
      type: string
      enum:
        - RECEIVED
        - INVALID
        - PENDING
        - ACTIVE
        - BLOCKED
        - RESTRICTED
        - INACTIVE
        - CLOSED
        - REJECTED
    CreateSecuritiesAccountStatementResult:
      type: object
      properties:
        securitiesAccountStatementId:
          type: string
          format: uuid
      required:
        - securitiesAccountStatementId
    CreateCashAccountStatementResult:
      type: object
      properties:
        cashAccountStatementId:
          type: string
          format: uuid
      required:
        - cashAccountStatementId
    CreateWalletAccountStatementRequest:
      type: object
      properties:
        snapshotDate:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
          description: valuation date of the statement, format YYYY-MM-DD; defaults to the current date. A historical date values the wallet's positions as they stood on that date using SIX end-of-day pricing. Must not be in the future and not before the wallet product's creation date.
        language:
          type: string
          default: DE
          description: document language; defaults to DE (only DE is currently supported)
    CreateWalletAccountStatementResult:
      type: object
      properties:
        walletAccountStatementId:
          type: string
          format: uuid
      required:
        - walletAccountStatementId
    CustomerProductStatusUpdate:
      title: CustomerProductStatusUpdate
      type: string
      enum:
        - CLOSED
    FeeInstance:
      type: object
      required:
        - productCode
        - status
        - category
        - currency
        - feeType
        - feeTrigger
        - feeCollection
        - createdOn
        - modifiedOn
        - partnerId
        - feeInstanceId
        - validFrom
      properties:
        feeInstanceId:
          type: string
          format: uuid
          description: Unique identification number in UUID format.
          readOnly: true
        productCode:
          $ref: '#/components/schemas/ProductCodeEnum'
        category:
          $ref: '#/components/schemas/FeeCategoryEnum'
        status:
          $ref: '#/components/schemas/FeeInstanceStatusEnum'
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
        feeType:
          $ref: '#/components/schemas/FeeTypeEnum'
        feeTrigger:
          $ref: '#/components/schemas/FeeTriggerEnum'
        feeFrequency:
          $ref: '#/components/schemas/FeeFrequencyEnum'
        feeCollection:
          $ref: '#/components/schemas/FeeCollectionEnum'
        partnerId:
          type: string
          format: uuid
          description: Unique identification number in UUID format.
        feeTriggerEvent:
          $ref: '#/components/schemas/FeeTriggerEventEnum'
        fixedFeeAmount:
          type: number
          multipleOf: 0.01
          description: Fee amount in currency, only applicable if feeType = `FIXED`
        inducementAmount:
          type: number
          multipleOf: 0.01
          description: Inducement amount, only applicable if feeType = `FIXED`
        feeRatio:
          type: number
          multipleOf: 0.01
          description: Fee amount in percentage, only applicable if feeType = `VARIABLE`
        minFeeAmount:
          type: number
          multipleOf: 0.01
          description: Minimum fee amount to be charged, only applicable if feeType = `VARIABLE`
        maxFeeAmount:
          type: number
          multipleOf: 0.01
          description: Maximum fee amount to be charged only applicable if feeType = `VARIABLE`
        validFrom:
          type: string
          format: date
        validUntil:
          type: string
          format: date
        feeInstanceScales:
          type: array
          items:
            $ref: '#/components/schemas/FeeInstanceScale'
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
    FeeInstanceScale:
      title: FeeInstanceScale
      type: object
      properties:
        feeInstanceScaleId:
          type: string
          format: uuid
          readOnly: true
        feeInstanceScaleStatus:
          $ref: '#/components/schemas/FeeInstanceScaleStatusEnum'
        scaleType:
          $ref: '#/components/schemas/FeeInstanceScaleTypeEnum'
        from:
          type: number
          multipleOf: 0.01
        fixedFeeAmount:
          type: number
          multipleOf: 0.01
          description: Fee amount in currency, only applicable if feeType = `FIXED`
        feeRatio:
          type: number
          multipleOf: 0.01
          description: Fee amount in percentage, only applicable if feeType = `VARIABLE`
        minFeeAmount:
          type: number
          multipleOf: 0.01
          description: Minimum fee amount to be charged, only applicable if feeType = `VARIABLE`
        maxFeeAmount:
          type: number
          multipleOf: 0.01
          description: Maximum fee amount to be charged only applicable if feeType = `VARIABLE`
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - feeInstanceScaleId
        - feeInstanceScaleStatus
        - from
        - scaleType
        - createdOn
        - modifiedOn
    ProductTypeEnum:
      title: ProductTypeEnum
      type: string
      description: Product type
      enum:
        - CASH
        - WALLET
        - DEPOSITORY
    ProductCodeEnum:
      title: ProductCodeEnum
      type: string
      description: Product code
      enum:
        - WALLET
        - BALANCE_ACCOUNT
        - DEPOSITORY_ACCOUNT
        - CURRENCY_WALLET
    CurrencyEnum:
      title: CurrencyEnum
      type: string
      description: Currency of the product's balance. Currency code in ISO 4217
      enum:
        - EUR
    ErrorDetailsExplanation:
      title: ErrorDetailsExplanation
      type: object
      properties:
        code:
          type: string
          maxLength: 255
        parameter:
          type: string
        message:
          type: string
      required:
        - code
        - message
    ErrorDetails:
      title: ErrorDetails
      type: object
      properties:
        field:
          type: string
          maxLength: 255
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetailsExplanation'
      required:
        - field
    ErrorMessage:
      title: ErrorMessage
      type: object
      properties:
        message:
          type: string
        responseType:
          type: string
        validationString:
          minLength: 1
          type: string
        requestId:
          type: string
        errorCode:
          type: string
          maxLength: 255
        errorDetails:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetails'
      required:
        - message
        - responseType
        - requestId
    FeeInstanceStatusEnum:
      title: FeeInstanceStatusEnum
      type: string
      description: The status of the fee instance
      enum:
        - ACTIVE
        - INACTIVE
    FeeCategoryEnum:
      title: FeeCategoryEnum
      type: string
      description: The category of the fee
      enum:
        - ACCOUNT
        - KYC
        - REPORTING
        - SERVICE
        - TRADE
        - TRANSFER
        - WALLET
    FeeTypeEnum:
      title: FeeTypeEnum
      type: string
      description: The type of the fee
      enum:
        - FIXED
        - VARIABLE
    FeeTriggerEnum:
      title: FeeTriggerEnum
      type: string
      description: The trigger of the fee
      enum:
        - EVENT_BASED
        - TIME_BASED
        - MANUAL
    FeeFrequencyEnum:
      title: FeeFrequencyEnum
      type: string
      description: The frequency of the fee
      enum:
        - MONTHLY
        - QUARTERLY
        - IMMEDIATELY
    FeeCollectionEnum:
      title: FeeCollectionEnum
      type: string
      description: The collection of the fee
      enum:
        - MONTHLY
        - QUARTERLY
        - IMMEDIATELY
    FeeTriggerEventEnum:
      title: FeeTriggerEventEnum
      type: string
      description: Fee trigger event, only applicable if feeTrigger = `EVENT_BASED`
      enum:
        - TRADE_WBAH
        - TRADE_XVIE
        - TRADE_XWBO
        - TRADE_XPAR
        - TRADE_ALPX
        - TRADE_XMLI
        - TRADE_XETA
        - TRADE_XETR
        - TRADE_XETB
        - TRADE_TGAT
        - TRADE_XBER
        - TRADE_XEQT
        - TRADE_EQTB
        - TRADE_XDUS
        - TRADE_XQTX
        - TRADE_XHAM
        - TRADE_XHAN
        - TRADE_XMUN
        - TRADE_XSTU
        - TRADE_EUWX
        - TRADE_XSCO
        - TRADE_XFRA
        - TRADE_MTAA
        - TRADE_XMIL
        - TRADE_XDUB
        - TRADE_XMSM
        - TRADE_XAMS
        - TRADE_XOSL
        - TRADE_XJSE
        - TRADE_XMAD
        - TRADE_XMCE
        - TRADE_XSTOT
        - TRADE_DSTO
        - TRADE_MSTO
        - TRADE_XSWX
        - TRADE_XSWM
        - TRADE_XQMH
        - TRADE_XLON
        - TRADE_AIMX
        - TRADE_XASX
        - TRADE_XHKG
        - TRADE_XTKS
        - TRADE_XSES
        - TRADE_EQUITY
        - TRADE_BOND
        - TRADE_FUND
        - TRADE_ETF
        - TRADE_COMMODITY
        - TRADE_DERIVATIVE
        - TRADE_ETN
        - TRADE_CRYPTO_CURRENCIES
        - TRADE_TOKENIZED_STOCKS
        - SAVING_PLAN_EXECUTION
    FeeInstanceScaleStatusEnum:
      title: FeeInstanceScaleStatusEnum
      type: string
      description: The status of the fee instance scale
      enum:
        - ACTIVE
        - INACTIVE
    FeeInstanceScaleTypeEnum:
      title: FeeInstanceScaleTypeEnum
      type: string
      description: Type of the fee instance scale
      enum:
        - INCREMENTAL_SCALE
        - CUMULATIVE_SCALE
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth2/token
          scopes: {}
x-tagGroups:
  - name: Products
    tags:
      - Products
