Skip to main content
POST
Send Session Messages
Session messages are free-form messages with no pre-approval required. You can send text, attachments, location pins, and interactive messages (list menus, reply buttons, WhatsApp Flows). The only constraint is WhatsApp’s 24-hour eligibility window.

The 24-hour rule

You can only send a session message if the recipient has messaged your business within the last 24 hours. If the window has closed, use Send template message to re-engage them instead.

Endpoint

Rate limit: 200 requests/second. Exceeding this returns 429 Too Many Requests.

Request body

Response

The id uniquely identifies the message. Use it to correlate delivery status webhook events.

callbackData

Set callbackData to any JSON value up to 1024 bytes. Connectly echoes it back in every webhook event tied to this message:
  • Delivery status events: sent, delivered, read, delivery_failed
  • Inbound replies that reference this message: quoted replies, button & list replies, reactions
Plain-text replies that don’t quote the original message do not include callbackData. Exceeding 1024 bytes returns a 400 error.

Examples

Use listMessage to present a scrollable menu. See WhatsApp interactive list docs for full spec.
You can also use a media header instead of text. Both list and reply-button messages share the same header structure:
For a document header with a filename:
Use replyButtonMessage for up to three quick-reply buttons. See WhatsApp reply button docs for full spec.
Send a published WhatsApp Flow with flowMessage. The body comes from the top-level text. This example uses navigate mode; for data_exchange, the full field reference, and endpoint setup, see Send WhatsApp Flows.
Include the sender object when your business has more than one WhatsApp number.

Targeting by BSUID

To target a customer identified by a Business-Scoped User ID, set recipient.userId to the bare BSUID (e.g. US.13491208655302741918). See Business-scoped user IDs (BSUID) for full details.
Sending to phone-less (BSUID-only) customers is not yet available and currently returns a 400 error.

Error responses

See Error codes for the full list of error types and codes, including ERROR_CODE_MESSAGE_OUTSIDE_OF_ELIGIBILITY_WINDOW.