For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DashboardGet an API key
Get StartedEventsToolsChangelog
Get StartedEventsToolsChangelog
  • Welcome
    • Overview
    • Quickstart
  • Concepts
    • Event envelope
    • Receiving webhooks
    • Signature verification
    • Retries and backoff
    • Testing
LogoLogo
DashboardGet an API key
Concepts

Event envelope

|View as Markdown|Open in Claude|
Was this page helpful?
Previous

Webhooks quickstart

Next

Receiving webhooks

Built with

Every webhook arrives in the same envelope. The fields below are present on every event.

event envelope
1{
2 "id": "evt_2nQv8c9aZmYHKr1...",
3 "type": "customer.health_score_dropped",
4 "created_at": "2026-05-26T18:42:00.000Z",
5 "org_id": "org_2bH...",
6 "livemode": true,
7 "api_version": "v1",
8 "data": {
9 "object": {
10 "id": "cus_2N...",
11 "display_id": 4218,
12 "name": "Acme Corp",
13 "health_score": 38,
14 "previous_health_score": 72
15 },
16 "previous_attributes": {
17 "health_score": 72
18 }
19 }
20}
FIELDS
FieldTypeNotes
idstringStable event id. Use it for idempotent processing.
typestringDot-namespaced event type, e.g. customer.created.
created_atISO 8601When the event fired, not when we delivered it.
org_idstringThe workspace that owns the resource.
livemodebooleanfalse for events from pivotal_test_ keys.
api_versionstringAlways v1 today. Reserved for future versioning.
data.objectobjectThe full resource at the time of the event.
data.previous_attributesobject | nullPresent on *.updated events with the prior field values.
WHAT TO READ NEXT
  • Receiving webhooks — copyable Node and Python handlers
  • Signature verification — HMAC + Svix SDK
  • Retries and backoff — when delivery gives up