openapi: 3.0.1
info:
  x-metadata:
    tags:
      - Class Partner
  title: Investment Data
  version: '1.0'
  description: >-
    Provides endpoints for accessing and managing investment data, holding
    accounts, daily valuations, feed reconciliations, and bank account movements
    within a fund.



    <div class="env-panel" data-component-name="EnvPanel"><div
    class="env-panel__header">Servers</div><div class="env-panel__body"><div
    class="env-row"><div class="env-name">Partner Integration Environment
    (Sandbox)</div><div class="env-url-row"><span
    class="env-url">https://apigateway.class-pie.com.au/api/1.0</span><button
    type="button" class="copy-btn"
    data-copy="https://apigateway.class-pie.com.au/api/1.0"
    aria-label="Copy"><svg viewBox="0 0 16 16" fill="none"
    xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path
    fill-rule="evenodd" clip-rule="evenodd" d="M5.16667 2.66667C5.16667 2.57462
    5.24129 2.5 5.33333 2.5H12C12.092 2.5 12.1667 2.57462 12.1667
    2.66667V10.6667C12.1667 10.7587 12.092 10.8333 12 10.8333H10H5.33333C5.24129
    10.8333 5.16667 10.7587 5.16667 10.6667V4.66667V2.66667ZM4.16667
    4.16667V2.66667C4.16667 2.02233 4.689 1.5 5.33333 1.5H12C12.6443 1.5 13.1667
    2.02233 13.1667 2.66667V10.6667C13.1667 11.311 12.6443 11.8333 12
    11.8333H10.5V13.3333C10.5 13.6428 10.3771 13.9395 10.1583 14.1583C9.9395
    14.3771 9.64275 14.5 9.33333 14.5H2.66667C2.35725 14.5 2.0605 14.3771
    1.84171 14.1583C1.62292 13.9395 1.5 13.6428 1.5 13.3333V5.33333C1.5 5.02391
    1.62292 4.72717 1.84171 4.50838C2.0605 4.28958 2.35725 4.16667 2.66667
    4.16667H4.16667ZM9.5 11.8333V13.3333C9.5 13.3775 9.48244 13.4199 9.45118
    13.4512C9.41993 13.4824 9.37754 13.5 9.33333 13.5H2.66667C2.62246 13.5
    2.58007 13.4824 2.54882 13.4512C2.51756 13.4199 2.5 13.3775 2.5
    13.3333V5.33333C2.5 5.28913 2.51756 5.24674 2.54882 5.21548C2.58007 5.18423
    2.62246 5.16667 2.66667 5.16667H4.16667V10.6667C4.16667 11.311 4.689 11.8333
    5.33333 11.8333H9.5Z" fill="currentColor"/></svg></button></div></div><div
    class="env-row"><div class="env-name">Production Environment</div><div
    class="env-url-row"><span
    class="env-url">https://apigateway.class.com.au/api/1.0</span><button
    type="button" class="copy-btn"
    data-copy="https://apigateway.class.com.au/api/1.0" aria-label="Copy"><svg
    viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"
    aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.16667
    2.66667C5.16667 2.57462 5.24129 2.5 5.33333 2.5H12C12.092 2.5 12.1667
    2.57462 12.1667 2.66667V10.6667C12.1667 10.7587 12.092 10.8333 12
    10.8333H10H5.33333C5.24129 10.8333 5.16667 10.7587 5.16667
    10.6667V4.66667V2.66667ZM4.16667 4.16667V2.66667C4.16667 2.02233 4.689 1.5
    5.33333 1.5H12C12.6443 1.5 13.1667 2.02233 13.1667 2.66667V10.6667C13.1667
    11.311 12.6443 11.8333 12 11.8333H10.5V13.3333C10.5 13.6428 10.3771 13.9395
    10.1583 14.1583C9.9395 14.3771 9.64275 14.5 9.33333 14.5H2.66667C2.35725
    14.5 2.0605 14.3771 1.84171 14.1583C1.62292 13.9395 1.5 13.6428 1.5
    13.3333V5.33333C1.5 5.02391 1.62292 4.72717 1.84171 4.50838C2.0605 4.28958
    2.35725 4.16667 2.66667 4.16667H4.16667ZM9.5 11.8333V13.3333C9.5 13.3775
    9.48244 13.4199 9.45118 13.4512C9.41993 13.4824 9.37754 13.5 9.33333
    13.5H2.66667C2.62246 13.5 2.58007 13.4824 2.54882 13.4512C2.51756 13.4199
    2.5 13.3775 2.5 13.3333V5.33333C2.5 5.28913 2.51756 5.24674 2.54882
    5.21548C2.58007 5.18423 2.62246 5.16667 2.66667
    5.16667H4.16667V10.6667C4.16667 11.311 4.689 11.8333 5.33333 11.8333H9.5Z"
    fill="currentColor"/></svg></button></div></div></div></div>
