orderId and generates an invoice.prewarmup.order.failed event is sent.prewarmup.order.successprewarmup.order.failedprewarmup.order.success and prewarmup.order.failed for the same order if this happens.{
"event": "prewarmup.order.success",
"eventId": "6SSHBXWR3N4JEKGRQSG3KW3D76N6",
"data": {
"userId": "PWM7Y25RYZ450YNM8K8FX9GK5AHX",
"userEmail": "johndoe@company.com",
"orderId": "WR3N4JEW3D76N6KGRQSG36SSHBXK",
"serviceProvider": "GOOGLE",
"mailboxDetails": [
{
"domain": "example.com",
"subscriptionId": "KX9V77PVMFMZH4PTPF2Y99PKYAT2",
"preWarmedUpMailboxes": [
{
"mailboxId": "LY25R9GK5AHYZ450YPWMNM8K8FXX",
"email": "yasmeen.king@example.com",
"firstName": "Yasmeen",
"lastName": "King",
"profilePicture": "https://cdn.zapmail.ai/mailboxes/James-Carter-SelectAll-1756754834597.jpg",
"password": "$fFqf$PU7w$Lz9",
"appPassword": "rena ppos micx xycp",
"authenticatorSecret": "tukl dfds sloe oldf",
"isAdmin": true,
"warmingUpFrom": "2025-09-26T08:53:51.641Z",
"expiryDate": "2025-11-27T19:59:17.294Z"
},
{
"mailboxId": "FZHCRVTWEDMP2ZMMRSVZ63F493F1",
"email": "mike.miller@example.com",
"firstName": "Mike",
"lastName": "Miller",
"profilePicture": "https://cdn.zapmail.ai/mailboxes/James-Carter-SelectAll-1756754834597.jpg",
"password": "$fFqf$PU7w$Lz9",
"appPassword": "rena ppos micx xycp",
"authenticatorSecret": "tukl dfds sloe oldf",
"isAdmin": false,
"warmingUpFrom": "2025-09-26T09:22:10.123Z",
"expiryDate": "2025-11-27T19:59:17.294Z"
}
]
},
{
"domain": "example2.com",
"subscriptionId": "EAG9Q69XN0MBS2GF13K2HEYRTQGS",
"preWarmedUpMailboxes": [
{
"mailboxId": "ERG9Y480R2M5H7PXCX9XS0K6VY0S",
"email": "yvonne.lesch@example2.com",
"firstName": "Yvonne",
"lastName": "Lesch",
"profilePicture": "https://cdn.zapmail.ai/mailboxes/Olivia-Williams-default-1756417024026.jpg",
"password": "$fFqf$PU7w$Lz9",
"appPassword": "rena ppos micx xycp",
"authenticatorSecret": "tukl dfds sloe oldf",
"isAdmin": true,
"warmingUpFrom": "2025-09-26T15:19:40.220Z",
"expiryDate": "2025-11-27T19:59:17.294Z"
}
]
}
]
}
}| Field | Type | Description |
|---|---|---|
event | string | Always "prewarmup.order.success" |
eventId | string | Unique identifier for this event |
data.userId | string | User who placed the order |
data.userEmail | string | User's email address |
data.orderId | string | Unique order identifier |
data.serviceProvider | string | "GOOGLE" or "MICROSOFT" |
data.mailboxDetails | array | Array of domain allocations |
mailboxDetails:| Field | Type | Description |
|---|---|---|
domain | string | Domain name (e.g., example.com) |
subscriptionId | string | Subscription ID for this domain |
preWarmedUpMailboxes | array | Array of mailbox accounts for this domain |
preWarmedUpMailboxes:| Field | Type | Description |
|---|---|---|
mailboxId | string | Unique mailbox identifier |
email | string | Full email address |
firstName | string | First name |
lastName | string | Last name |
profilePicture | string | Profile picture URL |
password | string | Account password |
appPassword | string | App-specific password (for third-party integrations) |
authenticatorSecret | string | 2FA authenticator secret (for setting up 2FA) |
isAdmin | boolean | Whether account has admin privileges |
warmingUpFrom | ISO 8601 | When the account started warming up |
expiryDate | ISO 8601 | When the subscription expires (renewal date) |
domain-a.com → Success (accounts assigned)domain-b.com → Failed (insufficient wallet)prewarmup.order.success (for domain-a) and prewarmup.order.failed (for domain-b) for the same order.{
"event": "prewarmup.order.failed",
"eventId": "KX6VYNA7W2M616JPFVT9JZX14B4N",
"data": {
"userId": "PWM7Y25RYZ450YNM8K8FX9GK5AHX",
"userEmail": "johndoe@company.com",
"orderId": "K57P9Y7T95M74ZPBRP9A415383AQ",
"serviceProvider": "GOOGLE",
"failedOrders": [
{
"domain": "yourcompanynow.info",
"reason": "Pre-warmed mailboxes not available"
},
{
"domain": "example2.com",
"reason": "Insufficient wallet balance"
}
]
}
}| Field | Type | Description |
|---|---|---|
event | string | Always "prewarmup.order.failed" |
eventId | string | Unique identifier for this event |
data.userId | string | User who placed the order |
data.userEmail | string | User's email address |
data.orderId | string | Order identifier |
data.serviceProvider | string | "GOOGLE" or "MICROSOFT" |
data.failedOrders | array | Array of failures |
failedOrders:| Field | Type | Description |
|---|---|---|
domain | string | Domain that failed |
reason | string | Reason for failure |
"Pre-warmed mailboxes not available" — Pool is empty for this domain/provider"Insufficient wallet balance" — Not enough credits to cover costexpiryDate, the mailboxes will receive subscription.renewal.success or subscription.renewal.failed