For a quick reference of all webhook events and payload structures, see Webhooks Reference.
Setting Up Endpoints
1
Create an Endpoint
Go to Dashboard > Settings > Webhooks and click Add Endpoint. Enter your HTTPS URL and select the events you want to receive.
2
Copy the Signing Secret
After creating the endpoint, copy the Webhook Secret. You will need this to verify incoming payloads. The secret is shown once and can be rotated at any time.
3
Subscribe to Events
Select which events are delivered to this endpoint. You can subscribe to all events or choose specific ones.
4
Activate the Endpoint
Toggle the endpoint to Active. Verilock will begin delivering events immediately.
All Events
Verilock emits the following 13 webhook events:Signature Verification
Every webhook includes anX-Verilock-Signature header containing an HMAC-SHA256 signature of the raw request body.
- Read the raw request body (do not parse JSON first)
- Compute HMAC-SHA256 using your webhook secret
- Compare the computed value to the
X-Verilock-Signatureheader using a timing-safe comparison - Reject the request if they do not match
Payload Examples
- session.approved
- aml.match_found
- transaction.blocked
- wallet.screened
Retry Policy
Failed deliveries (non-2xx response or timeout after 10 seconds) are retried with exponential backoff:
After 5 failed attempts, the delivery is marked as failed. View and manually retry failed deliveries from Dashboard > Webhooks > Delivery Log.
IP Allowlisting
If your infrastructure uses firewall rules, allowlist the following Verilock IP ranges:IP ranges are subject to change. Subscribe to the Verilock status page for notifications about infrastructure changes.
Multiple Endpoints
You can configure up to 10 webhook endpoints per account. Each endpoint can subscribe to different events, allowing you to route events to different services:Delivery Log
The webhook delivery log in your dashboard shows:- Event type and payload
- Response status code from your endpoint
- Response time in milliseconds
- Retry count and next retry time
- Delivery status:
delivered,retrying,failed
Best Practices
Respond Fast
Return
200 OK immediately. Queue the event for async processing to avoid timeouts.Deduplicate
Store processed
webhook_id values. Skip events you have already handled to ensure idempotent processing.Verify Signatures
Always validate
X-Verilock-Signature before processing. Reject unsigned or incorrectly signed payloads.Monitor Failures
Set up alerts for failed deliveries. Persistent failures may indicate endpoint issues or network problems.

