/Investment
Usage Notes
When
- Update allotment rules or distribution settings
- Enable/disable investment trading via IsActive status
- Adjust lifecycle dates or closure settings
Requirements
- InvestmentID or ExternalInvestmentId to identify the record
- Complete DTO required (retrieve current data via GET first)
Notes
- PUT replaces entire investment record - include all fields
- ExternalInvestmentId cannot be modified after creation
- IsActive changes affect transaction processing immediately
- Existing transactions may prevent certain modifications
Description
Updates an investment by complete replacement. IsActive changes take effect immediately for transaction processing. Some fields may be restricted when transaction history exists.
Required Headers - See Authentication
| Header | Value | Description |
|---|---|---|
| Content-Type | application/json | Request content type |
| Authorization | {accessToken} | Bearer token for API access |
| Version | 2.0 | API version identifier |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
InvestmentID |
integer | Optional |
Investment identifier for record identification (either InvestmentID or ExternalInvestmentId must be provided for PUT operations). |
externalInvestmentId |
string | Optional |
External investment identifier for record identification (immutable field - cannot be changed during PUT operations). |
allowAllotment |
boolean | Controls whether new deposits are accepted via BizTransaction/Deposit (works with allotmentCutoffDate for lifecycle control). | |
allotmentCutoffDate |
date | Optional |
Hard deadline for accepting new investments (YYYY-MM-DD format, system rejects all deposits after this date regardless of allowAllotment status). |
allowDistribution |
boolean | Controls whether investment can process Distribution declarations, payments, and DRP operations. | |
allotmentMinAmount |
decimal | Optional |
Minimum deposit amount per transaction enforced during BizTransaction processing (e.g., $1,000-$5,000 retail, $250,000+ wholesale). |
allotmentMaxAmount |
decimal | Optional |
Maximum single deposit amount per transaction (null allows unlimited deposits subject to maxCapital constraints). |
calcDividendIncludingFirstDay |
boolean | Controls whether Distribution accruals include first day of holding period (true includes purchase date, false excludes it). | |
couponRate |
decimal | Optional |
Fixed interest rate percentage for term deposits and bond investments (e.g., 5.25 = 5.25% annual interest). |
description |
string | Optional |
Investment product narrative displayed in investor portals and statements (include strategy, risk profile, target market). |
distributionPeriodID |
integer | Optional |
Distribution payment frequency reference via common/lookup. Affects Distribution/Declare timing. |
distributionTermID |
integer | Optional |
Distribution calculation methodology via common/lookup (defines how distribution amounts are calculated for Distribution/Declare operations). |
endDate |
date | Optional |
Investment maturity or planned closure date (YYYY-MM-DD format, does not automatically close investment - use with isActive flag). |
isActive |
boolean | Master control for all BizTransaction processing (false completely blocks all financial transactions regardless of other settings). | |
isIncludedInAnnualReporting |
boolean | Optional |
Controls whether investment appears on investor annual tax statements and EOFY summaries (default true for regulatory reporting). |
securityCode |
string | Optional |
APIR code or international security identifier. Updatable, but uniqueness-within-product is re-enforced - reusing a code that exists on a different investment in the same product returns 'SecurityCode already exist, Please try again with a different value.' SecurityCode alone cannot identify the record - use InvestmentID or ExternalInvestmentId for that. |
maxCapital |
decimal | Optional |
Maximum aggregate capital across all investors (system prevents new deposits exceeding this cap, null allows unlimited). |
name |
string | Optional |
Investment display name shown in portals, statements, and transaction confirmations. |
noOfDecimalPlaces |
integer | Optional |
Pricing precision (0-6 decimals) for calculations and InvestmentPrice records (CRITICAL: immutable after transactions exist). |
ordinal |
integer | Display sequence number for sorting investments in user interfaces (lower numbers appear first). | |
ProductID |
integer | Native 7G identifier for the parent product linking investment to product hierarchy. | |
externalProductId |
string | External system identifier for the product (alternative to productID, resolves to native ProductID internally). | |
roundingMethodID |
integer | Optional |
Price rounding methodology reference via common/lookup. Applies after noOfDecimalPlaces precision. |
startDate |
date | Optional |
Date when investment becomes available for deposits (YYYY-MM-DD format, use with isActive flag for precise availability control). |
termDays |
integer | Optional |
Investment term length in days for short-term configurations (mutually exclusive with termMonths, use for money market instruments). |
termMonths |
integer | Optional |
Investment term length in months for term deposits (common values: 3, 6, 12, 24, 36, null for ongoing managed funds). |
termTypeID |
integer | Optional |
Term structure classification via common/lookup (defines investment duration methodology: fixed-term, open-ended, rolling). |
topUpMaxAmount |
decimal | Optional |
Maximum amount for subsequent deposits to existing holdings (separate from allotmentMaxAmount, null allows unlimited top-ups). |
topUpMinAmount |
decimal | Optional |
Minimum amount for subsequent deposits to existing holdings (typically lower than allotmentMinAmount). |
investmentTypeID |
integer | Investment type classification via common/lookup determining business rules and transaction processing logic. |
Complete Replacement
PUT operations require all fields to be provided:
- investmentID: Must match the investment being updated
- External IDs: Cannot be changed - must match current values
- All other fields: Will be replaced with provided values
SecurityCode Cannot Identify the Record on PUT
PUT requires InvestmentID or ExternalInvestmentId to locate the record
being updated. Supplying only SecurityCode is rejected with:
"Either InvestmentID or ExternalInvestmentId must be provided!"
SecurityCode in the body is treated as an updatable field - you can
change the code on an existing investment, but uniqueness-within-product is re-enforced on the
new value. See
IDs & External References
for the operations that do accept SecurityCode as an identifier.
Example Requests
curl -X PUT 'https://api.7g.com.au/Investment' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0' \
-H 'Content-Type: application/json' \
-d '{
"investmentID": 12345,
"externalInvestmentId": "INV-001",
"allowAllotment": false,
"allotmentCutoffDate": "2025-08-16",
"allowDistribution": true,
"allotmentMinAmount": 2000.00,
"allotmentMaxAmount": 500000.00,
"calcDividendIncludingFirstDay": false,
"couponRate": 4.75,
"description": "High Growth Equity Fund - Class A units - Updated terms and conditions",
"distributionPeriodID": 3,
"distributionTermID": 1,
"endDate": "2030-12-31",
"isActive": true,
"isIncludedInAnnualReporting": true,
"securityCode": "HGF001A",
"maxCapital": 75000000.00,
"name": "High Growth Equity Fund A",
"noOfDecimalPlaces": 4,
"ordinal": 1,
"productID": 100,
"externalProductId": "FUND-001",
"roundingMethodID": 1,
"startDate": "2025-01-01",
"termDays": 0,
"termMonths": 36,
"termTypeID": 2,
"topUpMaxAmount": 250000.00,
"topUpMinAmount": 1000.00,
"investmentTypeID": 1
}'Response Examples
{
"result": true,
"message": "Investment updated successfully",
"recordCount": 1,
"data": {
"investmentID": 12345,
"externalInvestmentId": "INV-001",
"allowAllotment": true,
"allotmentCutoffDate": "2025-08-16",
"allowDistribution": true,
"allotmentMinAmount": 1000.00,
"allotmentMaxAmount": 1000000.00,
"calcDividendIncludingFirstDay": false,
"couponRate": 5.50,
"description": "High Growth Equity Fund - Class A units with quarterly distributions - Updated",
"distributionPeriodID": 2,
"distributionTermID": 1,
"endDate": "2030-12-31",
"isActive": true,
"isIncludedInAnnualReporting": true,
"securityCode": "HGF001A",
"maxCapital": 75000000.00,
"name": "High Growth Equity Fund A",
"noOfDecimalPlaces": 4,
"ordinal": 1,
"productID": 100,
"externalProductId": "FUND-001",
"roundingMethodID": 1,
"startDate": "2025-01-01",
"termDays": 0,
"termMonths": 36,
"termTypeID": 2,
"topUpMaxAmount": 500000.00,
"topUpMinAmount": 500.00,
"investmentTypeID": 1
}
}