This article is a complete reference of all webhook event types fired by Rackwave — across the portal (subscription lifecycle events), MigoSMTP (email delivery events), and Telnxo (SMS, Voice, and WhatsApp events). Use the event type string to route payloads correctly in your webhook handler.
Rackwave Portal — Subscription Lifecycle Events
These events are fired by the Rackwave billing portal and relate to subscription and invoice state changes.
| Event Type |
When It Fires |
Key Data Fields |
| trial_activated |
Free trial started for any platform |
customer_id, platform_id, expires_at |
| service_activated |
Paid subscription becomes active (first activation or renewal) |
customer_id, platform_id, plan_name, expires_at |
| service_suspended |
Subscription suspended (billing overdue or admin action) |
customer_id, platform_id, suspension_reason |
| service_reactivated |
Suspended subscription restored after payment |
customer_id, platform_id, plan_name |
| service_cancelled |
Subscription permanently cancelled |
customer_id, platform_id, cancelled_at |
| invoice_created |
New invoice generated for any subscription |
invoice_id, invoice_number, customer_id, total, due_date |
| invoice_paid |
Invoice marked as paid |
invoice_id, invoice_number, customer_id, amount_paid, paid_at |
| invoice_overdue |
Invoice passes its due date unpaid |
invoice_id, invoice_number, customer_id, total, overdue_since |
MigoSMTP — Email Delivery Events
| Event Type |
When It Fires |
Key Data Fields |
| email.queued |
Email accepted by MigoSMTP and queued for delivery |
message_id, to, from, subject, queued_at |
| email.sent |
Email dispatched from MigoSMTP servers to the recipient's mail server |
message_id, to, from, subject, sent_at |
| email.delivered |
Recipient's mail server confirmed delivery acceptance |
message_id, to, from, subject, delivered_at |
| email.opened |
Recipient opened the email (tracking pixel fired) |
message_id, to, opened_at, ip_address, user_agent |
| email.clicked |
Recipient clicked a tracked link in the email |
message_id, to, clicked_at, link_url, ip_address |
| email.bounced |
Email permanently rejected (hard bounce) |
message_id, to, bounce_type, bounce_code, bounce_reason |
| email.deferred |
Email temporarily rejected; queued for retry |
message_id, to, defer_reason, next_retry_at, attempt_number |
| email.complained |
Recipient marked the email as spam (FBL complaint) |
message_id, to, complained_at, feedback_source |
| email.unsubscribed |
Recipient clicked the unsubscribe link |
message_id, to, unsubscribed_at, list_id |
Telnxo — SMS Events
| Event Type |
When It Fires |
Key Data Fields |
| sms.queued |
SMS accepted and queued for dispatch |
message_id, to, from, queued_at |
| sms.sent |
SMS dispatched to the carrier network |
message_id, to, from, sent_at, parts |
| sms.delivered |
Carrier confirmed delivery to the handset (DLR received) |
message_id, to, delivered_at, dlr_status |
| sms.failed |
Delivery permanently failed |
message_id, to, failed_at, error_code, error_description |
| sms.inbound |
Inbound SMS received on your virtual number |
message_id, from, to, body, received_at |
Telnxo — Voice Events
| Event Type |
When It Fires |
Key Data Fields |
| voice.initiated |
Outbound call request accepted and dialling |
call_id, to, from, initiated_at |
| voice.answered |
Call was answered by the recipient |
call_id, to, answered_at |
| voice.completed |
Call ended normally |
call_id, to, duration_seconds, ended_at, recording_url |
| voice.failed |
Call could not be connected |
call_id, to, failed_at, error_code, error_description |
| voice.no_answer |
Call rang but was not answered |
call_id, to, ring_duration_seconds, ended_at |
Telnxo — WhatsApp Events
| Event Type |
When It Fires |
Key Data Fields |
| whatsapp.sent |
Message sent to WhatsApp servers |
message_id, to, template_name, sent_at |
| whatsapp.delivered |
Message delivered to recipient's device |
message_id, to, delivered_at |
| whatsapp.read |
Recipient opened and read the message |
message_id, to, read_at |
| whatsapp.failed |
Message delivery failed |
message_id, to, failed_at, error_code, error_title |
| whatsapp.inbound |
User sent a message to your WhatsApp number |
message_id, from, type, body, received_at |
| whatsapp.button_reply |
User tapped a reply button in an interactive message |
message_id, from, button_id, button_title, replied_at |
Next Steps