What are webhooks?
Webhooks notify your application when events occur. You can use them to:- Send automated replies when customers message you
- Update conversation status in your CRM
- Track message delivery and read receipts
- Trigger alerts when conversations go inactive
- Store events in your database for analytics
Steps to receive webhooks
- Create an endpoint to receive requests
- Register your webhook
- Verify signatures
- Test your endpoint
1. Create an endpoint
Create a route in your application that accepts POST requests.200 OK within 10 seconds.
2. Register your webhook
Kapso supports two types of webhooks:Project webhooks
Project-wide events like WhatsApp connection lifecycle and workflow execution. No message or conversation events here. Use a WhatsApp webhook per phone number. Setup:- Open sidebar → Webhooks
- Go to Project webhooks tab
- Click Add Webhook
- Enter your HTTPS endpoint URL
- Copy the auto-generated secret key
- Subscribe to events
WhatsApp webhooks
Message and conversation events for specific WhatsApp numbers. Two webhook kinds available:Kapso webhooks (default)
Event-based webhooks with Kapso payload format. Subscribe to specific events, use buffering, and receive structured payloads.Meta webhooks
Receive the exact payload Meta sends. No event filtering, no buffering - just raw Meta webhook forwarding with an idempotency key for deduplication.X-Idempotency-Key header (SHA256 hash of the payload) for deduplication. Only one meta webhook is allowed per phone number.
3. Verify signatures
Always verify webhook signatures to ensure requests come from Kapso.4. Test your endpoint
Use ngrok or Cloudflare tunnel for local testing:Webhook headers
Kapso webhooks
Meta webhooks
FAQ
What is the retry schedule?
What is the retry schedule?
If Kapso doesn’t receive a 200 response, webhooks are retried automatically:
- 10 seconds
- 40 seconds
- 90 seconds
How do I handle duplicate events?
How do I handle duplicate events?
Use the
X-Idempotency-Key header to track processed events:What about v1 webhooks?
What about v1 webhooks?
New webhooks default to v2. Existing v1 webhooks continue to work.See Legacy webhooks for migration guide.
Next steps
- Event types - See all available events and payloads
- Security - Detailed signature verification guide
- Advanced - Message buffering, ordering, and retries

