/Document/Statement
Usage Notes
When
- Generate investor statements with date ranges
- Create reports scoped to specific entities or products
Requirements
- statementTypeID required
- Product scope (productID or externalProductId) and entity scope (bizEntityID or externalBizEntityId)
Notes
- Date range parameters (fromDate, toDate) for period filtering
- Transaction Statements return one statement per investment held, combined into a single PDF; narrow to one investment with investmentID, externalInvestmentId or securityCode
- Optional excludeFilter omits investments with no movements (1) or no holdings (2) in the period
- accountID / externalAccountId select a specific account when the BizEntity has more than one
- The generated file is streamed back in the response body; it is not stored as a Document record
Description
Generates an investor statement from the product's statement template and streams the resulting file back in the response body (typically application/pdf). For Transaction Statements the response is a single PDF containing one statement per investment held by the account; excludeFilter trims that list, and investmentID, externalInvestmentId or securityCode narrows it to a single investment.
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 |
|---|---|---|---|
statementTypeID |
integer | Statement type classification reference via common/lookup. Determines template selection, data inclusion, required fields, and validation logic for statement generation. | |
productID |
integer | The product identifier for statement generation. Required for all statement types. If ProductID > 0, it takes precedence over ExternalProductId. | |
externalProductId |
string | Your external product identifier. Required for all statement types when ProductID is not provided or equals 0. | |
investmentID |
integer | Optional |
The investment identifier to include in statement. Filter to specific investments within a product. |
externalInvestmentId |
string | Optional |
Your external investment identifier. Alternative to investmentID for investment-specific statements. |
securityCode |
string | Optional |
Investment security code — a third way to target a single investment, alongside investmentID and externalInvestmentId. SecurityCode is unique within a product, so supply productID or externalProductId with it. |
corporateActionID |
integer | The corporate action identifier for distribution statement generation. Mandatory for distribution statements. | |
externalCorporateActionId |
string | Your external corporate action identifier. Required for distribution statements when CorporateActionID is not provided or equals 0. | |
bizEntityID |
integer | The business entity identifier for statement generation. Mandatory for all statement types. | |
externalBizEntityId |
string | Your external business entity identifier. Required for all statement types when BizEntityID is not provided or equals 0. | |
organisationID |
integer | Optional |
The organisation identifier to generate statement for. Filter to specific organisations. |
externalOrganisationId |
string | Optional |
Your external organisation identifier. Alternative to organisationID for organisation-specific statements. |
fromDate |
string (date) | Start date for transaction statement period in YYYY-MM-DD format. Mandatory for transaction statements. | |
toDate |
string (date) | End date for statement period in YYYY-MM-DD format. Mandatory for transaction and tax statements. Tax statements require valid financial year end date. | |
code |
string | Optional |
Statement reference code for identification and tracking purposes. |
accountID |
integer | Optional |
Targets a specific account when the BizEntity holds more than one. Optional; when omitted the entity's account is resolved by the service. |
externalAccountId |
string | Optional |
Your external account identifier. Alternative to accountID for targeting a specific account. |
excludeFilter |
integer (enum) | Optional |
StatementExcludeFilters enum, sent as an integer: 0 = None (default, no filtering), 1 = NoMovementsInPeriod (omits investments with no transactions in the fromDate–toDate period), 2 = NoHoldingsInPeriod (omits investments not held at any point in the period). Applies to Transaction Statements. |
separateStatementPerInvestment |
boolean | Optional |
Defaults to true: produces one statement per investment held, combined into a single returned PDF. Setting it to false returns 400 ("A combined statement across all investments is not yet supported."). Omit it or leave it true. |
Statement Types & Required Fields
The statementTypeID determines which template, validation rules, and data sources are used for statement generation. Query Common/Lookup for the latest available statement types.
Required Fields
toDate (validates financial year end)
bizEntityID or externalBizEntityIdAnnual tax information for ATO reporting including distribution components, franking credits, capital gains, and financial year summaries.
Required Fields
corporateActionID or externalCorporateActionId
bizEntityID or externalBizEntityIdAMIT-compliant distribution statements with tax component details, franking credits, and ATO reporting information for specific corporate actions.
Required Fields
fromDate and toDate (both required)
bizEntityID or externalBizEntityIdMember account activity for specified date range including unit applications/redemptions, fee deductions, balance changes, and transaction history.
Statement Composition & Exclude Filters
A Transaction Statement request (statementTypeID: 32) produces one statement per investment the account holds,
combined into a single returned PDF. This is controlled by separateStatementPerInvestment, which defaults to true.
Sending false returns 400 with the message A combined statement across all investments is not yet supported.
Omit the field or leave it true.
excludeFilter trims which investments get a statement. It is sent as an integer (the enum StatementExcludeFilters):
| Value | Name | Effect |
|---|---|---|
0 | None | Default. No filtering — every investment held gets a statement. |
1 | NoMovementsInPeriod | Omits investments with no transactions between fromDate and toDate. |
2 | NoHoldingsInPeriod | Omits investments not held at any point between fromDate and toDate. |
To target one account when the BizEntity has several, pass accountID or externalAccountId.
To produce a statement for a single investment, pass investmentID, externalInvestmentId or securityCode
(SecurityCode is unique within a product, so keep productID / externalProductId in the request).
Example Requests
# Generate a distribution statement (statementTypeID: 9)
curl -X POST 'https://api.7g.com.au/Document/Statement' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0' \
-H 'Content-Type: application/json' \
-d '{
"statementTypeID": 9,
"productID": 100,
"bizEntityID": 12345,
"corporateActionID": 789,
"code": "DIST-2024-Q4"
}' \
--output distribution_statement.pdf
# Transaction statement (statementTypeID: 32) — one statement per investment held,
# skipping investments with no movements in the period (excludeFilter: 1)
curl -X POST 'https://api.7g.com.au/Document/Statement' \
-H 'Authorization: {accessToken}' \
-H 'Version: 2.0' \
-H 'Content-Type: application/json' \
-d '{
"statementTypeID": 32,
"productID": 100,
"bizEntityID": 12345,
"accountID": 67890,
"fromDate": "2024-07-01",
"toDate": "2025-06-30",
"excludeFilter": 1,
"code": "TXN-FY2025"
}' \
--output transaction_statements.pdfResponse Examples
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="Investment_Statement_2024.pdf"
[Binary file content streamed to client]