Webhooks
Webhooks let your integration react to events — a new data ingestion completing, a limit breaching, a custodian authority expiring — without polling. Every delivery is signed with a workspace-scoped key so you can verify authenticity before acting.
Events
- Name
calculated_data.created- Type
- data
- Description
A holdings / performance / transaction rebuild for a reporting entity has just finished. The payload includes the reporting entity ID and the cut-off date — fetch the relevant endpoints to pick up the new numbers.
- Name
limit.breached- Type
- policy
- Description
A limit that was previously within bounds just crossed its threshold. Payload includes the limit ID, the reporting entity, and the current and threshold values.
- Name
authority.expiring- Type
- custodian
- Description
A custodian authority is within its renewal window. Use to trigger a re-auth prompt in the client app before the feed breaks.
- Name
authority.revoked- Type
- custodian
- Description
An authority was revoked — either by the user, by Aleta after repeated upstream failures, or by the custodian directly.
- Name
api_version.published- Type
- platform
- Description
A new dated API cut is available. Useful for integrations that pin explicitly and want to plan their migration window.
Signing keys
Webhooks are signed with per-workspace keys. The keys rotate occasionally, and the verification endpoint exposes both the current and one-prior key so your verifier can accept a delivery mid-rotation.
Each delivery carries an Aleta-Signature header with a timestamp and an HMAC-SHA256 over the request body keyed with the current signing secret. Reject deliveries whose signature doesn't verify, or whose timestamp is more than five minutes off.
Fetch signing keys
Returns the two signing keys currently trusted for delivery verification — the active key and the most recently-retired one. Cache the response for the lifetime of your verifier; refetch when you see a signature that doesn't match either key.
Request
curl https://api.aleta.io/v2/webhooks/keys \
-H "Authorization: Bearer {token}"
Delivery semantics
- At-least-once. Treat every event as potentially duplicated and
dedupe on the event
id. - Ordered per reporting entity. Events for a given reporting entity arrive in the order they occurred. Cross-entity ordering is not guaranteed.
- Retries. Non-2xx responses trigger retries with exponential backoff for up to 24 hours. After that the delivery is dead-lettered and surfaced in the workspace's webhook diagnostics.
Return a 2xx response within 10 seconds. Slow handlers are treated as failures. Do the minimum work the delivery requires synchronously (dedupe + enqueue) and offload anything slow to a background job.
Related
- Authentication — how the bearer token for calling the webhook keys endpoint is issued.
- Idempotency — the companion pattern for retrying mutating calls safely.