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

# Webhooks

> **Tip**
>
> Navigate to the [Bridge Developer Dashboard](https://app.usebridge.com/developers), to access your
> organization's webhook portal.

Bridge webhooks are a mechanism to receive real-time updates when core resources are updated.
Webhooks are created when an Event is created. The Event is a description of the change, and is stored permanently.
These Events can be collated for a single resources, to see a history of changes.

Our general approach to webhooks:

* For core resources, any update will create an Event
* Webhooks guarantee at-least once delivery
* We support multiple webhook endpoints, filtering, custom authentication methods
* Delivery logs, retries, and replays are available through the webhook dashboard
* Webhook payloads are thin, they reference the Event type and ID

# Webhooks

The following webhook *types* are available (`eventType` in the payload)

* note.created
* note.updated
* patient.created
* patient.updated
* payment.created
* policy.created
* policy.updated
* payer_group.health.updated
* payer_group.health_event.created
* provider.enrollment_status.updated
* service.created
* service.updated
* service_eligibility.created
* service_eligibility.updated
* service_invoice.created
* service_invoice.updated

## Reliability

* Webhooks are **at-least-once** and can be delivered out of order.
* For critical decisions, fetch the current resource state after receiving the event.

See [Webhook Behavior](/documentation/guides/webhook-behavior) for recommended patterns.

# Implementation

All webhook payloads consist of the following JSON object:

```
eventId: string
eventType: "note.created" | "note.updated" | ...
```

In response to this, your system should use the [Get Event](/api/api-reference/events/get-event) endpoint to fetch the full payload.

The `objectType` and `objectId` can be used to determine which resource to fetch.

For *some* events, the `previous` and `data` snapshots are available, which includes a full representation of the before and after.

> **Warning**
>
> As the Bridge system evolves, the `previous` and `data` snapshot fields are being considered for
> future deprecation. This, combined with the lack of order guarantees surrounding webhooks, means
> that we recommend always fetching the current state of the resource.