tags:
  - name: Fund
    description: >-
      This refers to data held at an individual Fund level. Most of the end data
      entered into Class will be at a Fund level e.g. member and transaction
      date, this applies uniquely to the entity.
servers:
  - url: https://apigateway.class-pie.com.au/api/1.0
    description: Partner Integration Environment (Sandbox)
  - url: https://apigateway.class.com.au/api/1.0
    description: Production Environment
paths:
  /f/{businessCode}/{fundCode}/investment-data/holding-accounts/{holdingAccountId}/bank-account-movements:
    get:
      tags:
        - Fund
      operationId: getBankAccountMovements
      summary: Bank account movements
      description: Retrieves bank account movements for a specific holding account.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - $ref: '#/components/parameters/holdingAccountIdPathParam'
        - name: startDate
          in: query
          required: true
          description: Start date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          description: End date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2025-06-30'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentData_BankAccountMovementsDetail
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/holding-accounts/{holdingAccountId}/feed-reconciliation:
    get:
      tags:
        - Fund
      operationId: getFeedReconciliation
      summary: Feed reconciliation
      description: Retrieves feed reconciliation items for a specific holding account.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - $ref: '#/components/parameters/holdingAccountIdPathParam'
        - name: startDate
          in: query
          required: true
          description: Start date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          description: End date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2025-06-30'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentData_FeedReconciliationDetail
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/find-holding-accounts:
    get:
      tags:
        - Fund
      operationId: findHoldingAccounts
      summary: Find holding accounts
      description: >-
        Searches and retrieves holding accounts based on specified criteria
        within the Fund.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/HoldingAccountData_HoldingAccountDetail
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/holding-account-list:
    get:
      tags:
        - Fund
      operationId: getHoldingAccounts
      summary: Holding accounts
      description: Retrieves a list of all holding accounts within the Fund.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/HoldingAccountData_HoldingAccountDetail
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
              example:
                Data:
                  - Id: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
                    Code: AMP
                    FundId: 15c609de-b2da-4001-9fbb-98b89c4cdf74
                    FundCode: DEMO_SMSF_2025
                    BusinessCode: demo-business
                    Description: AMP Limited
                    MarketType: Listed Securities Market
                    MarketCode: ASX
                    Quantity: 5000
                    Cost: 22500
                    MarketPrice: 1.42
                    MarketValue: 7100
                    EffectiveStatusCode: Active
                    FundHoldingReference: Open Markets - 158948
                    AssetPoolName: Default Pool
                    SecurityIssueCode: AMP
                    GLInvestmentClassificationDescription: Shares in Listed Companies
                    GLInvestmentClassificationCode: ListedShares
                    Type: InvestmentAccount
                    BankAccountDetails: null
                  - Id: 3a9c71d8-2e5f-4b8a-a140-7d6e93f12c55
                    Code: BHP
                    FundId: 15c609de-b2da-4001-9fbb-98b89c4cdf74
                    FundCode: DEMO_SMSF_2025
                    BusinessCode: demo-business
                    Description: BHP Group Limited
                    MarketType: Listed Securities Market
                    MarketCode: ASX
                    Quantity: 550
                    Cost: 19250
                    MarketPrice: 44.2
                    MarketValue: 24307.38
                    EffectiveStatusCode: Active
                    FundHoldingReference: Open Markets - 158948
                    AssetPoolName: Default Pool
                    SecurityIssueCode: BHP
                    GLInvestmentClassificationDescription: Shares in Listed Companies
                    GLInvestmentClassificationCode: ListedShares
                    Type: InvestmentAccount
                    BankAccountDetails: null
                  - Id: f1153e6b-ff68-4ca5-9ea8-ae83765df9df
                    Code: BA17
                    FundId: 15c609de-b2da-4001-9fbb-98b89c4cdf74
                    FundCode: DEMO_SMSF_2025
                    BusinessCode: demo-business
                    Description: Macquarie CMA
                    MarketType: Bank
                    MarketCode: null
                    Quantity: 31407.38
                    Cost: 31407.38
                    MarketPrice: 1
                    MarketValue: 31407.38
                    EffectiveStatusCode: Active
                    FundHoldingReference: 123-456 - 971312328
                    AssetPoolName: Default Pool
                    SecurityIssueCode: BACCT
                    GLInvestmentClassificationDescription: Cash At Bank
                    GLInvestmentClassificationCode: OtherAssets.CashAtBank
                    Type: BankAccount
                    BankAccountDetails:
                      BsbCode: 123-456
                      AccountNumber: '971312328'
                      AccountName: >-
                        Class Super Pty Ltd ATF DEMO_SMSF_2025 Superannuation
                        Fund
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/holding-daily-info:
    get:
      tags:
        - Fund
      operationId: getHoldingDailyInformation
      summary: Holding daily information
      description: >-
        Retrieves daily position and flow information for all holdings within
        the Fund for a specified date range.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          required: true
          description: Start date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          description: End date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2025-06-30'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentData_HoldingsDailyInformationDetail
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/holding-account-valuation:
    get:
      tags:
        - Fund
      operationId: getHoldingsDailyValuations
      summary: Holdings daily valuations
      description: >-
        Retrieves daily valuations for all holdings within the Fund for a
        specified date range.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: startDate
          in: query
          required: true
          description: Start date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2024-07-01'
        - name: endDate
          in: query
          required: true
          description: End date for the reporting period (YYYY-MM-DD)
          schema:
            type: string
            format: date
            example: '2025-06-30'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentData_HoldingsDailyValuationsDetail
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/holding-accounts:
    get:
      operationId: getHoldingAccountsDetail
      summary: Holding accounts detail
      description: >-
        Retrieves detailed information for all holding accounts within the fund,
        including security codes, market types, statuses, and investment
        classifications.
      tags:
        - Fund
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentData_HoldingAccountsDetailData
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
              example:
                Data:
                  Links:
                    - Url: /api/1.0/f/demo-business/demo-fund/fund-data/fund-detail
                      Relation: fund
                    - Url: >-
                        /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts
                      Relation: self
                  HoldingAccounts:
                    - Links:
                        - Url: >-
                            /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts/6b4bf42c-5100-4da2-83a2-35201f9c06aa
                          Relation: self
                      Id: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
                      Code: AMP
                      Description: AMP Limited
                      SecurityIssueCode: AMP
                      MarketType: Listed Securities Market
                      MarketCode: ASX
                      Status: Active
                      IsInhouseAsset: false
                      Type: InvestmentAccount
                      GLInvestmentClassification:
                        Code: ListedShares
                        Description: Shares in Listed Companies
                    - Links:
                        - Url: >-
                            /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts/f1153e6b-ff68-4ca5-9ea8-ae83765df9df
                          Relation: self
                      Id: f1153e6b-ff68-4ca5-9ea8-ae83765df9df
                      Code: BA17
                      Description: AUD bank account with balance
                      SecurityIssueCode: BACCT
                      MarketType: Bank
                      MarketCode: null
                      Status: Active
                      IsInhouseAsset: false
                      Type: BankAccount
                      GLInvestmentClassification:
                        Code: OtherAssets.CashAtBank
                        Description: Cash At Bank
                    - Links:
                        - Url: >-
                            /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts/d86642cd-74db-4bd6-bae3-f12b5fc6f95d
                          Relation: self
                      Id: d86642cd-74db-4bd6-bae3-f12b5fc6f95d
                      Code: FX01
                      Description: FX bank account with balance
                      SecurityIssueCode: BACCT
                      MarketType: Bank - Foreign
                      MarketCode: null
                      Status: Active
                      IsInhouseAsset: true
                      Type: ForeignBankAccount
                      GLInvestmentClassification:
                        Code: OtherAssets.ForeignCashAtBank
                        Description: Foreign Cash At Bank
                    - Links:
                        - Url: >-
                            /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts/a1e7dfe4-59c2-42b9-ad62-9ce82c23719c
                          Relation: self
                      Id: a1e7dfe4-59c2-42b9-ad62-9ce82c23719c
                      Code: PA1
                      Description: Property Account 1
                      SecurityIssueCode: PD
                      MarketType: Property Direct Market
                      MarketCode: null
                      Status: Active
                      IsInhouseAsset: false
                      Type: PropertyAccount
                      GLInvestmentClassification:
                        Code: Property
                        Description: Direct Property
                    - Links:
                        - Url: >-
                            /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts/fab6127b-c198-4052-b523-6f0ffb6fa3cd
                          Relation: self
                      Id: fab6127b-c198-4052-b523-6f0ffb6fa3cd
                      Code: TD
                      Description: TermDeposit01
                      SecurityIssueCode: TDS
                      MarketType: Term Deposits
                      MarketCode: null
                      Status: Active
                      IsInhouseAsset: false
                      Type: TermDepositAccount
                      GLInvestmentClassification:
                        Code: OtherFixedInterest
                        Description: Other Fixed Interest Securities
                Errors: []
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
  /f/{businessCode}/{fundCode}/investment-data/holding-accounts/{holdingAccountId}:
    get:
      operationId: getHoldingAccountDetail
      summary: Holding account detail
      description: >-
        Retrieves detailed information for a single holding account within the
        fund by its unique identifier.
      tags:
        - Fund
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
        - name: holdingAccountId
          in: path
          description: The unique identifier (GUID) of the holding account to retrieve.
          required: true
          schema:
            type: string
            format: uuid
            example: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                required:
                  - Data
                properties:
                  Data:
                    $ref: >-
                      #/components/schemas/InvestmentData_HoldingAccountDetailData
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
              example:
                Data:
                  Links:
                    - Url: /api/1.0/f/demo-business/demo-fund/fund-data/fund-detail
                      Relation: fund
                    - Url: >-
                        /api/1.0/f/demo-business/demo-fund/investment-data/holding-accounts/6b4bf42c-5100-4da2-83a2-35201f9c06aa
                      Relation: self
                  Id: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
                  Code: AMP
                  Description: AMP Limited
                  SecurityIssueCode: AMP
                  MarketType: Listed Securities Market
                  MarketCode: ASX
                  Status: Active
                  IsInhouseAsset: false
                  Type: InvestmentAccount
                  GLInvestmentClassification:
                    Code: ListedShares
                    Description: Shares in Listed Companies
                Errors: []
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
                      name: Errors
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnauthorizedErrorCommon'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ForbiddenErrorCommon'
        '404':
          description: Resource not available or user does not have access to the fund
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUnavailableErrorCommon'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/InternalErrorCommon'
      security:
        - Class_oAuth:
            - fund.read
