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

# Webhooks

> HMAC-signed webhooks for decision and lifecycle events — verify before you fulfill.

# Webhooks

Register endpoints in Console. Vence delivers **HMAC-signed** events when decisions and material lifecycle updates occur.

## Delivery rules

1. **Verify the signature** on every delivery before fulfilling.
2. Treat deliveries as **at-least-once** — design for idempotency.
3. Fetch the canonical decision or entity when you need full audit detail.
4. Respond with `2xx` quickly; run heavy work asynchronously.

Non-`2xx` responses trigger retries with exponential backoff. Rotate secrets from Console if compromised.

## Test from the API

Use your provisioned sandbox base URL (intended hostname shown; **founder-beta / coming online**):

```bash theme={null}
curl -X POST https://sandbox.api.vence.one/v1/webhook-test \
  -H "Authorization: Bearer $VENCE_API_KEY" \
  -H "Content-Type: application/json"
```

## Fulfillment pattern

Never treat a browser redirect or unsigned client callback as proof of a decision. The signed webhook (or a `GET /v1/decisions/{decision_id}` after a verified event) is the source of truth for irreversible actions.

See [Errors and testing](/developers/errors-and-testing) and [Security](/overview/security).
