Skip to main content
Webhooks push real-time event notifications to your server when verification, screening, and transaction events occur. This guide covers endpoint setup, signature verification, retry behavior, and IP allowlisting.
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 an X-Verilock-Signature header containing an HMAC-SHA256 signature of the raw request body.
Verification steps:
  1. Read the raw request body (do not parse JSON first)
  2. Compute HMAC-SHA256 using your webhook secret
  3. Compare the computed value to the X-Verilock-Signature header using a timing-safe comparison
  4. Reject the request if they do not match
Always use timing-safe comparison functions (hash_equals in PHP, hmac.compare_digest in Python, crypto.timingSafeEqual in Node.js) to prevent timing attacks.

Payload Examples

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.
Return a 200 status code immediately and process the event asynchronously. Long-running webhook handlers increase the chance of timeouts and unnecessary retries.

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
Filter by event type, status, or date range to investigate delivery issues.

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.