POST with a Content-Type: application/json body. The top-level shape is the same for all event types.
Top-level fields
A unique UUID for this event. Use this to deduplicate deliveries — if your endpoint receives the same
event_id twice, you can safely ignore the second one.The event type string, e.g.
referral.created. Matches the event types listed on the Event Types page.The action that triggered the event. One of
created, updated, or deleted.The type of the resource that changed, e.g.
promoter, referral, commission.The database ID of the resource.
For
updated events, an object containing the fields that changed. Each key maps to an array of [old_value, new_value]. Empty for created and deleted events (the full resource is in data instead).The full serialized state of the resource at the time of the event. The exact fields depend on the
entity_type. See the examples below.ISO 8601 timestamp of when the event occurred.
Example payloads
promoter.created
promoter.created
referral.updated
referral.updated
commission.updated
commission.updated
contract_document.signed
contract_document.signed
Request headers
In addition to the JSON body, every request includes these headers:| Header | Description |
|---|---|
Content-Type | Always application/json |
X-Webhook-Signature | HMAC-SHA256 signature of the payload. See Security. |
X-Event-Id | Same value as event_id in the payload. Useful for logging and deduplication at the transport layer. |
X-Event-Type | Same value as event_type in the payload. |