> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.pivotal.app/llms.txt.
> For full documentation content, see https://docs.pivotal.app/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.pivotal.app/_mcp/server.

# Event envelope

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

```json title="event envelope"
{
  "id": "evt_2nQv8c9aZmYHKr1...",
  "type": "customer.health_score_dropped",
  "created_at": "2026-05-26T18:42:00.000Z",
  "org_id": "org_2bH...",
  "livemode": true,
  "api_version": "v1",
  "data": {
    "object": {
      "id": "cus_2N...",
      "display_id": 4218,
      "name": "Acme Corp",
      "health_score": 38,
      "previous_health_score": 72
    },
    "previous_attributes": {
      "health_score": 72
    }
  }
}
```

FIELDS

| Field                      | Type           | Notes                                                      |
| -------------------------- | -------------- | ---------------------------------------------------------- |
| `id`                       | string         | Stable event id. Use it for idempotent processing.         |
| `type`                     | string         | Dot-namespaced event type, e.g. `customer.created`.        |
| `created_at`               | ISO 8601       | When the event fired, not when we delivered it.            |
| `org_id`                   | string         | The workspace that owns the resource.                      |
| `livemode`                 | boolean        | `false` for events from `pivotal_test_` keys.              |
| `api_version`              | string         | Always `v1` today. Reserved for future versioning.         |
| `data.object`              | object         | The full resource at the time of the event.                |
| `data.previous_attributes` | object \| null | Present on `*.updated` events with the prior field values. |

WHAT TO READ NEXT

* [Receiving webhooks](/webhooks/receiving) — copyable Node and Python handlers
* [Signature verification](/webhooks/signing) — HMAC + Svix SDK
* [Retries and backoff](/webhooks/retries) — when delivery gives up