Overview
Webhooks allow you to receive real-time HTTP notifications when email events occur in your account. When an event happens (such as an email being delivered, bounced, or opened), we’ll send a POST request to your configured endpoint with details about the event.Setting Up Webhooks
1
Navigate to Webhooks
Log in to the JetEmail Dashboard and go to Dashboard → Webhooks.
2
Create a Webhook
Click Create Webhook and configure:
- Name: A friendly name for your webhook
- URL: The endpoint where you want to receive events
- Events: Select which event types you want to receive
3
Copy Your Secret
After creating the webhook, copy your webhook secret. You’ll use this to verify webhook signatures.
Request Format
When an event occurs, we send a POST request to your webhook URL with the following headers:| Header | Description |
|---|---|
Content-Type | application/json |
X-Webhook-ID | Unique identifier for this event |
X-Webhook-Timestamp | Unix timestamp when the event was sent |
X-Webhook-Signature | HMAC-SHA256 signature for verification |
Responding to Webhooks
Your endpoint should respond with an HTTP status code to indicate success or failure:| Status Code | Behavior |
|---|---|
2xx | Success - the event is acknowledged |
429 | Rate limited - we’ll retry with backoff |
5xx | Server error - we’ll retry with backoff |
4xx (except 429) | Permanent failure - event is discarded |
Retry Strategy
If delivery fails, we’ll retry with exponential backoff:| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 30 seconds |
| 3 | 2 minutes |
| 4 | 10 minutes |
| 5 | 1 hour |
| 6 | 4 hours |
| 7+ | Event moved to dead letter queue |
Filtering Events
You can optionally filter which events trigger your webhook:- Outbound events: Filter by username to only receive events for specific SMTP users
- Inbound events: Filter by domain to only receive events for specific domains