/Distribution/Declare
When to Use
- Declare distributions to all eligible investors (omit all account arrays for standard processing)
- Use preCalculatedAccounts when you've performed custom calculations
- Use includeAccounts to process distributions for specific investor groups
- Use excludeAccounts to exclude specific accounts from standard processing
- Prepare DRP calculations for accounts participating in reinvestment programs
Prerequisites
- Distribution record must exist with complete tax components
- Tax components must total exactly 100%
- Current unit holdings available for record date calculations
Considerations
- Once declared, distribution calculations are permanent (cannot be modified via API)
- Account arrays are mutually exclusive (use only one: preCalculatedAccounts, includeAccounts, or excludeAccounts)
- preCalculatedAccounts stores your exact values without validation or recalculation
- Non-resident investors trigger automatic withholding tax calculations
- Tax components must total exactly 100%
Description
Declares a created distribution, locking eligible investors as of the record date and calculating individual distribution amounts. This endpoint transforms distribution parameters into specific account-level records, preparing for payment processing. Declaration is irreversible and establishes the final investor entitlements.
Account Array Options - Mutually Exclusive
Control which accounts receive distributions by using one of three mutually exclusive arrays:
- No arrays (all empty/null): Standard distribution - 7G will calculate and process distributions for all eligible accounts.
- preCalculatedAccounts: Provide your own pre-calculated distribution amounts when you have performed custom calculations. 7G will store your exact values without recalculation.
- includeAccounts: Specify which accounts should receive distributions. 7G will calculate amounts for only these accounts based on the distribution parameters.
- excludeAccounts: Specify which accounts should NOT receive distributions. 7G will calculate amounts for all eligible accounts except these.
⚠️ Important: If specifying accounts, only ONE array can have values. If multiple arrays contain data, the API will return a validation error.
Distribution Workflow - Step 2 of 4
- Create: Define distribution parameters, tax components, and DRP settings
- Declare: Lock eligible investors, calculate amounts, select accounts (this endpoint, optional - preCalculatedAccounts/includeAccounts/excludeAccounts)
- Distribute: Process payments to investors
- Allotment: Execute DRP unit allocation (optional, only if applicable)
⚠️ Critical: Declaration is Permanent
Once declared, the distribution cannot be modified using the API, it can be modified using the admin portal. Ensure all parameters, tax components, and business rules are validated before execution.
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 |
|---|---|---|---|
ProductID |
integer | Required |
Native 7G product identifier for declaration validation and permission checks. |
externalProductId |
string | Optional |
Client-supplied product reference (alternative to productID). |
CorporateActionID |
integer | Required |
Native 7G distribution identifier targeting declaration and processing. |
externalCorporateActionId |
string | Optional |
Client-supplied distribution reference (alternative to corporateActionID). |
overrideDate |
string (date) | Optional |
Declaration execution date override (defaults to current system date). |
comment |
string | Optional |
Declaration comment for audit trail and business records. |
runDistribution |
boolean | Required |
Auto-execute distribution after declaration (true=single-step, false=standard workflow). |
preCalculatedAccounts |
>
List<PreCalculatedAccountDTO>... |
Array of pre-calculated distribution amounts for specific accounts. Use when you have performed custom distribution calculations and want 7G to store your exact values without recalculation. | |
includeAccounts |
>
List<DistributionAccountDTO>... |
Array of specific accounts to include in distribution processing. 7G will calculate distribution amounts for only these accounts based on the distribution parameters. | |
excludeAccounts |
>
List<DistributionAccountDTO>... |
Array of specific accounts to exclude from distribution processing. 7G will calculate distribution amounts for all eligible accounts except these. |
Example Requests
{
"productID": 100,
"externalProductId": "PROD-001",
"corporateActionID": 12346,
"externalCorporateActionId": "DIST-2024-Q2",
"overrideDate": "2024-07-20",
"comment": "Q2 2024 distribution declaration",
"runDistribution": false,
"preCalculatedAccounts": [
{
"accountID": 123456,
"accountNumber": "ACC-001",
"bizEntityID": 789,
"bizEntityName": "Smith Family Trust",
"holding": 1000.50,
"bizEventTypeID": 5,
"amount": 125.00,
"grossAmount": 127.50,
"bizEventID": 45678,
"quantityDays": 90,
"quantityDaysLeapYear": 90,
"drpPercentage": 100.0,
"latestNonZeroHolding": 1000.50,
"ordinal": 1
}
],
"includeAccounts": [
{
"corporateActionID": 12346,
"externalCorporateActionId": "DIST-2024-Q2",
"productID": 100,
"externalProductId": "PROD-001",
"accountID": 123456,
"externalAccountId": "ACC-001",
"accountNumber": "ACC-123456",
"bizEntityName": "Smith Family Trust"
}
],
"excludeAccounts": [
{
"corporateActionID": 12346,
"externalCorporateActionId": "DIST-2024-Q2",
"productID": 100,
"externalProductId": "PROD-001",
"accountID": 789012,
"externalAccountId": "ACC-999",
"accountNumber": "ACC-789012",
"bizEntityName": "Pending Verification Account"
}
]
}Response Examples
{
"result": true,
"message": "Distribution declared successfully",
"recordCount": 1,
"data": null
}