Skip to main content
Version: Latest

Sending Messages — Overview

All message-sending endpoints follow the same base structure, regardless of the channel. Understanding this structure makes it easier to work with multiple channels at the same time.

Base structure

{
"from": "<channel-uuid-or-channel-specific-id>",
"to": "<recipient-identifier>",
"content": { ... }
}
FieldTypeRequiredDescription
fromstringSender Application Channel: UUID (always works), or the channel-specific alternate when supported — see from field. Web Chatt: UUID only.
tostringRecipient identifier (varies by channel)
contentobjectThe message content (see types below)

from field (sender channel)

For WhatsApp, Instagram, Messenger, Telegram, and SMS, from selects which Application Channel sends the message. You may pass:

  1. Application channel UUID — always accepted (shown in Hub as Application Channel ID).
  2. Alternate identifier — must match the channel configuration for your Application (Hub shows copyable values on the channel details screen):
ChannelAlternate from
TelegramBot username (botUsername), with or without a leading @
WhatsAppBusiness phone number (phoneNumber), with or without a leading +
InstagramInstagram username (username), with or without a leading @
MessengerFacebook Page ID (pageId), or configured account id when used
SMSSender phone number (phoneNumber), with or without a leading +

Web Chatt accepts only the application channel UUID for from (not the widget public key). See Web Chatt.

Web Chatt

Web Chatt replies use the same from, to, and content shape, but the dedicated send operation for Web Chatt is not included in the OpenAPI pages bundled here. Use from as your Web Chatt application channel UUID and to as the visitor id from webhooks. Embed and Hub setup are covered in Web Chatt.

Endpoints by channel

ChannelEndpoint
WhatsAppPOST /v1/communication/whatsapp/message
InstagramPOST /v1/communication/instagram/message
MessengerPOST /v1/communication/messenger/message
TelegramPOST /v1/communication/telegram/message
SMSPOST /v1/communication/sms/message
Web ChattPOST /v1/communication/web-chatt2me/message

to field format by channel

The format of to varies by channel. See to field formats in Concepts & Architecture for the complete reference.

Response status

Every send returns a messageId and a status:

{
"messageId": "9307b9ab-5fab-4151-b7c2-b00c2a8a6e8e",
"status": "sent"
}
StatusChannelsMeaning
sentTelegram, Instagram, SMSSuccessfully delivered to the channel server
enqueuedWhatsApp, MessengerReceived and in the send queue (async processing)
errorAllFailed — check errorMessage and errorCode
Why does WhatsApp use enqueued?

The WhatsApp Business API processes messages asynchronously. enqueued means the message was accepted — the actual delivery confirmation arrives via webhook with a MessageStatus event.

Content types

The content field determines the type of message sent. The available types are:

TypeMain fieldDescription
TexttextSimple text message
ImageimageUrlImage with optional caption
VideovideoUrlVideo with optional caption
AudioaudioUrlAudio file
DocumentdocumentUrlFile (PDF, DOCX, etc.)
StickerstickerUrlSticker
LocationlocationGeographic coordinates
Contactcontact / contactsOne or multiple vCard contacts
InteractiveinteractiveButtons, list, CTA URL, location request
TemplatetemplateMeta-approved template (WhatsApp)
ReactionreactionReact to an existing message
Mark as seenmarkSeenMark message as read
Payment RequestpaymentRequestCharge via PIX, Boleto, or Link
Order StatusorderStatusOrder status update

See availability of each type per channel in Content Types.

Next steps