Create sender
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Create a sender. Provide phoneNumber for an SMS/WhatsApp sender, or emailAddress (with a verified email domain) for an email sender — at least one is required.
Phone number in E.164 format. Required for phone-based channels (SMS, WhatsApp). Omit for an email-only sender.
HTTPS URL for webhook events.
Events to subscribe to.
Type of event that triggers the webhook.
Message lifecycle events:
message.queued: Message created and queued for sending.data.status=queuedmessage.sent: Message accepted by the provider.data.status=sentmessage.delivered: Message delivered to recipient.data.status=deliveredmessage.read: Message was read by the recipient (WhatsApp only).data.status=readmessage.failed: Message failed to send.data.status=failed
Inbound events:
message.inbound: New message received from a contact. Reactions are delivered asmessage.inboundwithmessageType='reaction'. When the contact replied to (quoted) an earlier message,data.contentcarries the reply context:replyToMessageId,replyToProviderMessageId,replyToFrom,replyToText, andreplyToMessageType.data.providerTimestampis the provider's original receive time in Unix milliseconds (the moment the channel received the message from the contact — WhatsApp, Telegram, Instagram, Messenger;nullfor SMS and email). Compare it against the top-leveltimestamp(when Zavu dispatched the webhook) to detect and ignore delayed deliveries.message.status: A contact posted a WhatsApp status/story (currently WhatsApp Alternative only). It is NOT a conversation message and never enters the inbox — it is delivered only if you subscribe tomessage.status.datacarriesfrom(the author in E.164),messageType(text,image,video,audio),text(caption/text when present),mimetype(for media stories), andproviderTimestamp. Media bytes are not included.message.unsupported: Received a message type that is not supported
Broadcast events:
broadcast.status_changed: Broadcast status changed (pending_review, approved, rejected, sending, completed, cancelled)
Other events:
conversation.new: New conversation started with a contacttemplate.status_changed: WhatsApp template approval status changed
Partner events:
invitation.status_changed: A partner invitation status changed (pending, in_progress, completed, cancelled)
Custom domain events:
domain.verified: A custom email domain passed verification (DKIM, and SPF/DMARC/MAIL FROM if enhanced records are enabled)domain.failed: A custom email domain failed verification or is partially verified
message.queued, message.sent, message.delivered, message.read, message.failed, message.inbound, message.status, message.unsupported, broadcast.status_changed, conversation.new, template.status_changed, invitation.status_changed, domain.verified, domain.failed From-address for the email channel (e.g. noreply@yourdomain.com). The address's domain must be a verified email domain in your project. Setting this attaches the email channel to the sender.
"noreply@yourdomain.com"
ID of the verified email domain to attach. Optional — resolved from emailAddress's domain when omitted.
Display name shown in the recipient's inbox for the email channel.
100Enable inbound email receiving on this sender. Requires a verified MX record on the domain; ignored otherwise.
Response
Sender created.
"sender_12345"
"Primary sender"
Phone number in E.164 format.
"+13125551212"
Whether this sender is the project's default.
Webhook configuration for the sender.
WhatsApp Business Account information. Only present if a WABA is connected.
From-address for the email channel, if configured.
"noreply@yourdomain.com"
Whether inbound email receiving is enabled for this sender.
Whether catch-all receiving is enabled. When true (and emailReceivingEnabled is true), this sender receives email addressed to any local part at its domain, not just its own address. The original recipient is delivered in the message.inbound webhook's data.to.
