Webhooks
Setting up and handling Vericato webhooks
Webhooks
Webhooks allow you to receive real-time updates about verification events in your application. When a verification status changes, Vericato will send an HTTP POST request to your configured webhook URL.
Webhooks are only available for Premium plan customers.
Configuring Webhooks
- Go to your Vericato dashboard
- Navigate to Settings > Webhooks
- Enable webhooks and enter your webhook URL
- Make sure your endpoint can receive POST requests over HTTPS
- Save your webhook configuration
Webhook Events
Vericato sends webhook notifications for the following events:
Verification Verified Event
Triggered when a verification is successfully completed.
Verification Failed Event
Triggered when a verification fails.
Verification Expired Event
Triggered when a verification expires without successful completion.
Webhook Headers
Each webhook request includes the following headers:
| Header | Description |
|---|---|
Content-Type | Always application/json |
User-Agent | Vericato-Webhook/1.0 |
X-Vericato-Event | The event type (e.g., verification.verified) |
X-Vericato-Verification-Id | The verification ID |
Handling Webhooks
Here's an example of how to handle webhook events in your application:
Next.js App Router
Express.js
Best Practices
-
Respond Quickly
- Return a 200 status code as soon as possible
- Process webhook data asynchronously if needed
- Webhook requests timeout after 10 seconds
-
Handle Retries
- Implement idempotency using the
verification_id - Store processed webhook IDs to prevent duplicate processing
- Vericato may resend webhooks if your endpoint doesn't respond with 200
- Implement idempotency using the
-
Validate Requests
- Check the
X-Vericato-Eventheader - Verify the
verification_idmatches your records - Only accept requests from your webhook URL path
- Check the
-
Error Handling
- Log all webhook events for debugging
- Implement proper error handling
- Return appropriate HTTP status codes
-
Security
- Use HTTPS endpoints only
- Validate webhook payload structure
- Consider implementing IP allowlisting (contact support for Vericato's IP ranges)
Testing Webhooks
During development, you can use tools like:
- ngrok or Cloudflare Tunnel to expose your local server
- webhook.site or RequestBin to inspect webhook payloads
- The webhook testing feature in your Vericato dashboard (coming soon)
Troubleshooting
Webhook Not Received
- Verify your webhook URL is correct and accessible
- Check that your endpoint accepts POST requests
- Ensure your server returns a 200 status code
- Verify you have a Premium plan subscription
Duplicate Webhooks
- Webhooks may be retried if your endpoint doesn't respond with 200
- Implement idempotency checking using
verification_id - Store processed webhook IDs in your database
Timeout Errors
- Webhook requests timeout after 10 seconds
- Return 200 immediately and process data asynchronously
- Move heavy processing to background jobs
Webhook Payload Reference
Common Fields
All webhook events include these fields:
| Field | Type | Description |
|---|---|---|
event | string | The event type (e.g., verification.verified) |
timestamp | string | ISO 8601 timestamp when the webhook was sent |
data | object | Event-specific data |
data.verification_id | string | Unique identifier for the verification |
data.verification_status | string | Current status: verified, failed, or expired |
data.verification_original_name | string | Name provided when creating the verification |
data.company_id | string | Your company ID |
data.company_name | string | Your company name |
data.original_verification | object | Original verification details |
Event-Specific Fields
verification.verified
verification_verified_name- The verified name from the identity documentverification_date_identified- When the verification was completedverification_method- Method used (e.g.,passport,id_card,itsme,idin)
verification.failed
verification_failed_reason- Reason why the verification failedverification_method- Method attempted (if applicable)
verification.expired
verification_expired_date- When the verification expired
Further Information
- Create verification requests
- Get verification details
- Upgrade to Premium plan in your dashboard settings