Webhooks
Webhooks let you receive consent events as HTTP POST requests to your own endpoint. Use webhooks to sync consent state to your backend, CRM, or data warehouse.
Setting up a webhook
- Go to Dashboard → Property → Webhooks → Add Endpoint
- Enter your endpoint URL (must be HTTPS)
- Select which events to send
- Copy your webhook secret (used for signature verification)
- Save
Events
| Event | Trigger |
|---|---|
consent.created | User gives consent for the first time |
consent.updated | User changes their consent choices |
consent.expired | Stored consent reaches expiry date |
consent.reset | Property-level consent reset applied |
Payload format
{
"event": "consent.created",
"delivery_id": "del_abc123",
"timestamp": "2026-03-09T12:00:00Z",
"property_id": "prop_xyz",
"data": {
"receipt_id": "rec_def456",
"policy_id": "pol_ghi789",
"policy_version": 3,
"choices": {
"necessary": true,
"analytics": true,
"marketing": false,
"functional": true
},
"region": "DE",
"user_agent_hash": "sha256:abc...",
"ip_hash": "sha256:def..."
}
}
Verifying signatures
Always verify the X-ConsentForge-Signature header before processing. See Webhook Security for code examples.
Testing webhooks
Use the Test button in the Dashboard webhook settings to send a sample payload to your endpoint. You can also use webhook.site for local testing.
Viewing delivery history
Dashboard → Property → Webhooks → Delivery Log shows all delivery attempts with status codes and response bodies.