/Investment
Usage Notes
When
- Create unit classes with minimum investment thresholds
- Configure term deposits with maturity dates and coupon rates
- Set up Class A/B/C structures with varying settings
Requirements
- Parent Product must exist and be active
- AllowAllotment, AllowDistribution, IsActive, CalcDividendIncludingFirstDay, InvestmentTypeID required
Notes
- Set IsActive=false until pricing data loaded and approvals complete
- NoOfDecimalPlaces cannot change after transactions exist (use 4 for funds, 2 for deposits)
- ExternalInvestmentId must be unique and is immutable after creation
- AllotmentCutoffDate far future (2099-12-31) for ongoing funds
Description
Creates an investment product within a parent Product. Configure allotment thresholds, distribution settings, pricing precision, and lifecycle dates. Returns complete investment with system-assigned investmentID.
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 |
Leave as null or 0 for POST operations (system auto-assigns identifier and returns in response.data.investmentID). |
externalInvestmentId |
string | Optional |
External investment identifier for cross-system tracking (immutable after creation, recommend UUID or prefixed sequential IDs). |
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 (ISIN, CUSIP, ticker symbol). Unique within the parent product - reusing an existing code in the same product returns 'SecurityCode already exist, Please try again with a different value.' Also usable as a third Investment identifier on most downstream endpoints. |
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. |
Investment Configuration
Key settings that control investment behavior:
- AllowAllotment: Controls whether new investments can be accepted
- AllowDistribution: Enables distribution processing for this investment
- IsActive: Master switch for all transaction types
- NoOfDecimalPlaces: Pricing precision (e.g., 4 for $1.2345)
SecurityCode Uniqueness
SecurityCode is unique within a product, not globally. Attempting
to create an investment with a code that already exists under the same ProductID
returns: "SecurityCode already exist, Please try again with a different value."
Once set, this code becomes a third identifier you can use on most downstream endpoints (GET filters, transaction payloads, event payloads, distribution payloads) - see IDs & External References for the full three-key model.
Example Requests
curl -X POST 'https://api.7g.com.au/Investment' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0' \
-H 'Content-Type: application/json' \
-d '{
"investmentID": 0,
"externalInvestmentId": "INV-001",
"allowAllotment": true,
"allotmentCutoffDate": "2025-08-16",
"allowDistribution": true,
"allotmentMinAmount": 1000.00,
"allotmentMaxAmount": 1000000.00,
"calcDividendIncludingFirstDay": false,
"couponRate": 5.25,
"description": "High Growth Equity Fund - Class A units with quarterly distributions",
"distributionPeriodID": 2,
"distributionTermID": 1,
"endDate": "2030-12-31",
"isActive": false,
"isIncludedInAnnualReporting": true,
"securityCode": "HGF001A",
"maxCapital": 50000000.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
}'Response Examples
{
"result": true,
"message": "Investment created 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.25,
"description": "High Growth Equity Fund - Class A units with quarterly distributions",
"distributionPeriodID": 2,
"distributionTermID": 1,
"endDate": "2030-12-31",
"isActive": false,
"isIncludedInAnnualReporting": true,
"securityCode": "HGF001A",
"maxCapital": 50000000.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
}
}