POST

/Distribution/Declare

When to Use

  • Standard Distributions: Declare income and capital gains distributions to all eligible investors by omitting all account arrays
  • Custom Calculated Distributions: Use preCalculatedAccounts when you've performed your own distribution calculations and want 7G to store your exact amounts without recalculation
  • Selective Distributions: Use includeAccounts to process distributions for specific investor groups (e.g., high-value accounts, specific entity types, strategic investors)
  • Exclusion-Based Distributions: Use excludeAccounts to exclude specific accounts from standard distribution processing (e.g., suspended accounts, pending verification, regulatory holds)
  • Tax Component Processing: Process tax-deferred distribution components with franking credits and AMIT attribution distributions with tax flow-through
  • DRP/DRIP Preparation: Prepare distribution reinvestment plan (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

Important Considerations

⚠️ Critical Implementation Notes

  • Declaration Irreversibility: Once declared, distribution calculations become permanent and cannot be modified via API (admin portal modification only) - ensure all parameters are validated before execution
  • Account Array Mutual Exclusivity: If specifying accounts, only of the optional account arrays should contain values. Using multiple arrays will trigger a validation error
  • Pre-Calculated Amounts Authority: When using preCalculatedAccounts, 7G stores your exact values without validation or recalculation - ensure accuracy as these become the authoritative distribution amounts
  • Foreign Investor Withholding: Non-resident investors trigger automatic withholding tax calculations based on tax treaty provisions and local tax rates

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

  1. Create: Define distribution parameters, tax components, and DRP settings
  2. Declare: Lock eligible investors, calculate amounts, select accounts (this endpoint, optional - preCalculatedAccounts/includeAccounts/excludeAccounts)
  3. Distribute: Process payments to investors
  4. 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

HeaderValueDescription
Content-Typeapplication/jsonRequest content type
Authorization{accessToken}Bearer token for API access
Version2.0API 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.
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

json
{
  "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

json
{
  "result": true,
  "message": "Distribution declared successfully",
  "recordCount": 1,
  "data": null
}