Learn how to configure webhooks to receive real-time WhatsApp events
This guide walks you through setting up webhooks for your WhatsApp configuration to receive real-time notifications when WhatsApp events occur.
Webhooks allow your application to receive HTTP notifications when specific WhatsApp events happen, enabling real-time integrations and automation workflows.
Before setting up webhooks, ensure you have:
Kapso supports five types of WhatsApp webhook events:
whatsapp.message.received
- Triggered when a new message arrives from a customer
whatsapp.conversation.created
- Triggered when a new conversation begins
whatsapp.message.delivered
- Triggered when your message is delivered
whatsapp.message.read
- Triggered when your message is read
whatsapp.message.failed
- Triggered when message delivery fails
Click the Add Webhook button to open the webhook configuration modal.
In the webhook configuration modal, you’ll need to provide:
Enter the HTTPS endpoint URL where you want to receive webhook notifications. This must be a valid, publicly accessible URL.
For security reasons, webhook URLs must use HTTPS. HTTP URLs are not supported.
Choose which events you want to receive notifications for. You can select one or multiple events:
Start with just the events you need. You can always add more events later by editing the webhook.
Click Create Webhook to save your configuration. Kapso will:
After creation, you’ll see your webhook in the list with:
The secret key is used to verify that webhook requests are coming from Kapso:
Keep your webhook secret key confidential. It’s used to generate signatures that verify webhook authenticity.
Before going live, test your webhook to ensure it’s working correctly:
Kapso will send a test payload to your webhook URL with:
test: true
flag to identify it as a testYour endpoint will receive HTTP POST requests with:
For message events (received/delivered/read/failed):
To ensure webhook security, verify the signature in every request:
X-Webhook-Signature
headerExample in Node.js:
To modify a webhook:
You can temporarily disable a webhook without deleting it:
The webhook will remain in your list but won’t receive any events.
To permanently remove a webhook:
Deleting a webhook is permanent and cannot be undone. Consider deactivating it instead if you might need it later.
Kapso implements reliable webhook delivery:
Use HTTPS endpoints
Always use secure HTTPS endpoints for webhooks. This ensures data is encrypted in transit.
Implement idempotency
Use the X-Idempotency-Key
header to ensure you process each event only once, even if it’s delivered multiple times.
Respond quickly
Return a 2xx status code as quickly as possible. Process webhook data asynchronously if needed.
Verify signatures
Always verify webhook signatures to ensure requests are authentic and haven’t been tampered with.
Handle errors gracefully
Implement proper error handling and logging to diagnose issues with webhook processing.
If your webhook isn’t receiving events:
If signature verification fails:
If you’re not receiving expected events:
Now that your webhooks are configured, you can:
For more advanced webhook usage and API integration, see our API documentation.
Learn how to configure webhooks to receive real-time WhatsApp events
This guide walks you through setting up webhooks for your WhatsApp configuration to receive real-time notifications when WhatsApp events occur.
Webhooks allow your application to receive HTTP notifications when specific WhatsApp events happen, enabling real-time integrations and automation workflows.
Before setting up webhooks, ensure you have:
Kapso supports five types of WhatsApp webhook events:
whatsapp.message.received
- Triggered when a new message arrives from a customer
whatsapp.conversation.created
- Triggered when a new conversation begins
whatsapp.message.delivered
- Triggered when your message is delivered
whatsapp.message.read
- Triggered when your message is read
whatsapp.message.failed
- Triggered when message delivery fails
Click the Add Webhook button to open the webhook configuration modal.
In the webhook configuration modal, you’ll need to provide:
Enter the HTTPS endpoint URL where you want to receive webhook notifications. This must be a valid, publicly accessible URL.
For security reasons, webhook URLs must use HTTPS. HTTP URLs are not supported.
Choose which events you want to receive notifications for. You can select one or multiple events:
Start with just the events you need. You can always add more events later by editing the webhook.
Click Create Webhook to save your configuration. Kapso will:
After creation, you’ll see your webhook in the list with:
The secret key is used to verify that webhook requests are coming from Kapso:
Keep your webhook secret key confidential. It’s used to generate signatures that verify webhook authenticity.
Before going live, test your webhook to ensure it’s working correctly:
Kapso will send a test payload to your webhook URL with:
test: true
flag to identify it as a testYour endpoint will receive HTTP POST requests with:
For message events (received/delivered/read/failed):
To ensure webhook security, verify the signature in every request:
X-Webhook-Signature
headerExample in Node.js:
To modify a webhook:
You can temporarily disable a webhook without deleting it:
The webhook will remain in your list but won’t receive any events.
To permanently remove a webhook:
Deleting a webhook is permanent and cannot be undone. Consider deactivating it instead if you might need it later.
Kapso implements reliable webhook delivery:
Use HTTPS endpoints
Always use secure HTTPS endpoints for webhooks. This ensures data is encrypted in transit.
Implement idempotency
Use the X-Idempotency-Key
header to ensure you process each event only once, even if it’s delivered multiple times.
Respond quickly
Return a 2xx status code as quickly as possible. Process webhook data asynchronously if needed.
Verify signatures
Always verify webhook signatures to ensure requests are authentic and haven’t been tampered with.
Handle errors gracefully
Implement proper error handling and logging to diagnose issues with webhook processing.
If your webhook isn’t receiving events:
If signature verification fails:
If you’re not receiving expected events:
Now that your webhooks are configured, you can:
For more advanced webhook usage and API integration, see our API documentation.