GET
/BizEntity/Account/Holdings
Usage Notes
When
- Retrieve account holdings with current or historical market valuations
- Generate portfolio reports across multiple accounts
- Monitor investment performance and unrealized gains/losses
Requirements
- AccountID, ExternalAccountId, AccountNumber, or ProductID filter required
- PageNumber and PageSize required when not filtering by account identifiers
Notes
- Holdings reflect current positions including pending transactions
- Date parameter values CURRENT holdings at historical prices (not historical positions)
- Returns dynamically computed data grouped by account with nested investments
Description
Retrieves account holdings with investment quantities, market valuations, and performance metrics. Aggregates transaction data and applies current or historical pricing to calculate positions.
Required Headers - See Authentication
| Header | Value | Description |
|---|---|---|
| Authorization | {accessToken} | Bearer token for API access |
| Version | 2.0 | API version identifier |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ProductID |
integer | Optional |
Filter holdings by native product identifier for product-specific portfolio analysis and regulatory reporting. Returns all account holdings associated with specified product regardless of entity or investment mix. |
ExternalProductId |
string | Optional |
Filter holdings by external product identifier for cross-system portfolio integration. Maintains product referential integrity with source systems for consolidated reporting and migration validation. |
AccountID |
FilterOfInt32 | Optional |
Filter holdings by native account identifier for account-specific portfolio analysis. Fastest filter option using primary index - optimal for high-frequency portfolio queries and real-time position lookups. |
ExternalAccountId |
FilterOfString | Optional |
Filter holdings by external account identifier for cross-platform portfolio integration. Maintains account identity consistency across platforms for consolidation and migration reconciliation. |
AccountNumber |
FilterOfString | Optional |
Filter holdings by account number pattern matching for bulk portfolio analysis. More flexible than AccountID for pattern analysis but slower performance - use AccountID when exact account known. |
InvestmentID |
FilterOfInt32 | Optional |
Filter holdings by native investment identifier for investment-specific exposure analysis and concentration risk monitoring. Essential for corporate action processing and regulatory exposure disclosure. Provides granular portfolio composition beyond product-level aggregation. |
ExternalInvestmentId |
FilterOfString | Optional |
Filter holdings by external investment identifier for cross-platform tracking. |
Date |
string (date) | Optional |
Retrieve holdings with historical valuations using price-as-of-date for CURRENT positions. CRITICAL BEHAVIOR: Date parameter affects 'amount' field pricing ONLY - 'currentQuantity' and 'quantity' fields ALWAYS reflect current holdings regardless of date. For TRUE point-in-time historical positions (quantities held on specific past date), use GET /BizTransaction with TransactionDate filtering to reconstruct portfolio state from transaction history. Use Date parameter for: period-end reporting (EOFY statements valued at June 30 prices), performance attribution (current holdings at multiple historical price points), or regulatory reporting requiring specific valuation dates with current position composition. |
PageNumber |
integer | Optional |
Page number starting from 1. CRITICAL: Required when not filtering by account identifiers. |
PageSize |
integer | Optional |
Records per page (maximum 1000). CRITICAL: Required when not filtering by account identifiers. |
ProductID
Filter holdings by native product identifier for product-specific portfolio analysis and regulatory reporting. Returns all account holdings associated with specified product regardless of entity or investment mix.
ExternalProductId
Filter holdings by external product identifier for cross-system portfolio integration. Maintains product referential integrity with source systems for consolidated reporting and migration validation.
AccountID
Filter holdings by native account identifier for account-specific portfolio analysis. Fastest filter option using primary index - optimal for high-frequency portfolio queries and real-time position lookups.
ExternalAccountId
Filter holdings by external account identifier for cross-platform portfolio integration. Maintains account identity consistency across platforms for consolidation and migration reconciliation.
AccountNumber
Filter holdings by account number pattern matching for bulk portfolio analysis. More flexible than AccountID for pattern analysis but slower performance - use AccountID when exact account known.
InvestmentID
Filter holdings by native investment identifier for investment-specific exposure analysis and concentration risk monitoring. Essential for corporate action processing and regulatory exposure disclosure. Provides granular portfolio composition beyond product-level aggregation.
ExternalInvestmentId
Filter holdings by external investment identifier for cross-platform tracking.
Date
Retrieve holdings with historical valuations using price-as-of-date for CURRENT positions. CRITICAL BEHAVIOR: Date parameter affects 'amount' field pricing ONLY - 'currentQuantity' and 'quantity' fields ALWAYS reflect current holdings regardless of date. For TRUE point-in-time historical positions (quantities held on specific past date), use GET /BizTransaction with TransactionDate filtering to reconstruct portfolio state from transaction history. Use Date parameter for: period-end reporting (EOFY statements valued at June 30 prices), performance attribution (current holdings at multiple historical price points), or regulatory reporting requiring specific valuation dates with current position composition.
PageNumber
Page number starting from 1. CRITICAL: Required when not filtering by account identifiers.
PageSize
Records per page (maximum 1000). CRITICAL: Required when not filtering by account identifiers.
Query & Filtering
🔍 7G Holdings Portfolio Filtering with Dot Operators
Account Holdings is 7G's comprehensive portfolio engine supporting advanced typed filtering for precise portfolio analysis, performance tracking, and multi-account reporting workflows.
FilterOfInt32
Account & Investment IDs
.equal
.in
.greaterThan
.lessThan
AccountID.equal=12345
InvestmentID.in=567,568,570FilterOfString
Account numbers & External IDs
.equal
.contains
.beginsWith
.endsWith
AccountNumber.beginsWith=7G-
ExternalAccountId.contains=SMSF🎯 Key Portfolio Holdings Scenarios:
Account Portfolios →
AccountID.equal=12345 (single account analysis)
Multi-Account Analysis → AccountID.in=12345,12346,12347 (portfolio consolidation)
SMSF Pattern Matching → AccountNumber.beginsWith=7G-&AccountNumber.contains=SMSF
Investment Focus → InvestmentID.greaterThan=500 (large investment classes)Example Requests
bash
# Get holdings for specific account (fastest lookup)
curl -X GET 'https://api.7g.com.au/BizEntity/Account/Holdings?AccountID.equal=12345' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0'
# Get holdings for multiple accounts using In operator
curl -X GET 'https://api.7g.com.au/BizEntity/Account/Holdings?AccountID.in=12345,12346,12347&PageSize=50' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0'
# Filter SMSF portfolios by account number pattern
curl -X GET 'https://api.7g.com.au/BizEntity/Account/Holdings?AccountNumber.beginsWith=7G-&AccountNumber.contains=SMSF&ProductID=100' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0'
# Historical portfolio analysis with date-specific pricing
curl -X GET 'https://api.7g.com.au/BizEntity/Account/Holdings?ExternalAccountId.contains=SMSF&Date=2024-12-01&PageSize=100' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0'Response Examples
json
{
"result": true,
"message": "",
"recordCount": 1,
"data": [
{
"accountID": 532562,
"accountNumber": "100000120",
"bizEntityID": 526452,
"name": "A Very Schmick Superfund",
"monetaryBalance": 11111,
"investments": [
{
"investmentID": 5748,
"name": "Ordinary",
"quantity": 100530,
"applicationValue": 100530,
"redemptionValue": 100530,
"navValue": 100530
}
]
}
]
}🔄 Holdings Lifecycle Integration
Holdings update automatically through transaction and distribution workflows. Understanding these integrations is critical for portfolio accuracy and reconciliation:
Transaction Processing Impact
Holdings reflect all completed BizTransaction operations:
- Deposits: Increase quantity and value
- Redemptions: Decrease quantity and value
- Transfers: Move holdings between accounts
- Conversions: Switch holdings between investments
Distribution Allotment Updates
DRP unit allocations automatically update holdings:
- Step 3: Distribution → Cash payments processed
- Step 4: Allotment → Units allocated to holdings
- Holdings reflect new unit quantities immediately
Investment Pricing Integration
Holdings valuations depend on Investment/Price data:
- Current pricing: Uses latest investment price
- Historical pricing: Uses price-as-of-Date parameter
- Amount = Quantity × Price (dynamic calculation)