components:
  schemas:
    ApiError:
      type: object
      description: Represents an error returned by the API
      required:
        - Code
        - Message
      properties:
        Code:
          type: string
          description: A unique error code identifying the type of error
          example: VALIDATION_ERROR
        Message:
          type: string
          description: A human-readable message describing the error
          example: The request contains invalid data
    ApiResponseBase:
      type: object
      description: Base response structure for all API responses
      required:
        - Errors
      properties:
        ErrorCodes:
          type: array
          description: List of error codes returned by the API
          items:
            type: string
          example: []
        Errors:
          type: array
          description: List of detailed error objects
          items:
            $ref: '#/components/schemas/ApiError'
    HoldingAccountData_BankAccountDetail:
      type: object
      properties:
        BsbCode:
          type: string
          description: Identifying the financial institution and branch for the bank.
          example: 123-456
        AccountNumber:
          type: string
          description: Bank account number as provided by the financial institution.
          example: '000123456'
        AccountName:
          type: string
          description: Account holder name as it appears on the bank account.
          example: Operating Cash Account
    HoldingAccountData_HoldingAccountDetail:
      type: object
      properties:
        Id:
          type: string
          format: uuid
          description: Unique identifier of the holding account record.
          example: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
        Code:
          type: string
          description: >-
            System code for the holding account (often the security code for
            listed securities).
          example: AMP
        FundId:
          type: string
          format: uuid
          description: Unique identifier (GUID) of the fund that owns this holding.
          example: 15c609de-b2da-4001-9fbb-98b89c4cdf74
        FundCode:
          type: string
          description: Class entity code (fund code).
          example: DEMO_SMSF_2025
        BusinessCode:
          type: string
          description: Class business code (administrator/brand code).
          example: demo-business
        Description:
          type: string
          description: Human‑readable name/description of the investment holding.
          example: AMP Limited
        MarketType:
          type: string
          description: >-
            Market classification describing where the asset trades or how it is
            sourced.
          example: Listed Securities Market
        MarketCode:
          type: string
          description: Market or exchange code for the security (e.g., ASX, NASDAQ).
          example: ASX
        Quantity:
          type: number
          format: decimal
          description: Units/shares currently held (decimal supported).
          example: 5000
        Cost:
          type: number
          format: decimal
          description: >-
            Total cost base for the position in the fund's reporting currency
            (inclusive of prior corporate actions as recorded).
          example: 22500
        MarketPrice:
          type: number
          format: decimal
          description: >-
            Latest price per unit/share used for valuation (in the instrument's
            pricing currency mapped for the fund).
          example: 1.42
        MarketValue:
          type: number
          format: decimal
          description: >-
            Valuation amount for the position (typically Quantity × MarketPrice,
            after any internal rounding rules).
          example: 7100
        EffectiveStatusCode:
          allOf:
            - $ref: '#/components/schemas/StatusCode'
          description: >-
            Status of the holding account record (e.g., active vs. suspended) as
            per platform status codes.
          example: Active
        FundHoldingReference:
          type: string
          description: >-
            Name/identifier of the connected feed or platform account linked to
            this holding (Fund Holding Reference).
          example: Open Markets - 158948
        AssetPoolName:
          type: string
          description: >-
            Asset pool to which this holding is allocated within the fund (if
            applicable).
          example: Default Pool
        SecurityIssueCode:
          type: string
          description: >-
            Issuer/security code (may include market suffix for foreign
            listings).
          example: AMP
        GLInvestmentClassificationDescription:
          type: string
          description: >-
            General ledger investment classification (description) used for
            reporting.
          example: Shares in Listed Companies
        GLInvestmentClassificationCode:
          type: string
          description: General ledger investment classification (code) used for reporting.
          example: ListedShares
        Type:
          $ref: '#/components/schemas/HoldingAccountType'
        BankAccountDetails:
          $ref: '#/components/schemas/HoldingAccountData_BankAccountDetail'
    HoldingAccountType:
      type: string
      description: >-
        Type of holding account representing how the asset is held and reported
        (e.g., cash vs. listed security vs. term deposit).
      enum:
        - BankAccount
        - ForeignBankAccount
        - InvestmentAccount
        - PropertyAccount
        - CollectibleAccount
        - PlatformAccount
        - TermDepositAccount
    HoldingsDailyInformationDetail_HoldingDailyAccountFlowDetails:
      type: object
      properties:
        FlowAmount:
          type: number
          format: decimal
          description: Net cash flow amount of the holding.
          example: 1450.75
        Acquisitions:
          type: number
          format: decimal
          description: >-
            Acquisitions that increase the position (e.g., buy trades, unit
            subscriptions).
          example: 2000
        Disposals:
          type: number
          format: decimal
          description: >-
            Disposals that decrease the position (e.g., sell trades, unit
            redemptions).
          example: 549.25
    HoldingsDailyInformationDetail_HoldingDailyDetails:
      type: object
      description: Daily position and valuation details for a specific holding
      properties:
        HoldingAccountId:
          type: string
          description: Unique identifier of the holding account
          example: 0d465630-1f7c-4b7f-88d5-c366af2f8018
        Date:
          type: string
          format: date-time
          description: The date for this daily record
          example: '2024-07-01'
        Quantity:
          type: number
          format: decimal
          description: Number of units/shares held on this date
          example: 1250
        MarketValue:
          type: number
          format: decimal
          description: Market value of the holding on this date
          example: 11450
        BookCost:
          type: number
          format: decimal
          description: Book cost (cost base) of the holding
          example: 40045.91
        UnsettledCapitalPosition:
          type: number
          format: decimal
          description: Unsettled capital position awaiting settlement
          example: 0
        Price:
          type: number
          format: decimal
          description: Unit price on this date
          example: 9.16
        PriceDate:
          type: string
          format: date-time
          description: Date the price was recorded
          example: '2024-07-01'
        QuantityChange:
          type: number
          format: decimal
          description: Change in quantity from the previous day
          example: 0
        MarketValueChange:
          type: number
          format: decimal
          description: Change in market value from the previous day
          example: 125.5
        BookCostChange:
          type: number
          format: decimal
          description: Change in book cost from the previous day
          example: 0
        HoldingAccountFlow:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyAccountFlowDetails
          description: Cash flow details for the holding account
        UsingEntitlementDate:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyIncomeFlowContainer
          description: Income flow details using entitlement date accounting
        NotUsingEntitlementDate:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyIncomeFlowContainer
          description: Income flow details not using entitlement date accounting
    HoldingsDailyInformationDetail_HoldingDailyIncomeFlowContainer:
      type: object
      description: >-
        Container for income flow details including actual and speculative
        income
      properties:
        IncomeFlow:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyIncomeFlowDetails
          description: Actual recorded income flow details
        SpeculativeIncomeFlow:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyIncomeFlowDetails
          description: Speculative or estimated income flow details
    HoldingsDailyInformationDetail_HoldingDailyIncomeFlowDetails:
      type: object
      description: >-
        Breakdown of income flows including inflows, outflows, and unpaid
        balances
      properties:
        InflowAmount:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyTaxDetails
          description: Income inflow amounts with tax details
        OutflowAmount:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyTaxDetails
          description: Income outflow amounts with tax details
        UnpaidBalance:
          $ref: >-
            #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyTaxDetails
          description: Unpaid balance amounts with tax details
    HoldingsDailyInformationDetail_HoldingDailyTaxDetails:
      type: object
      description: Tax breakdown showing gross amounts and associated tax credits
      properties:
        Gross:
          type: number
          format: decimal
          description: Gross amount before tax
          example: 1500
        TaxCredits:
          type: number
          format: decimal
          description: Associated franking or tax credits
          example: 642.86
    HoldingsDailyInformationDetail_HoldingDetails:
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the holding account/security within the fund.
          example: 0d465630-1f7c-4b7f-88d5-c366af2f8018
        HoldingCode:
          type: string
          description: >-
            System or ticker code that identifies the holding (e.g., ASX code
            for listed securities).
          example: A2M
        Description:
          type: string
          description: Human‑readable description or display name of the holding.
          example: The A2 Milk Company Limited
        SecurityIssueId:
          type: string
          description: >-
            Internal identifier for the specific security issue (instrument)
            associated with this holding.
          example: 5b6a9c4d-6ab1-4f8a-9e5a-9f4f2b6a1e23
        SecurityIssueCode:
          type: string
          description: >-
            Security issue code used by the platform or registry (may match the
            ticker or include a suffix).
          example: A2M
        SecurityIssueName:
          type: string
          description: Full name of the security issue.
          example: The A2 Milk Company Limited
        MarketCode:
          type: string
          description: >-
            Code for the trading market or exchange on which the security is
            listed.
          example: ASX
        MarketAcronym:
          type: string
          description: Acronym for the market or exchange (often the same as MarketCode).
          example: ASX
        MarketAwareCode:
          type: string
          description: >-
            Market‑aware identifier combining the code and market to avoid
            ambiguity.
          example: A2M.ASX
        FundId:
          type: string
          description: >-
            Unique identifier of the fund that owns this holding (commonly a
            GUID/UUID).
          example: 15c609de-b2da-4001-9fbb-98b89c4cdf74
        FundCode:
          type: string
          description: Class entity code for the fund.
          example: DEMO_SMSF
        FundName:
          type: string
          description: Human‑readable name of the fund.
          example: Demo Super Fund
        BusinessCode:
          type: string
          description: >-
            Class business code (administrator/brand) under which the fund
            resides.
          example: demo-business
        ResolvedMarketTypeId:
          type: string
          description: >-
            Identifier of the platform‑standardised (resolved) market type
            mapped from native sources.
          example: 3f2504e0-4f89-11d3-9a0c-0305e82c3301
        ResolvedMarketTypeCode:
          type: string
          description: Platform‑standardised market type code.
          example: LISTED
        ResolvedMarketTypeName:
          type: string
          description: Platform‑standardised market type name.
          example: Listed Securities Market
        NativeMarketTypeId:
          type: string
          description: >-
            Source system’s original market type identifier (before
            standardisation).
          example: 9d5e3a87-2a64-4a4a-9b1c-4b2c9f3f1a77
        NativeMarketTypeCode:
          type: string
          description: Source system’s original market type code.
          example: ASX_LISTED
        NativeMarketTypeName:
          type: string
          description: Source system’s original market type name.
          example: ASX Listed
        EffectiveStatusCode:
          allOf:
            - $ref: '#/components/schemas/StatusCode'
          description: >-
            Status of the holding record (e.g., Active, Suspended) at the time
            of extraction.
          example: Active
        FundHoldingReferenceId:
          type: string
          description: >-
            Identifier of the Fund Holding Reference (linked feed/platform
            account) associated with this holding.
          example: b79e51a1-ea44-4b21-98fa-c4ed22f3b800
        FundHoldingReferenceDescription:
          type: string
          description: Display name/description of the linked Fund Holding Reference.
          example: Open Markets - 158948
        AssetPoolName:
          type: string
          description: >-
            Name of the asset pool within the fund to which this holding is
            allocated.
          example: Default Pool
        GLInvestmentClassificationId:
          type: string
          description: >-
            Identifier of the general ledger investment classification applied
            to this holding.
          example: LISTED_SHARES
        GLInvestmentClassificationDescription:
          type: string
          description: Description of the general ledger investment classification.
          example: Shares in Listed Companies
        GLInvestmentClassificationCode:
          type: string
          description: Code of the general ledger investment classification.
          example: Shares in Listed Companies
        HoldingAccountType:
          allOf:
            - $ref: '#/components/schemas/HoldingAccountType'
          description: >-
            Type/category of the holding account (e.g., InvestmentAccount,
            BankAccount, TermDeposit).
          example: InvestmentAccount
        IncludeInPerformanceReports:
          type: boolean
          description: >-
            Indicates whether this holding should be included in performance
            calculations and reports.
          example: true
    HoldingsDailyValuationsDetail_DailyValuation:
      type: object
      properties:
        Date:
          type: string
          description: The date for daily valuation holdings of the assets.
          example: '2024-07-01'
        Value:
          type: number
          description: The market valuation of the assets.
          format: decimal
          example: 0
    HoldingsDailyValuationsDetail_HoldingValuations:
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier of the holding account/security within the fund.
          example: 0d465630-1f7c-4b7f-88d5-c366af2f8018
        Code:
          type: string
          description: >-
            Ticker or system code for the holding (e.g., ASX code for listed
            securities).
          example: A2M
        Name:
          type: string
          description: Human‑readable instrument or holding name.
          example: The A2 Milk Company Limited
        FundHoldingReference:
          type: string
          description: >-
            Display name of the linked feed/platform account (Fund Holding
            Reference) for this holding.
          example: Open Markets - 158948
        FundHoldingReferenceId:
          type: string
          description: >-
            Identifier of the Fund Holding Reference associated with this
            holding.
          example: b79e51a1-ea44-4b21-98fa-c4ed22f3b800
        MarketType:
          type: string
          description: >-
            Market grouping/type indicating where/how the asset is traded or
            sourced.
          example: Listed Securities Market
        MarketTypeId:
          type: string
          description: Internal identifier for the market type.
          example: 3f2504e0-4f89-11d3-9a0c-0305e82c3301
        AssetPool:
          type: string
          description: >-
            Name of the asset pool within the fund to which this holding is
            allocated.
          example: Default Pool
        GlClassification:
          type: string
          description: General ledger investment classification used for reporting.
          example: Shares in listed companies
        DailyValuations:
          type: array
          items:
            $ref: '#/components/schemas/HoldingsDailyValuationsDetail_DailyValuation'
    InvestmentData_HoldingsDailyInformationDetail:
      type: object
      properties:
        StartDate:
          type: string
          description: >-
            Start date/time for the daily holdings information included in the
            response.
          example: '2024-07-01'
        EndDate:
          type: string
          description: >-
            End date/time for the daily holdings information included in the
            response.
          example: '2025-06-30'
        Holdings:
          type: array
          description: >-
            List of holdings covered in the period; provides static/context
            details for each holding.
          items:
            $ref: '#/components/schemas/HoldingsDailyInformationDetail_HoldingDetails'
        DailyDetails:
          type: array
          description: Daily data points for each holding across the specified period.
          items:
            $ref: >-
              #/components/schemas/HoldingsDailyInformationDetail_HoldingDailyDetails
    InvestmentData_HoldingsDailyValuationsDetail:
      type: object
      properties:
        FundId:
          type: string
          description: Unique identifier of the fund.
          example: 15c609de-b2da-4001-9fbb-98b89c4cdf74
        FundCode:
          type: string
          description: Class entity code for the fund.
          example: DEMO_SMSF
        FundName:
          type: string
          description: Class entity name for the fund.
          example: Demo Super Fund
        StartDate:
          type: string
          format: date-time
          description: Start of the date range for which daily valuations are included.
          example: '2024-07-01'
        EndDate:
          type: string
          format: date-time
          description: End of the date range for which daily valuations are included.
          example: '2025-06-30'
        HoldingsValuations:
          type: array
          items:
            $ref: >-
              #/components/schemas/HoldingsDailyValuationsDetail_HoldingValuations
    InvestmentData_Link:
      type: object
      description: Hypermedia link for navigating to related API resources
      properties:
        Url:
          type: string
          description: The URL to access the related resource
          example: >-
            /f/demo-business/demo-fund/investment-data/holding-accounts/0d465630-1f7c-4b7f-88d5-c366af2f8018
        Relation:
          type: string
          description: The relationship type of the link (e.g., self, related)
          example: self
    StatusCode:
      type: string
      description: The status of a holding account or investment within the Fund
      enum:
        - Active
        - Cancelled
        - Pending
        - Suspended
      example: Active
    InternalErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_INTERNAL_ERROR
        Message:
          type: string
          example: An unexpected error occurred on the server. Please try again later.
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
      additionalProperties: false
    ForbiddenErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: FORBIDDEN
        Message:
          type: string
          example: You do not have permission to access this resource.
    ResourceUnavailableErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_FOUND
        Message:
          type: string
          example: Resource not available or user does not have access to the fund.
    UnauthorizedErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_AUTHORISED
        Message:
          type: string
          example: Not authorised
    InvestmentData_FeedReconciliationDetail:
      type: object
      properties:
        ReconciliationItems:
          type: array
          description: List of feed reconciliation items
          items:
            $ref: '#/components/schemas/InvestmentData_ReconciliationItem'
    InvestmentData_ReconciliationItem:
      type: object
      properties:
        Date:
          type: string
          format: date
          description: The date of the reconciliation item
          example: '2024-07-01'
        Description:
          type: string
          description: Description of the reconciliation balance
          example: Opening Balance
        LedgerQuantity:
          type: number
          nullable: true
          description: The recorded ledger quantity
        LedgerBalance:
          type: number
          format: decimal
          description: The recorded ledger balance
          example: 3700
        FeedQuantity:
          type: number
          nullable: true
          description: The feed quantity reported
        FeedBalance:
          type: number
          nullable: true
          description: The feed balance reported
        Difference:
          type: number
          nullable: true
          description: The computed difference between ledger and feed
    InvestmentData_BankAccountMovementsDetail:
      type: object
      properties:
        Links:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentData_Link'
        Code:
          type: string
          description: The account code
          example: Bank
        Description:
          type: string
          description: The description of the bank account
          example: Test CMA
        CurrencyCode:
          type: string
          description: The currency of the bank account
          example: AUD
        Status:
          type: string
          description: The status of the account
          example: Active
        Balance:
          $ref: '#/components/schemas/InvestmentData_BankAccountBalance'
        Transactions:
          type: array
          description: A list of bank account transactions
          items:
            type: object
    InvestmentData_BankAccountBalance:
      type: object
      properties:
        StartDate:
          type: string
          format: date-time
          description: The start date of the balance period
          example: '2024-07-01T00:00:00'
        EndDate:
          type: string
          format: date-time
          description: The end date of the balance period
          example: '2025-06-30T00:00:00'
        OpeningBalance:
          type: number
          format: decimal
          description: The opening balance for the period
          example: 96190.11
        TotalDeposit:
          type: number
          format: decimal
          description: The total amount deposited
          example: 0
        TotalWithdrawal:
          type: number
          format: decimal
          description: The total amount withdrawn
          example: 0
        ClosingBalance:
          type: number
          format: decimal
          description: The closing balance for the period
          example: 96190.11
    InvestmentData_GLInvestmentClassification:
      type: object
      description: General ledger investment classification for a holding account.
      properties:
        Code:
          type: string
          description: The classification code used for reporting.
          example: ListedShares
        Description:
          type: string
          description: A human-readable description of the classification.
          example: Shares in Listed Companies
    InvestmentData_HoldingAccountItem:
      type: object
      description: Represents a single holding account with summary-level detail.
      properties:
        Links:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentData_Link'
          description: Navigation links for this holding account.
        Id:
          type: string
          format: uuid
          description: Unique identifier of the holding account.
          example: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
        Code:
          type: string
          description: System code for the holding account.
          example: AMP
        Description:
          type: string
          description: Human-readable name of the holding account.
          example: AMP Limited
        SecurityIssueCode:
          type: string
          description: The security issue code identifying the instrument.
          example: AMP
        MarketType:
          type: string
          description: Market classification of the asset.
          example: Listed Securities Market
        MarketCode:
          type: string
          nullable: true
          description: >-
            Market or exchange code (e.g. ASX, NASDAQ). Null for non-exchange
            assets.
          example: ASX
        Status:
          type: string
          description: Current status of the holding account.
          example: Active
        IsInhouseAsset:
          type: boolean
          description: Indicates whether the asset is managed in-house.
          example: false
        Type:
          $ref: '#/components/schemas/HoldingAccountType'
          description: The type of holding account.
        GLInvestmentClassification:
          $ref: '#/components/schemas/InvestmentData_GLInvestmentClassification'
          description: General ledger investment classification.
    InvestmentData_HoldingAccountsDetailData:
      type: object
      description: >-
        Response data for the holding accounts list, containing navigation links
        and an array of holding accounts.
      properties:
        Links:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentData_Link'
          description: Navigation links for the holding accounts collection.
        HoldingAccounts:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentData_HoldingAccountItem'
          description: List of holding accounts in the fund.
    InvestmentData_HoldingAccountDetailData:
      type: object
      description: >-
        Response data for a single holding account detail, including navigation
        links and account information.
      properties:
        Links:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentData_Link'
          description: Navigation links for this holding account.
        Id:
          type: string
          format: uuid
          description: Unique identifier of the holding account.
          example: 6b4bf42c-5100-4da2-83a2-35201f9c06aa
        Code:
          type: string
          description: System code for the holding account.
          example: AMP
        Description:
          type: string
          description: Human-readable name of the holding account.
          example: AMP Limited
        SecurityIssueCode:
          type: string
          description: The security issue code identifying the instrument.
          example: AMP
        MarketType:
          type: string
          description: Market classification of the asset.
          example: Listed Securities Market
        MarketCode:
          type: string
          nullable: true
          description: Market or exchange code. Null for non-exchange assets.
          example: ASX
        Status:
          type: string
          description: Current status of the holding account.
          example: Active
        IsInhouseAsset:
          type: boolean
          description: Indicates whether the asset is managed in-house.
          example: false
        Type:
          $ref: '#/components/schemas/HoldingAccountType'
          description: The type of holding account.
        GLInvestmentClassification:
          $ref: '#/components/schemas/InvestmentData_GLInvestmentClassification'
          description: General ledger investment classification.
  securitySchemes:
    Class_oAuth:
      type: oauth2
      description: Class uses oAuth2 and OpenID for authentication and authorisation
      flows:
        authorizationCode:
          authorizationUrl: https://app.class-test.com.au/connect/authorize
          tokenUrl: https://app.class-test.com.au/connect/token
          scopes:
            business.fund.list: List summarised data of funds in the business
            business.fund.create: Create new funds in the business
            fund.details.read: View basic fund details
            fund.details.maintain: View and maintain basic fund details
            fund.member.read: View member details
            fund.member.maintain: View and maintain member details
            fund.read: View all fund information
            fund.maintain: View and maintain all fund information
  parameters:
    businessCodeParam:
      name: businessCode
      in: path
      description: Class business code
      required: true
      schema:
        type: string
        example: demo-business
    fundCodeParam:
      name: fundCode
      description: Class entity code
      in: path
      required: true
      schema:
        type: string
        example: demo-fund
    holdingAccountIdPathParam:
      name: holdingAccountId
      in: path
      description: The unique identifier (GUID) of the holding account
      required: true
      schema:
        type: string
        format: uuid
        example: 19513fa5-b359-4484-b47a-8984b4de6f43
