Corporate Actions
Learn how to consume Corporate Action events and endpoints on the lemon.markets API.
Overview
Corporate Actions are accessible through two levels of the API:
- Instrument-level (
/v1/corporate_actions) - all Corporate Actions affecting instruments in your universe. Use this to learn about upcoming events and track their processing status. - Account-level (
/v1/accounts/{account_id}/corporate_actions) - the per-account result of a Corporate Action, where applicable (e.g. amounts, taxes, and the securities account involved for cash dividends).
Both endpoints are polymorphic, discriminated by the type field. Refer to the API reference for supported types and filtering options.
Events
corporate_action.created
corporate_action.createdSubscribe to this event to be notified when a new Corporate Action appears for an instrument in your universe. You also receive it when an instrument with a pending Corporate Action is added to your universe.
The context payload:
{
"type": "corporate_action.created",
"context": {
"corporate_action": "ca_b042d117bc254fcba9d845800c413695",
"corporate_action_type": "cash_dividend",
"instrument": "DE0005909006"
}
}On receiving this event, call GET /v1/corporate_actions/{id} to fetch the full details.
update.created / update.succeeded
update.created / update.succeededEmitted when the terms of a Corporate Action change. The corporate_action field is included in the context. Subscribe to update.succeeded and call GET /v1/corporate_actions/{id} to refresh your local state.
Account-level event (type-specific)
Each Corporate Action type has its own per-account event. For cash dividends, this is dividend_distribution.created.
The context contains account, securities_account, corporate_action and dividend_distribution.
On receiving this event, refer to the dividend_distribution field to call GET /v1/accounts/{account_id}/corporate_actions/{dividend_distribution_id} and fetch the per-account result.
corporate_action.processed
corporate_action.processedEmitted when all accounts have been processed. The Corporate Action status is now processed (final).
The case of Income Distributions
Income Distributions differ from the above:
- No
corporate_action.*events are emitted at the instrument level. - Per affected account, an
income_distribution.createdevent is emitted. Theincome_distributionfield in its context refers toGET /v1/accounts/{account_id}/income_distributions/{income_distribution_id}, not to the account-level Corporate Action endpoint. - The account-level Corporate Action endpoint also includes Income Distributions. The response payload is identical to the dedicated endpoint, except for a different
idformat and the addition of atypefield (set toincome_distribution).
Further Reading
Updated 2 days ago