# Find holding accounts

Searches and retrieves holding accounts based on specified criteria within the Fund.

Endpoint: GET /f/{businessCode}/{fundCode}/investment-data/find-holding-accounts
Version: 1.0
Security: Class_oAuth

## Security:

  - `Class_oAuth` (unknown)
    oauth2 scopes: fund.read

## Path parameters:

  - `businessCode` (string, required)
    Class business code

  - `fundCode` (string, required)
    Class entity code

## Response 200:

  - `200` (unknown)
    Success (Ok)

## Response 200 fields (application/json):

  - `Data` (object, required)

  - `Data.Id` (string)
    Unique identifier of the holding account record.
    Example: 6b4bf42c-5100-4da2-83a2-35201f9c06aa

  - `Data.Code` (string)
    System code for the holding account (often the security code for listed securities).
    Example: AMP

  - `Data.FundId` (string)
    Unique identifier (GUID) of the fund that owns this holding.
    Example: 15c609de-b2da-4001-9fbb-98b89c4cdf74

  - `Data.FundCode` (string)
    Class entity code (fund code).
    Example: DEMO_SMSF_2025

  - `Data.BusinessCode` (string)
    Class business code (administrator/brand code).
    Example: demo-business

  - `Data.Description` (string)
    Human‑readable name/description of the investment holding.
    Example: AMP Limited

  - `Data.MarketType` (string)
    Market classification describing where the asset trades or how it is sourced.
    Example: Listed Securities Market

  - `Data.MarketCode` (string)
    Market or exchange code for the security (e.g., ASX, NASDAQ).
    Example: ASX

  - `Data.Quantity` (number)
    Units/shares currently held (decimal supported).
    Example: 5000

  - `Data.Cost` (number)
    Total cost base for the position in the fund's reporting currency (inclusive of prior corporate actions as recorded).
    Example: 22500

  - `Data.MarketPrice` (number)
    Latest price per unit/share used for valuation (in the instrument's pricing currency mapped for the fund).
    Example: 1.42

  - `Data.MarketValue` (number)
    Valuation amount for the position (typically Quantity × MarketPrice, after any internal rounding rules).
    Example: 7100

  - `Data.EffectiveStatusCode` (string)
    Status of the holding account record (e.g., active vs. suspended) as per platform status codes.
    Enum: "Active", "Cancelled", "Pending", "Suspended"

  - `Data.FundHoldingReference` (string)
    Name/identifier of the connected feed or platform account linked to this holding (Fund Holding Reference).
    Example: Open Markets - 158948

  - `Data.AssetPoolName` (string)
    Asset pool to which this holding is allocated within the fund (if applicable).
    Example: Default Pool

  - `Data.SecurityIssueCode` (string)
    Issuer/security code (may include market suffix for foreign listings).
    Example: AMP

  - `Data.GLInvestmentClassificationDescription` (string)
    General ledger investment classification (description) used for reporting.
    Example: Shares in Listed Companies

  - `Data.GLInvestmentClassificationCode` (string)
    General ledger investment classification (code) used for reporting.
    Example: ListedShares

  - `Data.Type` (string)
    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"

  - `Data.BankAccountDetails` (object)

  - `Data.BankAccountDetails.BsbCode` (string)
    Identifying the financial institution and branch for the bank.
    Example: 123-456

  - `Data.BankAccountDetails.AccountNumber` (string)
    Bank account number as provided by the financial institution.
    Example: 000123456

  - `Data.BankAccountDetails.AccountName` (string)
    Account holder name as it appears on the bank account.
    Example: Operating Cash Account

  - `Errors` (array)

  - `Errors.code` (string)

  - `Errors.message` (string)

## Response 400:

  - `400` (unknown)
    Error Message

## Response 400 fields (application/json):

  - `Errors` (array)

  - `Errors.code` (string)

  - `Errors.message` (string)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `Errors` (array)

  - `Errors.Code` (string)
    Example: API_NOT_AUTHORISED

  - `Errors.Message` (string)
    Example: Not authorised

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `Errors` (array)

  - `Errors.Code` (string)
    Example: FORBIDDEN

  - `Errors.Message` (string)
    Example: You do not have permission to access this resource.

## Response 404:

  - `404` (unknown)
    Resource not available or user does not have access to the fund

## Response 404 fields (application/json):

  - `Errors` (array)

  - `Errors.Code` (string)
    Example: API_NOT_FOUND

  - `Errors.Message` (string)
    Example: Resource not available or user does not have access to the fund.

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `Errors` (array)

  - `Errors.Code` (string)
    Example: API_INTERNAL_ERROR

  - `Errors.Message` (string)
    Example: An unexpected error occurred on the server. Please try again later.

## Response default:

  - `default` (unknown)
    Unexpected error

## Response default fields (application/json):

  - `Errors` (array)

  - `Errors.Code` (string)
    Example: API_INTERNAL_ERROR

  - `Errors.Message` (string)
    Example: An unexpected error occurred on the server. Please try again later.

