How Webhooks Work
When an event occurs in Vook, the platform:- Constructs a JSON event payload describing what happened
- Signs the payload with your webhook secret using HMAC-SHA256
- Sends an HTTP
POSTrequest to your registered endpoint - Expects your server to respond with HTTP
200within 5 seconds - Retries failed deliveries up to 5 times with exponential backoff if your endpoint returns a non-2xx status or times out
200.
Registering a Webhook Endpoint
Open Webhook Settings
Log in to app.vook.ai and navigate to Settings → Webhooks.
Add a new endpoint
Click Add Endpoint and enter the full HTTPS URL of your server (for example,
https://yourapp.com/webhooks/vook).Select events to subscribe to
Choose the event types your integration needs. You can subscribe to individual events or select All Events to receive everything.
Event Payload Format
Every webhook Vook sends has the same envelope structure:| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for this event delivery |
type | string | The event type (see Event Types below) |
created_at | string | ISO 8601 timestamp of when the event occurred |
data | object | The full resource object at the time of the event |
Event IDs are unique per delivery attempt. If Vook retries a failed delivery,
the retry carries the same
id as the original attempt. Use this to
deduplicate events in your handler.Verifying Webhook Signatures
Every webhook request includes anX-Vook-Signature header containing an HMAC-SHA256 signature computed over the raw request body using your webhook secret. Verify it server-side before trusting the payload:
Event Types
Vook emits the following event types. Subscribe only to the events your integration needs.| Event Type | Trigger |
|---|---|
resource.created | A new resource is created |
resource.updated | An existing resource is modified |
resource.deleted | A resource is permanently deleted |
resource.status_changed | A resource transitions to a new status |
batch.completed | A batch operation finishes processing |
batch.failed | A batch operation fails |
export.ready | An export file is ready to download |
New event types may be added over time. Structure your handler with a
default / else branch to gracefully ignore unknown event types without
crashing — this makes your integration forward-compatible.