Webhook Event Field Details
This document provides detailed information about the final push fields for each Event type.
1. request (Request Event)
Event Type: request
Description: Request event, may contain multiple emailIds, will generate one message for each emailId
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "request" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "request" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Receipt description | ✅ |
| RecipientEmail | - | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | - | ❌ |
| ExplorerVer | - | ❌ |
| OSName | - | ❌ |
| OSVer | - | ❌ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "request",
"ReceiptTime": 1234567890000,
"ReceiptResult": "request",
"ReceiptCode": "request",
"ReceiptDesc": "Message content",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com"
}
]
}
2. deliver (Delivery Event)
Event Type: deliver
Description: Email successfully delivered event
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "deliver" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "deliver" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Receipt description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | - | ❌ |
| ExplorerVer | - | ❌ |
| OSName | - | ❌ |
| OSVer | - | ❌ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "deliver",
"ReceiptTime": 1234567890000,
"ReceiptResult": "deliver",
"ReceiptCode": "0",
"ReceiptDesc": "Message content",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com"
}
]
}
3. open (Open Event)
Event Type: open
Description: Email opened event, includes browser and operating system information
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "open" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "open" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Receipt description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | Browser name | ✅ |
| ExplorerVer | Browser version | ✅ |
| OSName | Operating system name | ✅ |
| OSVer | Operating system version | ✅ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "open",
"ReceiptTime": 1234567890000,
"ReceiptResult": "open",
"ReceiptCode": "0",
"ReceiptDesc": "Message content",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com",
"ExplorerName": "Chrome",
"ExplorerVer": "100.0",
"OSName": "Windows",
"OSVer": "10"
}
]
}
4. click (Click Event)
Event Type: click
Description: Link clicked event in email, includes the clicked URL
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "click" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "click" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Receipt description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | Browser name | ✅ |
| ExplorerVer | Browser version | ✅ |
| OSName | Operating system name | ✅ |
| OSVer | Operating system version | ✅ |
| ClickedURL | Clicked link URL | ✅ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "click",
"ReceiptTime": 1234567890000,
"ReceiptResult": "click",
"ReceiptCode": "0",
"ReceiptDesc": "Message content",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com",
"ExplorerName": "Chrome",
"ExplorerVer": "100.0",
"OSName": "Windows",
"OSVer": "10",
"ClickedURL": "https://example.com/link"
}
]
}
5. unsubscribe (Unsubscribe Event)
Event Type: unsubscribe
Description: User unsubscribe event
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "unsubscribe" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "unsubscribe" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Receipt description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | Browser name | ✅ |
| ExplorerVer | Browser version | ✅ |
| OSName | Operating system name | ✅ |
| OSVer | Operating system version | ✅ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "unsubscribe",
"ReceiptTime": 1234567890000,
"ReceiptResult": "unsubscribe",
"ReceiptCode": "0",
"ReceiptDesc": "Message content",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com",
"ExplorerName": "Chrome",
"ExplorerVer": "100.0",
"OSName": "Windows",
"OSVer": "10"
}
]
}
6. report_spam (Spam Report Event)
Event Type: report_spam
Description: Email reported as spam event
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "report_spam" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "report_spam" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Receipt description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | - | ❌ |
| ExplorerVer | - | ❌ |
| OSName | - | ❌ |
| OSVer | - | ❌ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "report_spam",
"ReceiptTime": 1234567890000,
"ReceiptResult": "report_spam",
"ReceiptCode": "0",
"ReceiptDesc": "Message content",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com"
}
]
}
7. bounce (Bounce Event)
Event Type: bounce
Description: Bounce event, including emails that could not be delivered, usually due to a permanent issue with the recipient's mailbox or an invalid address.
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "bounce" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, format: "bounce", e.g.: "bounce" | ✅ |
| ReceiptCode | Receipt status code (may include sub-status code) | ✅ |
| ReceiptDesc | Bounce sub-category description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | - | ❌ |
| ExplorerVer | - | ❌ |
| OSName | - | ❌ |
| OSVer | - | ❌ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "bounce",
"ReceiptTime": 1778222019000,
"ReceiptResult": "bounce",
"ReceiptCode": "us_bounce_101",
"ReceiptDesc": "Recipient's address does not exist or has moved",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com"
}
]
}
8. temporary_issue (Temporary Issue Event)
Event Type: temporary_issue
Description: Soft bounce event, including emails that failed due to transient reasons, such as rate-limiting or server-side congestion.
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "soft_bounce" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, format: "softbounce{SubStat}", e.g.: "soft_bounce_409" | ✅ |
| ReceiptCode | Receipt status code (may include sub-status code) | ✅ |
| ReceiptDesc | Soft bounce sub-category description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | - | ❌ |
| ExplorerVer | - | ❌ |
| OSName | - | ❌ |
| OSVer | - | ❌ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "soft_bounce",
"ReceiptTime": 1234567890000,
"ReceiptResult": "soft_bounce_409",
"ReceiptCode": "409",
"ReceiptDesc": "Soft bounce sub-category description",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com"
}
]
}
9. blocked (Blocked Event)
Event Type: blocked
Description: Blocked event, including emails that were rejected due to domain reputation, security policies, or ISP restrictions.
Final Push Fields
| Field | Description | Pushed |
|---|---|---|
| SessionNo | Batch ID | ✅ |
| MsgId | Email unique ID | ✅ |
| Event | Event type, fixed value: "blocked" | ✅ |
| ReceiptTime | Event timestamp | ✅ |
| ReceiptResult | Receipt status, fixed value: "blocked" | ✅ |
| ReceiptCode | Receipt status code | ✅ |
| ReceiptDesc | Block reason description | ✅ |
| RecipientEmail | Recipient email address | ✅ |
| Domain | Sender domain | ✅ |
| ExplorerName | - | ❌ |
| ExplorerVer | - | ❌ |
| OSName | - | ❌ |
| OSVer | - | ❌ |
| ClickedURL | - | ❌ |
Final Push JSON Example
{
"MsgType": 2,
"Data": [
{
"SessionNo": "task_123",
"MsgId": "email_id_1",
"Event": "blocked",
"ReceiptTime": 1234567890000,
"ReceiptResult": "blocked",
"ReceiptCode": "us_block_105",
"ReceiptDesc": "The recipient address is on the suppression list",
"RecipientEmail": "user@example.com",
"Domain": "sender.domain.com"
}
]
}
💡 Field Push Rules Summary
| Field | request | deliver | open | click | unsubscribe | report_spam | bounce | temporary_issue | blocked |
|---|---|---|---|---|---|---|---|---|---|
| SessionNo | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MsgId | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Event | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ReceiptTime | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ReceiptResult | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ReceiptCode | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ReceiptDesc | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RecipientEmail | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Domain | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ExplorerName | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| ExplorerVer | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| OSName | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| OSVer | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| ClickedURL | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Legend:
- ✅ Indicates the field will be pushed (field will appear in JSON)
- ❌ Indicates the field will not be pushed (field value is empty string, will not appear in JSON)
💡 Push Mechanism
Push Configuration
- Push Method: HTTP POST
- Content-Type: application/json
- Retry Mechanism: Each callback address will retry up to 3 times
- Batch Push: Supports batch push of multiple messages
- Timeout Setting: Configurable request timeout (default 30 seconds)
Response Format
The client needs to return a JSON response in the following format:
{
"code": 0,
"message": "success"
}
code = 0indicates successcode != 0indicates failure, will trigger retry mechanism