POST

/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

  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
}