Creating a Webhook
Create a webhook for your application to start receiving WhatsApp events. Via Dashboard- Navigate to your application’s Webhooks page
- Click “Create Webhook”
- Enter your webhook URL
- Select WhatsApp-related events
- (Optional) Add custom headers for authentication
- Save the webhook
Create Webhook
WhatsApp Events
| Event | Description |
|---|---|
messages.whatsapp.received | Inbound WhatsApp message received |
messages.whatsapp.sent | Message sent to WhatsApp servers |
messages.whatsapp.delivered | Message delivered to user’s device |
messages.whatsapp.read | Message read by the user |
messages.whatsapp.failed | Message delivery failed |
Event Payloads
Message Received
messages.whatsapp.received
Message Sent
messages.whatsapp.sent
Message Delivered
messages.whatsapp.delivered
Message Read
messages.whatsapp.read
Message Failed
messages.whatsapp.failed
error object uses the same format as API error responses, making it easy to handle errors consistently across your application. The error.code maps Meta’s error codes to Chirp’s standardized error codes, and the error.provider field preserves the original provider error details for debugging.
Response Requirements
Your webhook endpoint should:- Respond within 5 seconds - Return
200 OKquickly - Process asynchronously - Don’t block on long-running tasks
- Handle duplicates - Events may be delivered multiple times
Webhook Handler
Security Best Practices
Validate Request Origin
Use custom headers to verify requests are from Chirp:Validate Webhook
Use HTTPS
Always use HTTPS URLs for webhook endpoints. HTTP is not supported.Retry Behavior
If your webhook fails (non-200 status or timeout):- Chirp retries delivery with exponential backoff
- Maximum 5 retry attempts
- Failed webhooks are logged in your dashboard
Testing Webhooks
Use the Playground- Configure a webhook on your test application
- Send test messages using the Playground
- Your webhook receives events in real-time
- View webhook delivery logs in the dashboard
- ngrok - Create public URLs for local servers
- webhook.site - Inspect webhook payloads
- localtunnel - Simple local tunneling
Managing Webhooks
List Webhooks
Update Webhook
Delete Webhook