Webhook Receiver
Use webhooks to keep your SaaS database in sync after domain status changes.
Event Type
Custom Domain Kit sends:
domain.status_changedThe event is emitted when a domain reaches a terminal active or failed state.
Payload
{
"id": "evt_123",
"type": "domain.status_changed",
"createdAt": "2026-06-30T12:00:00.000Z",
"data": {
"applicationId": "app_123",
"domainId": "dom_123",
"hostname": "docs.customer.com",
"status": "active",
"statusReason": null,
"tenantId": "tenant_456",
"actorId": "user_789"
}
}Delivery Headers
X-CustomDomainKit-Delivery: wdel_123
X-CustomDomainKit-Event: evt_123
X-CustomDomainKit-Timestamp: 1782216000
X-CustomDomainKit-Signature: v1=<hex-hmac>Signature Verification
Verify the signature against:
timestamp + "." + raw_bodyUse the webhook signing secret from the dashboard. Do not use the app secret.
Receiver Behavior
- Reject requests with missing or invalid signatures.
- Ignore duplicate event IDs.
- Update the local domain row by
domainIdorhostname. - Return
2xxfor events that were processed or safely ignored. - Log event ID, delivery ID, hostname, and status.
