openapi: 3.0.1
info:
  title: CorporateActions
  version: 2.10.0
  contact:
    name: Tradevest GmbH
    email: hello@tradevest.ai
    url: https://tradevest.ai
  description: Commands and Queries related to Corporate Actions
servers:
  - url: https://tvda-api.platform-test.tradevest.ai
    description: Test
security:
  - Bearer: []
tags:
  - name: Corporate Actions
    description: Corporate Actions
  - name: Corporate Action Mock Messages
    description: Mock SWIFT message endpoints for testing
paths:
  /corporate-actions/:
    parameters: []
    get:
      summary: Get Corporate Actions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorporateActions'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-corporate-actions
      x-operation-group: corporate-actions-query
      x-required-permissions: rs/corporate-actions/read
      description: Get Corporate Actions
      tags:
        - Corporate Actions
      parameters:
        - schema:
            type: string
          in: query
          name: cursor
          description: String value used for pagination
        - schema:
            type: integer
            minimum: 1
            default: 20
          in: query
          name: limit
          description: Maximum number of items to return
        - schema:
            type: string
            format: date-time
          in: query
          name: startCreatedOn
          description: Display corporate actions created on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: endCreatedOn
          description: Display corporate actions created on or before this date
        - schema:
            type: string
            format: date-time
          in: query
          name: exDate
          description: Display corporate actions with ex-date on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: paymentDate
          description: Display corporate actions with payment date on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: recordDate
          description: Display corporate actions with record date on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: responseDeadline
          description: Display corporate actions with response deadline on or after this date
        - schema:
            $ref: '#/components/schemas/CorporateActionStatusEnum'
          in: query
          name: status
          description: Display corporate actions with this status
        - schema:
            type: string
          in: query
          name: corporateActionReference
          description: Display corporate actions with this reference number (links MT564 and MT566 events for the same underlying action)
  /corporate-actions/customers/{customerId}:
    parameters:
      - schema:
          type: string
          format: uuid
        name: customerId
        in: path
        required: true
        description: Unique customer identification number in UUID format
    get:
      summary: Get Corporate Actions by Customer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorporateActions'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-corporate-actions-by-customer-id
      x-operation-group: corporate-actions-query
      x-required-permissions: rs/corporate-actions/read
      description: Get Corporate Actions by Customer
      tags:
        - Corporate Actions
      parameters:
        - schema:
            type: string
          in: query
          name: cursor
          description: String value used for pagination
        - schema:
            type: integer
            minimum: 1
            default: 20
          in: query
          name: limit
          description: Maximum number of items to return
        - schema:
            type: string
            format: date-time
          in: query
          name: startCreatedOn
          description: Display corporate actions created on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: endCreatedOn
          description: Display corporate actions created on or before this date
        - schema:
            type: string
          in: query
          name: corporateActionReference
          description: Display corporate actions with this reference number (links MT564 and MT566 events for the same underlying action)
        - schema:
            type: string
            format: date-time
          in: query
          name: exDate
          description: Display corporate actions with ex-date on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: paymentDate
          description: Display corporate actions with payment date on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: recordDate
          description: Display corporate actions with record date on or after this date
        - schema:
            type: string
            format: date-time
          in: query
          name: responseDeadline
          description: Display corporate actions with response deadline on or after this date
        - schema:
            $ref: '#/components/schemas/CorporateActionStatusEnum'
          in: query
          name: status
          description: Display corporate actions with this status
  /corporate-actions/swift-mock/publishMT535:
    post:
      summary: Publish a mock MT535 message
      operationId: publishMT535
      description: |
        Publishes a mock MT535 message with configurable fields. All fields used by the MT535 parser can be set.
        The message will be constructed and published as if it came from the real EFIS API. Available only on TEST environment
      tags:
        - Corporate Action Mock Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishMT535Request'
      responses:
        '200':
          description: MT535 message published successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishMessageResponse'
        '400':
          description: Bad request (e.g., missing required fields)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: Server error while processing the message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      x-operation-group: corporate-actions-command
      x-required-permissions: rs/corporate-actions/write
  /corporate-actions/swift-mock/publishMT564:
    post:
      summary: Publish a mock MT564 message
      operationId: publishMT564
      description: |
        Publishes a mock MT564 message with configurable fields. All fields used by the MT564 parser can be set.
        The message will be constructed and published as if it came from the real EFIS API. Available only on TEST environment.
      tags:
        - Corporate Action Mock Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishMT564Request'
      responses:
        '200':
          description: MT564 message published successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishMessageResponse'
        '400':
          description: Bad request (e.g., missing required fields)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: Server error while processing the message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      x-operation-group: corporate-actions-command
      x-required-permissions: rs/corporate-actions/write
  /corporate-actions/swift-mock/publishMT566:
    post:
      summary: Publish a mock MT566 message
      operationId: publishMT566
      description: |
        Publishes a mock MT566 message with configurable fields. All fields used by the MT566 parser can be set.
        The message will be constructed and published as if it came from the real EFIS API. Available only on TEST environment.
      tags:
        - Corporate Action Mock Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishMT566Request'
      responses:
        '200':
          description: MT566 message published successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishMessageResponse'
        '400':
          description: Bad request (e.g., missing required fields)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: Server error while processing the message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      x-operation-group: corporate-actions-command
      x-required-permissions: rs/corporate-actions/write
  /corporate-actions/{corporateActionId}/instructions:
    post:
      summary: Submit customer option for corporate action
      description: The endpoint is currently under development, and the structure may still change.
      operationId: submit-customer-corporate-action-option
      x-operation-group: corporate-actions-command
      x-required-permissions: rs/corporate-actions/write
      tags:
        - Corporate Actions
      parameters:
        - schema:
            type: string
            format: uuid
          name: corporateActionId
          in: path
          required: true
          description: Id of corporate action
        - 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/SubmitCustomerCorporateActionOptionRequest'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    CorporateActionTenderOptions:
      type: array
      items:
        $ref: '#/components/schemas/CorporateActionTenderOption'
    CorporateActionTenderOption:
      type: object
      required:
        - tenderOption
      properties:
        tenderOption:
          $ref: '#/components/schemas/CorporateActionOptionEnum'
        isDefaultAction:
          type: boolean
          description: Is Default Action
          example: true
        offeredPricePerShare:
          type: number
          format: decimal
          description: Offered Price Per Share
          example: 10
        maximumCashAmount:
          type: number
          format: decimal
          description: Maximum cash amount for CASH options
          example: 1500
        maximumQuantitySharesAccepted:
          type: number
          format: decimal
          description: Maximum Quantity of Shares Accepted
          example: 10
        creditedIsin:
          type: string
          description: ISIN of credited securities for STOCK options
          example: DE0005140008
        exchangeRatio:
          type: number
          format: decimal
          description: Exchange ratio for STOCK options
          example: 1.5
    TenderOfferData:
      type: object
      description: Tender offer announced in an MT564 (TEND). Carries the response deadline and offered options.
      required:
        - responseDeadline
        - tenderOptions
      properties:
        responseDeadline:
          type: string
          format: date-time
          description: Response deadline.
          example: '2024-01-14T12:31:13.000Z'
        tenderOptions:
          $ref: '#/components/schemas/CorporateActionTenderOptions'
    TenderResultData:
      type: object
      description: Tender result confirmed in an MT566 (TEND).
      properties:
        quantitySuccessfullyTendered:
          type: number
          format: decimal
          description: Quantity of Shares Successfully Tendered. Optional.
        tenderedCashAmount:
          type: number
          format: decimal
          description: Tendered Cash Amount. Optional.
    SubmittedCorporateActionTenderOptions:
      type: array
      items:
        $ref: '#/components/schemas/SubmittedActionTenderOption'
    SubmittedActionTenderOption:
      type: object
      required:
        - tenderOption
      properties:
        tenderOption:
          $ref: '#/components/schemas/CorporateActionOptionEnum'
        submittedTenderQuantity:
          type: number
          format: decimal
          description: Submitted Tender Quantity
          example: 10
        quantitySuccessfullyTendered:
          type: number
          format: decimal
          description: Quantity successfully tendered after tender offer (TEND)
        tenderedCashAmount:
          type: number
          format: decimal
          description: Tendered cash amount after tender offer (TEND)
    MessageDirection:
      type: string
      enum:
        - I
        - O
      description: 'Message direction: ''I'' = input to SWIFT, ''O'' = output from SWIFT.'
      example: O
    CorporateActionEventTypeEnum:
      title: CorporateActionEventTypeEnum
      type: string
      description: Corporate action event type
      enum:
        - DVCA
        - INTR
        - REDM
        - BONU
        - SPLF
        - TEND
        - CHDV
        - EXRI
        - MEET
        - DVOP
        - LIQU
        - DVSE
        - SPLR
    PublishMT535Request:
      type: object
      required:
        - senderBIC
        - receiverBIC
        - messageDirection
        - messageReference
        - corporateActionMessageReference
        - messageType
        - statementDate
        - safeAccount
        - instruments
        - pageNumber
      properties:
        senderBIC:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z0-9]{8}([A-Z0-9]{3})?$
          description: Sender's BIC (BIC8 + branch code).
          example: EFISDEFFXXX
        receiverBIC:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z0-9]{8}([A-Z0-9]{3})?$
          description: Receiver's BIC (BIC8 + branch code).
          example: BANKDEFFXXX
        messageDirection:
          $ref: '#/components/schemas/MessageDirection'
        messageReference:
          type: string
          description: Unique message reference assigned by the sender.
          example: REF123456
        corporateActionMessageReference:
          type: string
          description: Reference to the corporate action.
          example: 1660513186
        messageType:
          type: string
          description: Message type.
          example: STMT
        statementDate:
          type: string
          format: date
          description: Statement date.
          example: '2024-01-15'
        pageNumber:
          type: string
          description: Page number.
          example: '1'
        statementFrequency:
          type: string
          description: Statement frequency. Optional.
        statementCode:
          type: string
          description: Statement code. Optional.
        statementType:
          type: string
          description: Statement type. Optional.
        statementBasis:
          type: string
          description: Statement basis. Optional.
        safeAccount:
          type: string
          description: Safe account.
          example: SAFE123456
        activityFlag:
          type: string
          description: Activity flag. Optional.
        consolidationFlag:
          type: string
          description: Consolidation flag. Optional.
        instruments:
          type: array
          minItems: 1
          description: List of instruments.
          items:
            $ref: '#/components/schemas/MT535Instrument'
    MT535Instrument:
      type: object
      required:
        - isin
        - totalValue
      properties:
        isin:
          type: string
          pattern: ^[A-Z]{2}[A-Z0-9]{9}\d$
          description: ISIN code. Required.
          example: DE0005140008
        totalValue:
          type: number
          format: decimal
          description: Total value in EUR. Required.
          example: 10000.5
        units:
          type: number
          format: decimal
          description: Number of units. Optional, defaults to 0 if not provided.
          example: 100
        name:
          type: string
          description: Instrument name (from ISIN additional data). Optional.
          example: Deutsche Bank AG
        unitPrice:
          type: number
          format: decimal
          description: Unit price. Optional.
          example: 100.005
        priceDate:
          type: string
          format: date
          description: Price date. Optional.
          example: '2024-01-15'
    PublishMT564Request:
      type: object
      required:
        - messageReference
        - corporateActionMessageReference
        - senderBIC
        - receiverBIC
        - messageDirection
        - actionType
        - isin
        - exDate
        - paymentDate
      properties:
        messageReference:
          type: string
          description: Message reference.
          example: REF123456
        corporateActionMessageReference:
          type: string
          description: Reference to the corporate action.
          example: 1660513186
        senderBIC:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z0-9]{8}([A-Z0-9]{3})?$
          description: Sender's BIC (BIC8 + branch code).
          example: EFISDEFFXXX
        receiverBIC:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z0-9]{8}([A-Z0-9]{3})?$
          description: Receiver's BIC (BIC8 + branch code).
          example: BANKDEFFXXX
        messageDirection:
          $ref: '#/components/schemas/MessageDirection'
        actionType:
          $ref: '#/components/schemas/CorporateActionEventTypeEnum'
        isin:
          type: string
          pattern: ^[A-Z]{2}[A-Z0-9]{9}\d$
          description: ISIN code. Required.
          example: DE0005140008
        exDate:
          type: string
          format: date
          description: Ex-date. Required.
          example: '2024-01-15'
        paymentDate:
          type: string
          format: date
          description: Payment date. Required.
          example: '2024-01-20'
        recordDate:
          type: string
          format: date
          description: Record date. Optional.
          example: '2024-01-14'
        automaticApprove:
          type: boolean
          description: Determines if Corporate action should be approved automatically.
          example: true
        cashDividendData:
          $ref: '#/components/schemas/CashDividendData'
        stockDividendData:
          $ref: '#/components/schemas/StockDividendData'
        stockSplitData:
          $ref: '#/components/schemas/StockSplitData'
        bonusIssueData:
          $ref: '#/components/schemas/BonusIssueData'
        tenderOfferData:
          $ref: '#/components/schemas/TenderOfferData'
        additionalText:
          type: string
          description: Narrative. Optional.
          example: Shareholders must submit a physical tax form by Friday
    PublishMT566Request:
      type: object
      required:
        - messageReference
        - corporateActionMessageReference
        - senderBIC
        - receiverBIC
        - messageDirection
        - actionType
        - isin
        - exDate
        - paymentDate
      properties:
        messageReference:
          type: string
          description: Message reference.
          example: REF123456
        corporateActionMessageReference:
          type: string
          description: Reference to the corporate action.
          example: 1660513186
        senderBIC:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z0-9]{8}([A-Z0-9]{3})?$
          description: Sender's BIC (BIC8 + branch code).
          example: EFISDEFFXXX
        receiverBIC:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z0-9]{8}([A-Z0-9]{3})?$
          description: Receiver's BIC (BIC8 + branch code).
          example: BANKDEFFXXX
        messageDirection:
          $ref: '#/components/schemas/MessageDirection'
        actionType:
          $ref: '#/components/schemas/CorporateActionEventTypeEnum'
        isin:
          type: string
          pattern: ^[A-Z]{2}[A-Z0-9]{9}\d$
          description: ISIN code. Required.
          example: DE0005140008
        exDate:
          type: string
          format: date
          description: Ex-date. Required.
          example: '2024-01-15'
        paymentDate:
          type: string
          format: date
          description: Payment date. Required.
          example: '2024-01-20'
        recordDate:
          type: string
          format: date
          description: Record date. Optional.
          example: '2024-01-14'
        cashDividendData:
          $ref: '#/components/schemas/CashDividendData'
        stockDividendData:
          $ref: '#/components/schemas/StockDividendData'
        stockSplitData:
          $ref: '#/components/schemas/StockSplitData'
        bonusIssueData:
          $ref: '#/components/schemas/BonusIssueData'
        tenderResultData:
          $ref: '#/components/schemas/TenderResultData'
        additionalText:
          type: string
          description: Narrative. Optional.
          example: Shareholders must submit a physical tax form by Friday
    CashDividendData:
      type: object
      required:
        - grossAmountPerShare
        - originalCurrency
        - taxPercent
      properties:
        grossAmountPerShare:
          type: number
          format: decimal
          description: Gross amount per share.
          example: 29.99
        originalCurrency:
          $ref: '#/components/schemas/CorporateActionCurrencyEnum'
        taxPercent:
          type: number
          format: decimal
          description: Percent of tax collected by custodian.
          example: 26.375
        exchangeRate:
          type: number
          format: decimal
          description: The exchange rate used to convert the originalCurrency to EUR. Required if originalCurrency is not EUR. Expressed as the amount of foreign currency per 1 EUR (e.g., 1 EUR = X foreign currency).
          example: 1.15
    StockSplitData:
      type: object
      required:
        - ratioTo
        - ratioFrom
      properties:
        ratioFrom:
          type: number
          format: decimal
          description: Ratio From.
          example: 10
        ratioTo:
          type: number
          format: decimal
          description: Ratio To.
          example: 10
        fractionalCashAmount:
          type: number
          format: decimal
          description: Cash in lieu of fractional shares.
          example: 26.5
        postedShares:
          type: number
          format: decimal
          description: Posted shares. Confirmed in an MT566 only; ignored in an MT564 announcement.
          example: 100
    BonusIssueAdminDecisionEnum:
      title: BonusIssueAdminDecisionEnum
      type: string
      description: Admin decision on how a bonus issue is treated for tax and cost basis. INTERNAL_REALLOCATION is a tax-neutral capital increase from company funds (ratio-based); EXTERNAL_CAPITAL_DISTRIBUTION is a taxable bonus issue valued at ex-date price.
      enum:
        - INTERNAL_REALLOCATION
        - EXTERNAL_CAPITAL_DISTRIBUTION
    BonusIssueData:
      type: object
      required:
        - ratioTo
        - ratioFrom
      properties:
        ratioFrom:
          type: number
          format: decimal
          description: Ratio From.
          example: 10
        ratioTo:
          type: number
          format: decimal
          description: Ratio To.
          example: 10
        fractionalCashAmount:
          type: number
          format: decimal
          description: Cash in lieu of fractional shares.
          example: 26.5
        postedShares:
          type: number
          format: decimal
          description: Posted shares. Confirmed in an MT566 only; ignored in an MT564 announcement.
          example: 100
        bonusIssueDecision:
          $ref: '#/components/schemas/BonusIssueAdminDecisionEnum'
    StockDividendData:
      type: object
      required:
        - ratioTo
        - ratioFrom
      properties:
        ratioFrom:
          type: number
          format: decimal
          description: Ratio From.
          example: 10
        ratioTo:
          type: number
          format: decimal
          description: Ratio To.
          example: 10
        fractionalCashAmount:
          type: number
          format: decimal
          description: Cash in lieu of fractional shares.
          example: 26.5
        postedShares:
          type: number
          format: decimal
          description: Posted shares. Confirmed in an MT566 only; ignored in an MT564 announcement.
          example: 100
    PublishMessageResponse:
      type: object
      properties:
        message:
          type: string
          description: Success message
        uetr:
          type: string
          format: uuid
          description: The UETR of the published message
      required:
        - message
        - uetr
    CorporateAction:
      title: CorporateAction
      type: object
      properties:
        corporateActionId:
          type: string
          format: uuid
        corporateActionEventType:
          $ref: '#/components/schemas/CorporateActionEventTypeEnum'
        isin:
          type: string
        status:
          $ref: '#/components/schemas/CorporateActionStatusEnum'
        dates:
          $ref: '#/components/schemas/CorporateActionDates'
        details:
          $ref: '#/components/schemas/CorporateActionDetails'
        customer:
          $ref: '#/components/schemas/CorporateActionCustomer'
        corporateActionReference:
          type: string
          description: Reference number linking related MT564 (announcement) and MT566 (settlement) events for the same corporate action
      required:
        - corporateActionId
        - corporateActionEventType
        - isin
        - status
        - dates
        - details
        - customer
    CorporateActions:
      title: Corporate Actions
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CorporateAction'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    CorporateActionStatusEnum:
      title: CorporateActionStatusEnum
      type: string
      description: Corporate action event status
      enum:
        - ANNOUNCED
        - PENDING
        - SETTLED
        - REJECTED
    CorporateActionDates:
      title: CorporateActionDates
      type: object
      properties:
        exDate:
          type: string
          format: date-time
        paymentDate:
          type: string
          format: date-time
        effectiveDate:
          type: string
          format: date-time
        recordDate:
          type: string
          format: date-time
        responseDeadline:
          type: string
          format: date-time
        createdOn:
          type: string
          format: date-time
        modifiedOn:
          type: string
          format: date-time
      required:
        - paymentDate
        - recordDate
        - exDate
        - createdOn
        - modifiedOn
    CorporateActionDetails:
      title: CorporateActionDetails
      type: object
      properties:
        ratioFrom:
          type: number
          format: decimal
          description: Ratio From for SPLF/BONU corporate actions
        grossAmountPerShare:
          type: number
        ratioTo:
          type: number
          format: decimal
          description: Ratio To for SPLF/BONU corporate actions.
        quantitySuccessfullyTendered:
          type: number
          format: decimal
          description: Quantity of shares successfully tendered for TEND corporate action.
        corporateActionOptions:
          $ref: '#/components/schemas/CorporateActionTenderOptions'
    CorporateActionCustomer:
      title: CorporateActionCustomer
      type: object
      properties:
        customerId:
          type: string
          format: uuid
        customerProductId:
          type: string
          format: uuid
        corporateActionCustomerId:
          type: string
          format: uuid
        eligibleQuantity:
          type: number
        oldQuantity:
          type: number
        newQuantity:
          type: number
        ratioFrom:
          type: number
        ratioTo:
          type: number
        grossAmount:
          type: number
        netAmount:
          type: number
        cashInLieuAmount:
          type: number
          format: decimal
          description: Cash paid for fractions in ratio-based Corporate Actions
        cashInLieuPrice:
          type: number
          format: decimal
          description: Price of fractional shares in ratio-based Corporate Actions
        fractionalSharesQuantity:
          type: number
          format: decimal
          description: Fractional shares customer eligible to in ratio-based Corporate Actions
        submittedCorporateActionOptions:
          $ref: '#/components/schemas/SubmittedCorporateActionTenderOptions'
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
        createdOn:
          type: string
          format: date-time
        modifiedOn:
          type: string
          format: date-time
      required:
        - customerId
        - customerProductId
        - corporateActionCustomerId
        - eligibleQuantity
        - createdOn
        - modifiedOn
        - currency
    CorporateActionTenderOptionEnum:
      title: CorporateActionTenderOptionEnum
      type: string
      description: Corporate Action Tender Options
      enum:
        - NONE
        - CASH
        - STOCK
    SubmitCustomerCorporateActionOptionRequest:
      title: SubmitCustomerCorporateActionOptionRequest
      type: object
      properties:
        depositoryCustomerProductId:
          type: string
          format: uuid
          description: The identifier of the depository customer product instance
        elections:
          type: array
          items:
            type: object
            properties:
              corporateActionOption:
                $ref: '#/components/schemas/CorporateActionOptionEnum'
              tenderedQuantity:
                type: number
                multipleOf: 1
                minimum: 1
                description: Number of shares to be tendered for the corporate action option.
            required:
              - corporateActionOption
              - tenderedQuantity
      required:
        - depositoryCustomerProductId
        - elections
    CorporateActionOptionEnum:
      title: CorporateActionOptionEnum
      type: string
      description: Tender Option
      enum:
        - NONE
        - CASH
        - STOCK
    CurrencyEnum:
      title: CurrencyEnum
      type: string
      description: Currency of the product's balance. Currency code in ISO 4217
      enum:
        - EUR
    Pagination:
      title: Pagination
      type: object
      properties:
        cursor:
          type: string
          description: String value used for pagination, which should be set in next page request.
        limit:
          type: integer
          description: Maximum number of returned items
      required:
        - cursor
        - limit
    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
    CorporateActionCurrencyEnum:
      title: CorporateActionCurrencyEnum
      type: string
      description: Currency of Corporate Action. Currency code in ISO 4217. Required for DVCA.
      enum:
        - CNY
        - TWD
        - ZAR
        - INR
        - KRW
        - BRL
        - AUD
        - BGN
        - CAD
        - CHF
        - CZK
        - DKK
        - EUR
        - HUF
        - JPY
        - NZD
        - NOK
        - GBP
        - PLN
        - RON
        - SEK
        - TRY
        - USD
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth2/token
          refreshUrl: ''
          scopes: {}
x-tagGroups:
  - name: Corporate Actions
    tags:
      - Corporate Actions
  - name: Mock Messages
    tags:
      - Corporate Action Mock Messages
