Webhooks let your application receive real-time notifications when events occur in your BuzzBip workspace. Instead of polling the API, BuzzBip sends an HTTP POST request to your configured endpoint with a JSON payload describing the event.
How webhooks work
- An event occurs in BuzzBip (e.g. a contact sends a message)
- BuzzBip constructs a JSON payload and signs it with your webhook secret
- BuzzBip sends an HTTP POST to your endpoint URL
- Your server verifies the signature and processes the event
- Your server responds with
200 OKwithin 10 seconds
Configure webhooks
- Sign in at app.buzzbip.com
- Go to Settings → Developer → Webhooks
- Click Add Webhook and enter your HTTPS endpoint URL
- Select the events you want to subscribe to
- Save and copy the signing secret for payload verification
Supported events
Payload envelope
Every webhook delivery uses the same top-level structure. The data object varies by event type.
{
"id": "evt_7f3a9b2c",
"type": "message.received",
"createdAt": "2026-06-01T14:32:00Z",
"data": { }
}Verify signatures
Each webhook request includes an X-BuzzBip-Signature header containing an HMAC-SHA256 hex digest of the raw request body, computed with your signing secret.
const crypto = require('crypto');
function verifySignature(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody, 'utf8')
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}Retries and idempotency
BuzzBip retries failed webhook deliveries up to 5 times with exponential backoff when your endpoint returns a non-2xx status or times out. Use the event id to deduplicate deliveries.
Your endpoint must use HTTPS with a valid TLS certificate. HTTP URLs are not accepted.
