openapi: 3.0.1
info:
  x-metadata:
    tags:
      - Class Partner
  title: Fund Data
  version: '1.0'
  description: >-
    Provides comprehensive fund-related data through various endpoints.

    These endpoints supports a wide range of functionalities, and commonly
    integrates accounting platforms, audit work papers, compliance engines, and
    member portals by delivering structured, consistent fund related data.:

    - Retrieving lists of available funds and accessing detailed information
    about each fund.

    - Extracting legal structure attributes, trustee types, and compliance
    status.

    - Obtaining member-level data such as pension details, beneficiary
    designations, and personal identifiers.

    - Exporting fund-specific policies and configurations used in calculations
    and reporting, including:
      - Data feed products linked to the fund, such as investment platforms or brokerage feeds.
      - High-level investment and holding account structures, including classifications for fund reporting.
      - General ledger classifications for financial reconciliation and audit alignment.
      - Pension specifications such as product types, commencement dates, and regulatory flags.


    <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>
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
tags:
  - name: Business
    description: >-
      A Business refers to any single accounting firm/financial
      planner/administrator. Business data sits at a higher level than fund
      level data in the hierarchy as it can contain multiple funds.
  - 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.
paths:
  /f/{businessCode}/{fundCode}/fund-data/fund-detail:
    get:
      tags:
        - Fund
      operationId: getFundDetail
      summary: Fund detail
      description: >-
        Access fund information such as the funds name, ABN, status, and contact
        details.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                properties:
                  Data:
                    $ref: '#/components/schemas/FundData_FundDetail'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '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.details.read
    post:
      tags:
        - Fund
      operationId: UpdateDetailsFundCommunity
      summary: Update fund detail
      description: Update the details of a fund.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FundData_FundDetail'
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - $ref: '#/components/parameters/fundCodeParam'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                properties:
                  Data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FundData_AllFundsList'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '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.details.maintain
  /b/{businessCode}/fund-data/fund-list:
    get:
      operationId: getFundList
      summary: Fund list
      tags:
        - Business
      description: The list of all the funds within the business with summarised details.
      parameters:
        - $ref: '#/components/parameters/businessCodeParam'
        - name: FundTags
          in: query
          description: Filter the funds returned based on tags attached to the fund
          required: false
          schema:
            type: string
            example: FY2025
        - name: brandCode
          in: query
          description: The Brand Code that the fund is grouped under.
          required: false
          schema:
            type: string
            example: demo-brand
        - name: relevanceSearch
          in: query
          description: Relevance Search
          required: false
          schema:
            type: boolean
            example: true
        - name: Search
          in: query
          description: Search terms to filter
          required: false
          schema:
            type: string
            example: demo-fund
        - name: legalEntityType
          in: query
          description: Legal Entity Type
          required: false
          schema:
            $ref: '#/components/schemas/LegalEntityType'
          examples:
            SMSF:
              value: SMSF
            SAF:
              value: SAF
            Personal:
              value: Personal
            Trust:
              value: Trust
            Company:
              value: Company
            Partnership:
              value: Partnership
            Consolidated:
              value: Consolidated
        - name: statusCode
          in: query
          description: Status Code
          required: false
          schema:
            $ref: '#/components/schemas/CoreConcepts_StatusCode'
          examples:
            Active:
              value: Active
            Cancelled:
              value: Cancelled
            Pending:
              value: Pending
            Suspended:
              value: Suspended
        - name: ABN
          in: query
          description: Australian Business Number
          required: false
          schema:
            type: string
          example: '53004085616'
      responses:
        '200':
          description: Success (Ok)
          content:
            application/json:
              schema:
                type: object
                properties:
                  Data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FundData_FundListDetail'
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
        '400':
          description: Error Message
          content:
            application/json:
              schema:
                type: object
                properties:
                  Errors:
                    type: array
                    items:
                      type: object
                      properties:
                        Code:
                          type: string
                          example: API_INVALID_PARAMETER
                        Message:
                          type: string
                          example: The BrandCode parameter is invalid
        '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:
            - business.fund.list
