> ## Documentation Index
> Fetch the complete documentation index at: https://docs.syntage.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

Webhooks let Syntage deliver events to your server when resources in your organization change. Use them when your integration needs to react to new credentials, entities, extractions, invoices, files, reports, or other resources without polling the Events API.

## Webhook Endpoints

A webhook endpoint is the HTTPS URL where Syntage sends matching events. Each endpoint defines:

| Field           | Purpose                                                                                      |
| --------------- | -------------------------------------------------------------------------------------------- |
| `url`           | The public HTTPS URL that receives event deliveries                                          |
| `events`        | The event types delivered to the endpoint, such as `extraction.updated` or `invoice.created` |
| `enabled`       | Whether Syntage should send events to the endpoint                                           |
| `contentType`   | The payload format, either `application/ld+json` or `application/json`                       |
| `signingSecret` | The secret used to verify delivery signatures                                                |

Endpoint URLs must use HTTPS and must resolve to a public network address. Syntage sends each delivery as a `POST` request with `X-Syntage-Signature`, `X-Satws-Signature`, `Content-Digest`, and `Content-Type` headers.

Use [Validating Webhook Requests](/guides/validating-webhook-requests) to verify that webhook deliveries came from Syntage.

## Event payload

Each delivery's body is a single [Event](/resources/core/events) object. The event includes the `type` that occurred, the `source` and `resource` IRIs, and a `data` object whose `data.object` holds the current state of the affected resource. Update events also include `data.changes` with the old and new values of the fields that changed.

See [Event examples](/developers/event-examples) for the full payload structure of created, updated, and deleted events.

## Webhook Requests

A webhook request is a delivery attempt from Syntage to a webhook endpoint. Request records are useful for monitoring delivery health and investigating failures.

Syntage records the endpoint URL, related event, response status code, response time, and timestamps. If Syntage cannot get an HTTP response, such as when the request times out after 3 seconds, the recorded `responseStatusCode` is `0`.

Deliveries are considered successful when your endpoint returns a `2xx` HTTP status code. Failed deliveries are retried up to 4 times, so your webhook handler should process events idempotently.