components:
  parameters:
    fundCodeParam:
      name: fundCode
      description: Class entity code
      in: path
      required: true
      schema:
        type: string
        example: demo-fund
    businessCodeParam:
      name: businessCode
      in: path
      description: Class business code
      required: true
      schema:
        type: string
        example: demo-business
  schemas:
    AnnualRetAddressCode:
      type: string
      enum:
        - Default
        - Brand
        - Fund
        - TaxAgent
        - Business
    ApiError:
      type: object
      properties:
        Code:
          type: string
          nullable: true
        Message:
          type: string
          nullable: true
    ApiResponseBase:
      type: object
      properties:
        Errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
    ApiRestLink:
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier for the API resource link.
          example: 58edab15-b993-43de-b653-84b7a86d5746
        Url:
          type: string
          description: >-
            The URL endpoint that provides access to the specific fund data
            resource.
          example: >-
            http://api.class.com.au/api/1.0/f/demo-business/DEMO_SMSF_2025/fund-data/fund-detail
    BeneficiaryTypeEnum:
      type: string
      enum:
        - Person
        - Organisation
    BindingStatusType:
      type: string
      enum:
        - Binding
        - Invalid
        - NoNomination
        - StatementOfWishes
        - NonBinding
        - NonLapsingBindingDeathNomination
    CoreConcepts_StatusCode:
      type: string
      enum:
        - Active
        - Cancelled
        - Pending
        - Suspended
    ExpenseExemptionCalculationMethod:
      type: string
      enum:
        - CalculateUsingATOFormula
        - UseActuarialPercentage
        - ManuallySpecifyPercentage
    FundAccessDetail_FundAccessSummary:
      type: object
      properties:
        FundId:
          type: string
          example: 15c609de-b2da-4001-9fbb-98b89c3cdf73
          description: Unique identifier of the fund being accessed.
        CanWrite:
          type: boolean
          example: true
          description: Indicates whether the user has write permissions for the fund.
    FundData_AllFundsList:
      type: object
      properties:
        Funds:
          type: array
          items:
            $ref: '#/components/schemas/FundData_BasicFundInfo'
          description: List of basic fund information entries.
        Count:
          type: integer
          format: int32
          example: 1
          description: Total number of funds in the list
    FundData_BasicFundInfo:
      type: object
      properties:
        Id:
          $ref: '#/components/schemas/guid'
          description: Unique identifier for the fund.
        ScopeUrl:
          type: string
          example: http://api.example.com/fund/scope/123
          description: Url representing the scope of the fund.
        FriendlyScopeUrl:
          type: string
          example: http://example.com/fund/123
          description: User-friendly url for accessing the fund.
        LegalEntityType:
          $ref: '#/components/schemas/LegalEntityType'
          description: Legal entity type of the fund.
        StatusCode:
          $ref: '#/components/schemas/StatusCode'
          description: Current status code of the fund.
    FundData_FundAccessDetail:
      type: object
      properties:
        FundAccessSummaries:
          type: array
          items:
            $ref: '#/components/schemas/FundAccessDetail_FundAccessSummary'
          description: List of fund access summaries.
        TotalCount:
          type: integer
          format: int32
          example: 1
          description: Total number of fund access entries.
    FundData_FundBasicDetail:
      type: object
      required:
        - Brand
        - Tags
        - Code
        - Name
        - PreviousName
        - LegalType
        - IsResident
        - Abn
        - Tfn
        - Sfn
        - RseRegistrationNumber
        - LastActivatedBy
        - LastSuspendedBy
        - IsNonSuper
        - Asn
      properties:
        Brand:
          type: string
          example: FY2025
          description: Unique identifier for the brand associated with the fund.
        Tags:
          type: array
          items:
            type: string
            example: FY2025
          description: >-
            List of tags categorising the fund, such as fiscal year or
            classification.
        EstablishmentDeedDate:
          type: string
          format: date-time
          example: '2003-12-17'
          description: Date the fund's establishment deed was signed.
        EndDate:
          type: string
          format: date-time
          example: '2025-12-31'
          description: Date the fund ceased operations, if applicable.
        FundStartDate:
          type: string
          format: date-time
          example: '2024-07-01'
          description: Official start date of the fund's operation.
        OnSystemDate:
          type: string
          format: date-time
          example: '2024-08-01'
          description: Date the fund was added to the system.
        Code:
          type: string
          example: DEMO_SMSF_2025
          description: Unique code identifier for the fund.
        Name:
          type: string
          example: Demo Superannuation Fund 2025
          description: Full name of the fund.
        PreviousName:
          type: string
          example: null
          description: Former name of the fund, if it has been renamed.
        LegalType:
          $ref: '#/components/schemas/LegalEntityType'
          description: Legal structure or classification of the fund.
        IsResident:
          type: boolean
          example: true
          description: >-
            Indicates whether the fund is considered a resident for tax
            purposes.
        Abn:
          type: string
          example: '53004085616'
          description: Australian business number (ABN) of the fund.
        Tfn:
          type: string
          example: '972123781'
          description: Tax file number (TFN) of the fund.
        Sfn:
          type: string
          example: '123456789'
          description: >-
            Superannuation Fund Number (SFN), a unique identifier assigned to
            the fund by the ATO. Required for reporting and compliance purposes.
        RseRegistrationNumber:
          type: string
          example: R1001234
          description: >-
            Registration number for the fund as a Registrable Superannuation
            Entity (RSE), issued by APRA.
        RseEffectiveDate:
          type: string
          format: date-time
          example: '2024-01-01'
          description: >-
            Date the fund's RSE registration became effective. Must follow ISO
            8601 format.
        LastActivated:
          type: string
          format: date-time
          example: '2025-09-15'
          description: Timestamp of the most recent activation of the fund in the system.
        LastActivatedBy:
          type: string
          example: John Smith
          description: Identifier of the user or system that last activated the fund.
        LastSuspended:
          type: string
          format: date-time
          example: '2025-06-01'
          description: Timestamp of the most recent suspension of the fund.
        LastSuspendedBy:
          type: string
          example: MBARNES
          description: Identifier of the user or system that last suspended the fund.
        IsNonSuper:
          type: boolean
          example: false
          description: Indicates whether the fund is a non-superannuation fund.
        Asn:
          type: string
          example: null
          description: Australian securities number (ASN), if applicable.
    FundData_FundContactDetail:
      type: object
      required:
        - Phone
        - Url
      properties:
        Phone:
          type: string
          example: '04150123456'
          description: Primary phone number for contacting the fund.
        Url:
          type: string
          example: null
          description: Website URL associated with the fund.
        Fax:
          type: string
          example: 28638123
          description: Fax number for the fund.
        Email:
          type: string
          example: john.doe@example.com
          description: Email address for fund correspondence.
        UsePhysicalAddressForMailingAddress:
          type: boolean
          example: true
          description: >-
            Indicates if the physical address should be used as the mailing
            address.
        PhysicalAddress:
          type: object
          properties:
            Type:
              type: string
              example: Physical
              description: Type of address, typically 'Physical'.
            Addressee:
              type: string
              example: John Doe
              description: Name of the person or entity receiving correspondence.
            Line1:
              type: string
              example: 123 Example Street
              description: First line of the street address.
            Line2:
              type: string
              example: Suite 456
              description: Second line of the street address.
            Line3:
              type: string
              example: null
              description: Third line of the street address.
            Line4:
              type: string
              example: null
              description: Fourth line of the street address.
            Suburb:
              type: string
              example: Sampletown
              description: Suburb or locality of the address.
            ValidateAddress:
              type: boolean
              example: false
              description: Indicates whether the address should be validated.
            State:
              type: string
              example: NSW
              description: State or territory of the address.
            PostCode:
              type: string
              example: '2000'
              description: Postal code of the address.
            Country:
              type: string
              example: AUS
              description: Country of the address.
        MailingAddress:
          type: object
          properties:
            Type:
              type: string
              example: Mailing
              description: Type of address, typically 'Mailing'.
            Addressee:
              type: string
              example: John Doe
              description: Name of the person or entity receiving correspondence.
            Line1:
              type: string
              example: PO Box 789
              description: First line of the mailing address.
            Line2:
              type: string
              example: null
              description: Second line of the mailing address.
            Line3:
              type: string
              example: null
              description: Third line of the mailing address.
            Line4:
              type: string
              example: null
              description: Fourth line of the mailing address.
            Suburb:
              type: string
              example: Mailville
              description: Suburb or locality of the mailing address.
            ValidateAddress:
              type: boolean
              example: true
              description: Indicates whether the mailing address should be validated.
            State:
              type: string
              example: NSW
              description: State or territory of the mailing address.
            PostCode:
              type: string
              example: '2001'
              description: Postal code of the mailing address.
            Country:
              type: string
              example: AUS
              description: Country of the mailing address.
    FundData_FundDetail:
      type: object
      required:
        - Link
        - Status
        - FundDetails
        - ContactDetails
      properties:
        Link:
          $ref: '#/components/schemas/ApiRestLink'
          description: Hyperlink reference to the fund's API resource.
        Status:
          $ref: '#/components/schemas/StatusCode'
          description: Current status code of the fund.
        FundDetails:
          $ref: '#/components/schemas/FundData_FundBasicDetail'
          description: Basic details of the fund.
        ContactDetails:
          $ref: '#/components/schemas/FundData_FundContactDetail'
    FundData_FundListDetail:
      type: object
      properties:
        FundSummaries:
          type: array
          description: >-
            A collection of summary details for each fund that matches the query
            criteria.
          items:
            $ref: '#/components/schemas/FundListDetail_FundSummary'
        TotalCount:
          type: integer
          description: >-
            The total number of fund records returned in the response. Useful
            for pagination or display purposes.
          format: int32
          example: 1
    FundData_FundWhiteLabelDetail:
      type: object
      properties:
        FundWhiteLabel:
          type: array
          items:
            $ref: '#/components/schemas/FundWhiteLabelDetail_FundWhiteLabelData'
        TotalCount:
          type: integer
          format: int32
          example: 3
    FundImports_FundReferenceData:
      type: object
      properties:
        Code:
          type: string
          example: demo-fund
          description: Unique code identifier for the fund.
          required: true
        BrandCode:
          type: string
          example: demo-brand
          description: Code representing the brand associated with the fund.
        LegalType:
          $ref: '#/components/schemas/FundLegalType'
          description: Legal classification of the fund.
        TrustType:
          $ref: '#/components/schemas/TrustTypes'
          description: Type of trust structure used by the fund.
        IsComplying:
          type: boolean
          example: false
          description: Indicates whether the fund complies with regulatory requirements.
        IsResident:
          type: boolean
          example: true
          description: Indicates whether the fund is a resident for tax purposes.
        Administrator:
          type: string
          example: John Doe
          description: Name of the administrator managing the fund.
        Name:
          type: string
          example: DEMO_SMSF_2025
          description: Name of the fund.
        PreviousName:
          type: string
          example: null
          description: Previous name of the fund, if applicable.
        ABN:
          type: string
          example: '53004085616'
          description: Australian business number of the fund.
        SFN:
          type: string
          example: null
          description: Superannuation fund number, if applicable.
        TFN:
          type: string
          example: '972123781'
          description: Tax file number of the fund.
        RSEDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataRSEDetails'
          description: Details of the registrable superannuation entity.
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Physical address of the fund.
        UsePhysicalAsMailing:
          type: boolean
          example: true
          description: >-
            Indicates whether the physical address should be used as the mailing
            address.
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Mailing address of the fund.
        AnnualReturnAddressFrom:
          $ref: '#/components/schemas/AnnualRetAddressCode'
          description: Source of the annual return address.
        AnnualReturnAddressFromSpecified:
          type: boolean
          example: true
          description: Indicates whether the annual return address source is specified.
        Phone:
          type: string
          example: 418652598
          description: Contact phone number for the fund.
        Fax:
          type: string
          example: null
          description: Fax number for the fund.
        Email:
          type: string
          example: JohnDoe@gmail.com
          description: Email address for the fund.
        URL:
          type: string
          example: null
          description: Website URL for the fund.
        StartDate:
          type: string
          format: date
          example: '2020-06-30'
          description: Start date of the fund's operation.
        StartDateSpecified:
          type: boolean
          example: true
          description: Indicates whether the start date is specified.
        TrustDeeds:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataTrustDeed'
          description: List of trust deeds associated with the fund.
        TrusteeCompanyDetails:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataTrusteeCompanyDetails
          description: Details of the trustee company managing the fund.
        NonMemberTrusteeDetails:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataNonMemberTrusteeDetails
          description: Details of trustees who are not members of the fund.
        FundPolicies:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataFundPolicy'
          description: List of policies applicable to the fund.
        FundHoldingReferences:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataFundHoldingReference
          description: References to fund holdings and external identifiers.
        FundInvestmentReturns:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataFundReturn'
          description: Investment return records for the fund.
        MemberDetails:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataMemberDetail'
          description: Details of members associated with the fund.
        BeneficiaryDetails:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataBeneficiaryDetail
          description: Details of beneficiaries associated with the fund.
        ReserveDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataReserveDetails'
          description: Details of reserve accounts within the fund.
        InvestmentDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataInvestmentDetails'
          description: Details of investments held by the fund.
        FeedsProductsDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataFeedsProducts'
          description: Details of feeds and products linked to the fund.
        InvestmentStrategy:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataComponent'
          description: Investment strategy components and allocations.
        AssetPoolDetails:
          $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPoolDetails'
          description: Details of asset pools used by the fund.
        Demo:
          type: boolean
          example: false
          description: Indicates whether the fund is a demo or test entity.
        ASN:
          type: string
          example: ASN123456
          description: Australian securities number of the fund.
        ShouldSerializeTrustProperties:
          type: boolean
          example: true
          description: Indicates whether trust-related properties should be serialized.
    FundImports_FundReferenceDataAssetPool:
      type: object
      properties:
        Description:
          type: string
        IsSegregatedToPension:
          type: boolean
        IsSystemManaged:
          type: boolean
        MemberAccounts:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPoolMember'
        HoldingAccounts:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPoolHolding'
    FundImports_FundReferenceDataAssetPoolDetails:
      type: object
      properties:
        AssetPools:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataAssetPool'
            description: Collection of asset pools defined for the fund.
    FundImports_FundReferenceDataAssetPoolHolding:
      type: object
      properties:
        HoldingAccountName:
          type: string
          example: Equity Holdings
          description: Name of the holding account within the asset pool.
    FundImports_FundReferenceDataAssetPoolMember:
      type: object
      properties:
        MemberAccountName:
          type: string
          example: John Smith Retirement Account
          description: Name of the member account within the asset pool.
    FundImports_FundReferenceDataBeneficiaryDetail:
      type: object
      properties:
        Code:
          type: string
          example: MBR001
          description: Unique code identifying the beneficiary.
        TFN:
          type: string
          example: '972313879'
          description: Tax file number of the beneficiary.
        FamilyName:
          type: string
          example: Jones
          description: Family name or surname of the beneficiary.
        GivenName:
          type: string
          example: Bob
          description: Given name or first name of the beneficiary.
        MiddleNames:
          type: string
          example: Francis
          description: Middle names of the beneficiary, if any.
        OrganisationName:
          type: string
          example: 123 Company Pty Ltd
          description: Name of the organisation associated with the beneficiary.
        Salutation:
          type: string
          example: Mr
          description: Salutation or title used for the beneficiary.
        Gender:
          $ref: '#/components/schemas/Gender'
          description: Gender of the beneficiary.
        DateOfBirth:
          type: string
          format: date-time
          example: null
          description: Date of birth of the beneficiary.
        PreferredGreeting:
          type: string
          description: Preferred greeting or name format for the beneficiary.
        PreferredVoiceContact:
          $ref: '#/components/schemas/VoiceContactType'
          description: Preferred method of voice contact.
        PreferredVoiceContactSpecified:
          type: boolean
          description: Indicates whether the preferred voice contact is specified.
        PreferredWrittenContact:
          $ref: '#/components/schemas/WrittenContactType'
          description: Preferred method of written contact.
        PreferredWrittenContactSpecified:
          type: boolean
          example: false
          description: Indicates whether the preferred written contact is specified.
        HomePhone:
          type: string
          description: Home phone number of the beneficiary.
        WorkPhone:
          type: string
          description: Work phone number of the beneficiary.
        Mobile:
          type: string
          example: '0415123123'
          description: Mobile phone number of the beneficiary.
        Fax:
          type: string
          description: Fax number of the beneficiary.
        DirectPhone:
          type: string
          description: Direct phone number of the beneficiary.
        Email:
          type: string
          example: Bob@example.com
          description: Email address of the beneficiary.
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Physical address of the beneficiary.
        UsePhysicalAsMailing:
          type: boolean
          description: >-
            Indicates whether the physical address should be used as the mailing
            address.
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Mailing address of the beneficiary.
        Roles:
          $ref: '#/components/schemas/TrustRoles'
          description: Roles assigned to the beneficiary within the trust.
        BeneficiaryType:
          $ref: '#/components/schemas/BeneficiaryTypeEnum'
          description: Classification of the beneficiary type.
    FundImports_FundReferenceDataComponent:
      type: object
      properties:
        AssetClassCode:
          type: string
          example: Cash
          description: >-
            Code representing the asset class, such as cash, equities, or
            property.
        MinPercentage:
          type: number
          format: decimal
          example: 0
          description: Minimum percentage allocation for the asset class.
        MaxPercentage:
          type: number
          format: decimal
          example: 100
          description: Maximum percentage allocation for the asset class.
        TargetPercentage:
          type: number
          format: decimal
          example: 2
          description: Target percentage allocation for the asset class.
        TargetPercentageSpecified:
          type: boolean
          example: true
          description: Indicates whether the target percentage is explicitly specified.
    FundImports_FundReferenceDataFeedsProduct:
      type: object
      properties:
        AccountNumber:
          type: string
          example: '123456'
          description: Account number associated with the feeds product.
        ProductName:
          type: string
          example: Open Markets
          description: Name of the feeds product provider or platform.
    FundImports_FundReferenceDataFeedsProducts:
      type: object
      properties:
        FeedsProducts:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataFeedsProduct'
            description: List of feeds products associated with the fund.
    FundImports_FundReferenceDataFundHoldingReference:
      type: object
      properties:
        ExternalIdentifier:
          type: string
          example: '123456'
          description: External identifier for the holding, such as registry or broker ID.
        ExternalIdentifierType:
          $ref: '#/components/schemas/HoldingAccountExternalIdentifierType'
          description: Type of external identifier used for the holding.
        ExternalIdentifierTypeSpecified:
          type: boolean
          example: true
          description: Indicates whether the external identifier type is specified.
        StartDate:
          type: string
          format: date-time
          example: '2023-01-01'
          description: Date when the holding reference became active.
        EndDate:
          type: string
          format: date-time
          example: '2025-12-31'
          description: Date when the holding reference ends or expires.
        Enabled:
          type: boolean
          example: true
          description: Indicates whether the holding reference is currently enabled.
        StartDateSpecified:
          type: boolean
          example: true
          description: Indicates whether the start date is explicitly specified.
        EndDateSpecified:
          type: boolean
          example: true
          description: Indicates whether the end date is explicitly specified.
        FinancialInstitution:
          type: string
          example: null
          description: Name of the financial institution associated with the holding.
        ProviderName:
          type: string
          example: Open Markets
          description: Name of the provider offering the holding product.
        ProductName:
          type: string
          example: Open Markets
          description: Name of the product associated with the holding.
        DisplayName:
          type: string
          example: Open Markets
          description: Display name used for the holding reference.
        AccountName:
          type: string
          example: DEMO_SMSF_2025 PTY LTD A/C
    FundImports_FundReferenceDataFundPolicy:
      type: object
      properties:
        GSTDetails:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataFundPolicyGSTDetails
          description: Gst registration and reporting details for the fund.
        Reserved:
          type: boolean
          example: false
          description: Indicates whether the policy is reserved for future use.
        PolicyStartDate:
          type: string
          format: date-time
          example: '2022-07-01'
          description: Start date of the fund policy.
        PolicyStartDateSpecified:
          type: boolean
          example: true
          description: Indicates whether the policy start date is specified.
        PolicyEndDate:
          type: string
          format: date-time
          example: '2023-06-30'
          description: End date of the fund policy.
        PolicyEndDateSpecified:
          type: boolean
          example: true
          description: Indicates whether the policy end date is specified.
        UseSegregatedPensions:
          type: boolean
          example: true
          description: Indicates whether segregated pensions are used.
        UseSegregatedPensionsSpecified:
          type: boolean
          example: true
          description: Indicates whether the use of segregated pensions is specified.
        PensionExemptionPercentage:
          type: number
          format: decimal
          example: 75.5
          description: Percentage of pension exemption applied.
        PensionExemptionPercentageSpecified:
          type: boolean
          example: true
          description: Indicates whether the pension exemption percentage is specified.
        ActuarialPensionExemptionPercentage:
          type: number
          format: decimal
          example: 72.3
          description: Actuarial calculated pension exemption percentage.
        ActuarialPensionExemptionPercentageSpecified:
          type: boolean
          example: true
          description: >-
            Indicates whether the actuarial pension exemption percentage is
            specified.
        ExpensesPensionExemptionPercentage:
          type: number
          format: decimal
          example: 68.9
          description: Percentage of expenses exempted for pension.
        ExpensesPensionExemptionPercentageSpecified:
          type: boolean
          example: true
          description: >-
            Indicates whether the expenses pension exemption percentage is
            specified.
        CapitalLossProvisionRate:
          type: number
          format: decimal
          example: 5
          description: Rate of provision for capital losses.
        CapitalLossProvisionRateSpecified:
          type: boolean
          example: true
          description: Indicates whether the capital loss provision rate is specified.
        AccountingLossProvisionRate:
          type: number
          format: decimal
          example: 3.5
          description: Rate of provision for accounting losses.
        AccountingLossProvisionRateSpecified:
          type: boolean
          example: true
          description: Indicates whether the accounting loss provision rate is specified.
        UnrealisedTaxProvisionRate:
          type: number
          format: decimal
          example: 2
          description: Rate of provision for unrealised tax.
        UnrealisedTaxProvisionRateSpecified:
          type: boolean
          example: true
          description: Indicates whether the unrealised tax provision rate is specified.
        CapitalLossesProvisionRate:
          type: number
          format: decimal
          example: 4.2
          description: Rate of provision for capital losses.
        CapitalLossesProvisionRateSpecified:
          type: boolean
          example: true
          description: Indicates whether the capital losses provision rate is specified.
        IncomeLossesProvisionRate:
          type: number
          format: decimal
          example: 1.8
          description: Rate of provision for income losses.
        IncomeLossesProvisionRateSpecified:
          type: boolean
          example: true
          description: Indicates whether the income losses provision rate is specified.
        UnrealisedGainsProvisionRate:
          type: number
          format: decimal
          example: 6.7
          description: Rate of provision for unrealised gains.
        UnrealisedGainsProvisionRateSpecified:
          type: boolean
          example: true
          description: Indicates whether the unrealised gains provision rate is specified.
        UseTaxEffectAccounting:
          type: boolean
          example: true
          description: Indicates whether tax effect accounting is used.
        UseTaxEffectAccountingSpecified:
          type: boolean
          example: true
          description: Indicates whether the use of tax effect accounting is specified.
        DeferMemberTax:
          type: boolean
          example: false
          description: Indicates whether member tax is deferred.
        DeferMemberTaxSpecified:
          type: boolean
          description: Indicates whether the deferment of member tax is specified.
        ExpenseExemptionCalculationMethod:
          $ref: '#/components/schemas/ExpenseExemptionCalculationMethod'
          description: Method used to calculate expense exemption.
        ElectionECPICalculationMethod:
          type: string
          description: Method used for calculating ECPI election.
    FundImports_FundReferenceDataFundPolicyGSTDetails:
      type: object
      properties:
        GSTStatus:
          $ref: '#/components/schemas/FundPolicyGSTStatusCode'
          description: Gst registration status of the fund.
        GSTTaxPeriod:
          $ref: '#/components/schemas/FundPolicyGSTTaxPeriodCode'
          description: Gst reporting period for the fund.
        GSTStatusDate:
          type: string
          format: date-time
          description: Date when the gst status became effective.
        GSTStatusDateSpecified:
          type: boolean
          description: Indicates whether the gst status date is specified.
    FundImports_FundReferenceDataFundReturn:
      type: object
      properties:
        FinancialYear:
          type: integer
          format: int32
          example: 2024
          description: Financial year for which the return is reported.
        RateOfReturn:
          type: number
          format: decimal
          description: Rate of return for the specified financial year.
        RateOfReturnSpecified:
          type: boolean
          example: false
          description: Indicates whether the rate of return is specified.
    FundImports_FundReferenceDataInvestmentDetails:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_HoldingAccountDetail'
          description: List of holding account details for the fund's investments.
    FundImports_FundReferenceDataMemberDetail:
      type: object
      properties:
        Code:
          type: string
          description: Unique identifier for the fund.
          example: demo-fund
        JoinFundDate:
          type: string
          format: date-time
          description: Date the member joined the fund.
          example: '2014-11-28'
        LeaveFundDate:
          type: string
          description: Date the member left the fund, if applicable.
          example: '2025-11-28'
        ESPStartDate:
          type: string
          format: date-time
          description: Start date of the Employer Sponsored Plan (ESP).
          example: '2000-11-28'
        ESPStartDateSpecified:
          type: boolean
          description: Indicates whether the ESP start date is explicitly specified.
          example: true
        DateOfDisability:
          type: string
          format: date-time
          description: Date the member was declared disabled, if applicable.
        DateOfDisabilitySpecified:
          type: boolean
          description: Indicates whether the disability date is explicitly specified.
          example: false
        LastRetirementDate:
          type: string
          format: date-time
          description: Date of the member’s last retirement, if applicable.
          example: null
        LastRetirementDateSpecified:
          type: boolean
          description: Indicates whether the last retirement date is explicitly specified.
          example: false
        AustralianResident:
          type: boolean
          description: Indicates whether the member is an Australian resident.
          example: false
        FloodLevyExempt:
          type: boolean
          description: Indicates whether the member is exempt from the flood levy.
          example: false
        SpouseAgreementDate:
          type: string
          format: date-time
          description: Date of spouse agreement, if applicable.
        SpouseAgreementDateSpecified:
          type: boolean
          description: Indicates whether the spouse agreement date is explicitly specified.
          example: false
        ClaimTaxFreeThreshold:
          type: boolean
          description: Indicates whether the member claims the tax-free threshold.
          example: false
        DeathSumInsured:
          type: number
          format: decimal
          description: Amount insured in case of death.
        TpdSumInsured:
          type: number
          format: decimal
          description: Amount insured in case of total and permanent disability (TPD).
        SalaryContinuanceSumInsured:
          type: number
          format: decimal
          description: Amount insured for salary continuance.
        ClaimTaxFreeThresholdSpecified:
          type: boolean
          description: >-
            Indicates whether the claim for tax-free threshold is explicitly
            specified.
          example: false
        DeathSumInsuredSpecified:
          type: boolean
          description: Indicates whether the death sum insured is explicitly specified.
          example: false
        TpdSumInsuredSpecified:
          type: boolean
          description: Indicates whether the TPD sum insured is explicitly specified.
          example: false
        SalaryContinuanceSumInsuredSpecified:
          type: boolean
          description: >-
            Indicates whether the salary continuance sum insured is explicitly
            specified.
          example: false
        TFN:
          type: string
          description: Tax File Number of the member.
          example: '972313879'
        FamilyName:
          type: string
          description: Member’s family name.
          example: Jones
        GivenName:
          type: string
          description: Member’s given name.
          example: Bob
        MiddleNames:
          type: string
          description: Member’s middle names.
          example: Francis
        Salutation:
          type: string
          description: Member’s salutation.
          example: Mr
        Gender:
          $ref: '#/components/schemas/Gender'
          description: Member’s gender.
        DateOfBirth:
          type: string
          format: date
          description: Member’s date of birth.
          example: '1967-01-01'
        DateOfBirthSpecified:
          type: boolean
          description: Indicates whether the date of birth is explicitly specified.
          example: true
        DateOfDeathSpecified:
          type: boolean
          description: Indicates whether the date of death is explicitly specified.
          example: false
        PreferredGreeting:
          type: string
          description: Member’s preferred greeting name.
          example: Bob
        PreferredSalutation:
          type: string
          description: Member’s preferred salutation.
          example: null
        PreferredVoiceContact:
          $ref: '#/components/schemas/VoiceContactType'
          description: Member’s preferred method of voice contact.
        PreferredVoiceContactSpecified:
          type: boolean
          description: >-
            Indicates whether the preferred voice contact is explicitly
            specified.
        PreferredWrittenContact:
          $ref: '#/components/schemas/WrittenContactType'
          description: Member’s preferred method of written contact.
        PreferredWrittenContactSpecified:
          type: boolean
          description: >-
            Indicates whether the preferred written contact is explicitly
            specified.
        HomePhone:
          type: string
          description: Member’s home phone number.
        WorkPhone:
          type: string
          description: Member’s work phone number.
        Mobile:
          type: string
          description: Member’s mobile phone number.
          example: '0415123123'
        Fax:
          type: string
          description: Member’s fax number.
        DirectPhone:
          type: string
          description: Member’s direct phone number.
        Email:
          type: string
          description: Member’s email address.
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Member’s physical address.
        UsePhysicalAsMailing:
          type: boolean
          description: >-
            Indicates whether the physical address should be used as the mailing
            address.
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Member’s mailing address.
        MemberTransitions:
          $ref: '#/components/schemas/FundImports_FundReferenceDataMemberTransitions'
          description: Transition history of the member within the fund.
        BeneficiaryDetails:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataMemberDetailBeneficiaryDetails
          description: Details of the member’s nominated beneficiaries.
        Pensions:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataMemberDetailPensionDetails
          description: List of pension details associated with the member.
    FundImports_FundReferenceDataMemberDetailBeneficiaryDetails:
      type: object
      properties:
        EffectiveDate:
          type: string
          format: date-time
          description: >-
            The date when the beneficiary designation becomes effective. Must
            follow ISO 8601 format.
          example: '2020-01-01'
        ExpiryDate:
          type: string
          format: date-time
          description: The date when the beneficiary designation expires, if applicable.
          example: '2030-12-31'
        ExpiryDateSpecified:
          type: boolean
          description: Indicates whether the expiry date has been explicitly specified.
          example: false
        BindingStatus:
          $ref: '#/components/schemas/BindingStatusType'
          description: >-
            The legal status of the beneficiary designation, such as 'Binding'
            or 'Non-Binding'.
        Details:
          type: string
          description: >-
            Additional information or notes regarding the beneficiary
            designation.
          example: Primary beneficiary is spouse; contingent beneficiary is child.
    FundImports_FundReferenceDataMemberDetailPensionDetails:
      type: object
      properties:
        PensionAccountName:
          type: string
          description: The name of the pension account associated with the fund member.
          example: SuperSaver Retirement Fund
        StartDate:
          type: string
          format: date-time
          description: >-
            The date when the pension account was initiated. Must follow ISO
            8601 format.
          example: '2022-07-01'
        PensionProductType:
          $ref: '#/components/schemas/PensionProductType'
          description: >-
            The classification of the pension product, such as 'Accumulation' or
            'Defined Benefit'.
        EtpPost07ChangeDate:
          type: string
          format: date-time
          description: >-
            The date when changes were made to the pension account under
            post-2007 ETP regulations.
          example: '2023-03-15'
        EtpPost07ChangeDateSpecified:
          type: boolean
          description: >-
            Indicates whether the post-2007 ETP change date is explicitly
            specified.
          example: true
        PensionAccountIdentifier:
          type: string
          description: >-
            A unique identifier for the pension account, used for internal
            tracking and reporting.
          example: PA-987654321
    FundImports_FundReferenceDataMemberTransition:
      type: object
      properties:
        EffectiveDate:
          type: string
          format: date-time
          description: >-
            The date and time when the transition becomes effective. Must follow
            ISO 8601 format (e.g., 2025-10-09T14:30:00Z).
        TransitionType:
          type: string
          description: >-
            The type of transition being applied to the fund reference data
            member. Examples include 'Addition', 'Removal', 'Update'.
    FundImports_FundReferenceDataMemberTransitions:
      type: object
      properties:
        MemberTransitions:
          type: array
          items:
            $ref: '#/components/schemas/FundImports_FundReferenceDataMemberTransition'
    FundImports_FundReferenceDataNonMemberTrusteeDetails:
      type: object
      properties:
        FamilyName:
          type: string
          example: Jones
          description: Trustee's family name.
        GivenName:
          type: string
          example: Nicholas
          description: Trustee's given name.
        MiddleNames:
          type: string
          example: James
          description: Trustee's middle names.
        Title:
          type: string
          example: Mr
          description: Trustee's title.
        JobTitle:
          type: string
          example: Financial Advisor
          description: Trustee's job title.
        FormerName:
          type: string
          example: Nicholas Smith
          description: Trustee's former name.
        Gender:
          type: string
          example: Male
          description: Trustee's gender.
        DateOfBirth:
          type: string
          format: date-time
          example: '1985-03-15'
          description: Trustee's date of birth.
        DateOfBirthSpecified:
          type: boolean
          example: true
          description: Indicates whether the date of birth is specified.
        TFN:
          type: string
          example: '123456789'
          description: Trustee's Tax File Number.
        PreferredGreeting:
          type: string
          example: Nick
          description: Trustee's preferred greeting name.
        PreferredVoiceContact:
          $ref: '#/components/schemas/VoiceContactType'
          description: Trustee's preferred voice contact method.
        PreferredVoiceContactSpecified:
          type: boolean
          example: true
          description: Indicates whether the preferred voice contact is specified.
        PreferredWrittenContact:
          $ref: '#/components/schemas/WrittenContactType'
          description: Trustee's preferred written contact method.
        PreferredWrittenContactSpecified:
          type: boolean
          example: true
          description: Indicates whether the preferred written contact is specified.
        HomePhone:
          type: string
          example: 291234567
          description: Trustee's home phone number.
        WorkPhone:
          type: string
          example: 293456789
          description: Trustee's work phone number.
        Mobile:
          type: string
          example: 412345678
          description: Trustee's mobile phone number.
        Fax:
          type: string
          example: 295551234
          description: Trustee's fax number.
        DirectPhone:
          type: string
          example: 290001111
          description: Trustee's direct phone number.
        Email:
          type: string
          example: Nicholas@example.com
          description: Trustee's email address.
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Trustee's physical address.
        UsePhysicalAsMailing:
          type: boolean
          example: true
          description: >-
            Indicates whether the physical address should be used as the mailing
            address.
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Trustee's mailing address.
    FundImports_FundReferenceDataRSEDetails:
      type: object
      properties:
        RSE:
          type: string
          example: RSE123456
          description: Registration number for the registrable superannuation entity.
        EffectiveDate:
          type: string
          format: date-time
          example: '2023-07-01'
          description: Date the RSE registration became effective.
    FundImports_FundReferenceDataReserveDetails:
      type: object
      properties:
        ReserveDetail:
          $ref: >-
            #/components/schemas/FundImports_FundReferenceDataReserveDetailsReserveDetail
          description: Details of reserve accounts associated with the fund.
    FundImports_FundReferenceDataReserveDetailsReserveDetail:
      type: object
      properties:
        JoinFundDate:
          type: string
          format: date-time
          example: '2022-01-01'
          description: Date the reserve detail joined the fund.
        Reserves:
          type: array
          items:
            $ref: >-
              #/components/schemas/FundImports_FundReferenceDataReserveDetailsReserveDetailReserveDetails
            description: List of reserve account details.
    FundImports_FundReferenceDataReserveDetailsReserveDetailReserveDetails:
      type: object
      properties:
        ReserveAccountName:
          type: string
          example: General Reserve
          description: Name of the reserve account.
        StartDate:
          type: string
          format: date-time
          example: '2022-01-01'
          description: Start date of the reserve account
    FundImports_FundReferenceDataTrustDeed:
      type: object
      properties:
        DeedDate:
          type: string
          format: date-time
          example: '2014-11-28'
          description: Date the trust deed was signed.
        DatePrinted:
          type: string
          format: date-time
          example: '2014-11-28'
          description: Date the trust deed was printed.
        DatePrintedSpecified:
          type: boolean
          example: true
          description: Indicates whether the printed date is specified.
        Jurisdiction:
          $ref: '#/components/schemas/TrustDeedJurisdiction'
          description: Legal jurisdiction under which the trust deed is governed.
        TrusteeName:
          type: string
          example: 123 Company Pty Ltd
          description: Name of the trustee company.
        DeedSource:
          type: string
          example: Maddocks
          description: Source or provider of the trust deed.
        DeedType:
          $ref: '#/components/schemas/TrustDeedType'
          description: Type of the trust deed.
        Comments:
          type: string
          example: Initial establishment deed
          description: Additional comments or notes about the trust deed.
    FundImports_FundReferenceDataTrusteeCompanyDetails:
      type: object
      properties:
        Name:
          type: string
          example: 123 Company Pty Ltd
          description: Name of the trustee company.
        ABN:
          type: string
          example: 12 345 678 901
          description: Australian business number of the trustee company.
        ACN:
          type: string
          example: 123 456 789
          description: Australian company number of the trustee company.
        TFN:
          type: string
          example: '987654321'
          description: Tax file number of the trustee company.
        PreferredVoiceContact:
          $ref: '#/components/schemas/VoiceContactType'
          description: Preferred method of voice communication.
        PreferredVoiceContactSpecified:
          type: boolean
          example: true
          description: Indicates if the preferred voice contact is specified.
        PreferredWrittenContact:
          $ref: '#/components/schemas/WrittenContactType'
          description: Preferred method of written communication.
        PreferredWrittenContactSpecified:
          type: boolean
          example: true
          description: Indicates if the preferred written contact is specified.
        Phone:
          type: string
          example: 1300 123 456
          description: Primary phone number of the trustee company.
        Fax:
          type: string
          example: 1300 654 321
          description: Fax number of the trustee company.
        Email:
          type: string
          example: info@123company.com.au
          description: Email address of the trustee company.
        URL:
          type: string
          example: https://www.123company.com.au
          description: Website URL of the trustee company.
        PhysicalAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Physical address of the trustee company.
        UsePhysicalAsMailing:
          type: boolean
          example: true
          description: >-
            Indicates if the physical address should be used as the mailing
            address.
        MailingAddress:
          $ref: '#/components/schemas/FundImports_PhysicalAddress'
          description: Mailing address of the trustee company.
        ASN:
          type: string
          example: ASN123456
          description: Australian securities number of the trustee company.
    FundImports_HoldingAccountDetail:
      type: object
      properties:
        Code:
          type: string
          example: >-
            http://api.class.com.au/api/1.0/f/demo-business/DEMO_SMSF_2025/fund-data/fund-detail
        Description:
          type: string
          example: The A2 Milk Company Limited
          description: Name or description of the security or investment.
        SecurityIssueCode:
          type: string
          example: A2M
          description: Code representing the specific security issue.
        MarketTypeCode:
          $ref: '#/components/schemas/MarketTypeCode'
          description: Code indicating the market type where the security is listed.
        MarketTypeCodeSpecified:
          type: boolean
          example: true
          description: Indicates whether the market type code is explicitly specified.
        UnlistedSecurityTypeCode:
          type: string
          example: PrivateEquity
          description: Code for the type of unlisted security, if applicable.
        ForeignSecurityTypeCode:
          type: string
          example: ADR
          description: Code for the type of foreign security, if applicable.
        ExternalIdentifier:
          type: string
          example: '124567'
          description: >-
            External identifier for the holding, such as a registry or broker
            ID.
        ExternalIdentifierType:
          $ref: '#/components/schemas/HoldingAccountExternalIdentifierType'
          description: Type of external identifier used for the holding.
        ExternalIdentifierTypeSpecified:
          type: boolean
          example: true
          description: Indicates whether the external identifier type is specified.
        ExternalProductName:
          type: string
          example: A2 Milk Shares
          description: Name of the external product associated with the holding.
        ExternalProductNameSpecified:
          type: boolean
          example: false
          description: Indicates whether the external product name is specified.
        InhouseAsset:
          type: boolean
          example: false
          description: Indicates whether the asset is classified as in-house.
        InhouseAssetSpecified:
          type: boolean
          example: true
          description: Indicates whether the in-house asset status is specified.
        IsSegregatedToPension:
          type: boolean
          example: false
          description: Indicates whether the holding is segregated to a pension account.
        IsSegregatedToPensionSpecified:
          type: boolean
          example: false
          description: Indicates whether the segregation to pension status is specified.
        SegregatedToPensionAccountCode:
          type: string
          example: PEN001
          description: >-
            Account code for the pension account to which the holding is
            segregated.
        SegregatedToPensionAccountCodeSpecified:
          type: boolean
          example: false
          description: Indicates whether the pension account code is specified.
        SpecifiedMarketTypeCode:
          type: string
          example: LM
          description: Market type code explicitly specified for the holding.
        CGInvestmentClassificationCode:
          type: string
          example: SharesAndUnitsListed
          description: Capital gains investment classification code for the holding.
        TaxReturnClassificationCode:
          type: string
          example: AustDirectListedShares
          description: Classification code used for tax return purposes.
        GLInvestmentClassificationCode:
          type: string
          example: ListedShares
          description: General ledger investment classification code.
        HoldingTypeForGst:
          $ref: '#/components/schemas/HoldingTypeForGst'
          description: Type of holding in relation to GST applicability.
        HoldingTypeForGstSpecified:
          type: boolean
          example: true
          description: Indicates whether the GST holding type is specified.
        Type:
          type: string
          example: Equity
          description: Type of holding, such as equity, bond, or cash.
    FundImports_PhysicalAddress:
      type: object
      properties:
        Addressee:
          type: string
          example: John Doe
          description: Name of the person or entity receiving the correspondence.
        Line1:
          type: string
          example: 417 St Kilda Rd
          description: First line of the street address.
        Line2:
          type: string
          example: Suite 5
          description: Second line of the street address.
        Line3:
          type: string
          example: Building A
          description: Third line of the street address.
        Line4:
          type: string
          example: Level 2
          description: Fourth line of the street address.
        Suburb:
          type: string
          example: Melbourne
          description: Suburb or locality of the address.
        State:
          type: string
          example: VIC
          description: State or territory of the address.
        Postcode:
          type: string
          example: '3004'
          description: Postal code of the address.
        UseUnlistedSuburb:
          type: boolean
          example: false
          description: Indicates whether an unlisted suburb is used.
    FundLegalType:
      type: string
      enum:
        - SMSF
        - SAF
        - Personal
        - Trust
        - Company
        - Partnership
        - Consolidated
    FundListDetail_FundSummary:
      type: object
      properties:
        Link:
          $ref: '#/components/schemas/ApiRestLink'
          description: Hyperlink reference to the fund's API resource.
        Status:
          $ref: '#/components/schemas/StatusCode'
          description: Current status code of the fund.
        Code:
          type: string
          example: DEMO_SMSF_2025
          description: Unique code identifier for the fund.
        Name:
          type: string
          example: Demo Superannuation Fund 2025
          description: Full name of the fund.
        Tags:
          type: string
          example: FY2025
          description: Tags associated with the fund, such as fiscal year or category.
        UnmatchedEvidenceSupplyCount:
          type: integer
          format: int32
          example: 0
          description: Number of unmatched evidence supply records for the fund.
        UnmatchedEvidenceRequestCount:
          type: integer
          format: int32
          example: 1
          description: Number of unmatched evidence request records for the fund.
        RecordedEvidenceRequestCount:
          type: integer
          format: int32
          example: 0
          description: Number of recorded evidence requests for the fund.
        RequiresProcessingCorporateActionCount:
          type: integer
          format: int32
          example: 0
          description: Number of corporate actions requiring processing for the fund.
        SummaryIsValid:
          type: boolean
          example: true
          description: Indicates whether the fund summary is valid.
        LastPeriodUpdateEndDate:
          type: string
          format: date-time
          example: '2024-07-01'
          description: End date of the last period update for the fund.
        ProcessedToDate:
          type: string
          format: date-time
          example: '2022-07-01'
          description: Date up to which the fund has been processed.
        LegalEntityType:
          $ref: '#/components/schemas/LegalEntityType'
          description: Type of legal entity associated with the fund.
        BrandName:
          type: string
          example: demo-brand
          description: Brand name under which the fund is listed.
        ABN:
          type: string
          example: '53004085616'
          description: Australian Business Number (ABN) of the fund.
    FundPolicyGSTStatusCode:
      type: string
      enum:
        - Registered
        - NonRegistered
        - Cancelled
    FundPolicyGSTTaxPeriodCode:
      type: string
      enum:
        - Item
        - Annually
        - Monthly
        - Quarterly
    FundWhiteLabelDetail_FundWhiteLabelData:
      type: object
      properties:
        FundId:
          type: string
          example: 15c609de-b2da-4001-9fbb-98b89c3cdf73
          description: >-
            Unique identifier of the fund associated with the white label
            configuration.
        WhiteLabelCode:
          type: string
          example: WL2025
          description: Custom branding identifer assigned to a fund
    Gender:
      type: string
      enum:
        - Male
        - Female
        - Other
        - NotStated
    HoldingAccountExternalIdentifierType:
      type: string
      enum:
        - Item
        - Hin
        - Srn
        - WrapAccount
        - ExternalId
        - AccountNumber
    HoldingTypeForGst:
      type: string
      enum:
        - DoesNotAttractGst
        - AttractsGst
    LegalEntityType:
      type: string
      enum:
        - SMSF
        - SAF
        - Personal
        - Trust
        - Company
        - Partnership
        - Consolidated
    MarketTypeCode:
      type: string
      enum:
        - BK
        - CM
        - LD
        - LM
        - MF
        - MM
        - PD
        - SP
        - UN
        - Platform
        - FOR
        - TD
    PensionProductType:
      type: string
      enum:
        - AccountBased
        - AllocatedPension
        - Complying
        - Flexi
        - NonCommutableAllocatedPension
        - TAPS
    StandardApiResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApiResponseBase'
    StatusCode:
      type: string
      enum:
        - Active
        - Cancelled
        - Pending
        - Suspended
    TrustDeedJurisdiction:
      type: string
      enum:
        - Item
        - ACT
        - WA
        - VIC
        - SA
        - NSW
        - TAS
        - QLD
        - NT
    TrustDeedType:
      type: string
      enum:
        - Establishment
        - Amendment
        - RetirementAndAppointment
        - Upgrade
    TrustRoles:
      type: string
      enum:
        - Beneficiary
        - Trustee
        - BeneficiaryAndTrustee
    TrustTypes:
      type: number
      enum:
        - 67
        - 68
        - 70
        - 72
        - 73
        - 77
        - 80
        - 81
        - 83
        - 84
        - 85
    VoiceContactType:
      type: string
      enum:
        - Home
        - Mobile
        - Work
        - Business
        - Direct
    WrittenContactType:
      type: string
      enum:
        - Email
        - MailingAddress
        - Fax
        - PhysicalAddress
    guid:
      type: string
      example: b4d-6fe4-45c9-83e5-fd27c16d149c
      description: Unique guid id
    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.
      xml:
        name: Error
    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.
      xml:
        name: Error
    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.
      xml:
        name: Error
    UnauthorizedErrorCommon:
      type: object
      properties:
        Code:
          type: string
          example: API_NOT_AUTHORISED
        Message:
          type: string
          example: Not authorised
      xml:
        name: Error
        wrapped: false
  securitySchemes:
    Class_oAuth:
      type: oauth2
      description: Class uses oAuth2 and OpenID for authentication and authorisation
      flows:
        authorizationCode:
          authorizationUrl: https://apigateway.class-pie.com.au/connect/authorize
          tokenUrl: https://apigateway.class-pie.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
