Text messages

You can only send a text message up until 24 hours after receiving a message from the user. If you have not received a message from the user within this time, you will need to start a new conversation by sending a Template message.

To send text messages, specify text in the type field. A text message can be a maximum of 4096 characters long. It's recommended to keep the message length under 1600 characters for optimal rendering on most devices.

How to send a text message

POST https://waba-v2.360dialog.io/messages

To send a message, use the request URL and the following body parameters.

Request example

{

"messaging_product": "whatsapp",

"recipient_type": "individual",

"to": "PHONE_NUMBER",

"type": "text",

"text": {

"body": "Hello, dear customer!"

}

}

Request Body

Name
Type
Description

recipient_type

string

individual

to

string

wa_idof the contact you want to message

type

string

text

text

object

contains body field

messaging_product

string

whatsapp

context

object

Required if replying to any message in the conversation.

An object containing the ID of a previous message you are replying to. For example:

{"message_id":"MESSAGE_ID"}

A successful response includes a messages object with an ID for the newly created message.

{
    "messaging_product": "whatsapp",
    "contacts": [
        {
            "input": "16505076520",
            "wa_id": "16505076520"
        }
    ],
    "messages": [
        {
            "id": "wamid.HBgLMTY1MDUwNzY1MjAVAgARGBI5QTNDQTVCM0Q0Q0Q2RTY3RTcA"
        }
    ]
}

Formatting in Text Messages

WhatsApp allows some formatting in messages. To format all or part of a message, use these formatting symbols:

Formatting
Symbol
Example

Bold

Asterisk (*)

Your total is *$10.50*.

Italics

Underscore (_)

Welcome to _WhatsApp_!

Strike-through

Tilde (~)

This is ~better~ best!

Code

Three backticks (```)

```print 'Hello World';```

How to send URLs in Text Messages

By default, the mobile WhatsApp application recognizes URLs and makes them clickable. To include a URL preview, include "preview_url": true and make sure the URL begins with http:// or https://. A hostname is required; IP addresses are not matched.

When sending a preview URL with Cloud API hosting, the preview-url should be inside the text object.

Example:

    "text":  {// the text object
        "preview_url": true,
        "body": You have to check out this amazing messaging service https://www.whatsapp.com/"
    }

The majority of the time when you send a URL, whether with a preview or not, the receiver of the message will see a URL that they can click on.

URL previews are only rendered after one of the following has happened:

  1. The business has sent a message template to the user.

  2. The user initiates a conversation with a "click to chat" link.

  3. The user adds the business phone number to their address book and initiates a conversation.

If the end user did not initiate the conversation with you - you must use a Template message instead.

Replies

You can send any message as a reply to a previous message in a conversation by including the previous message's ID in the context object. The recipient will receive the new message along with a contextual bubble that displays the previous message's content.

Recipients will not see a contextual bubble if:

  • replying with a template message ("type":"template")

  • replying with an image, video, PTT, or audio, and the recipient is on KaiOS

Sample request:

POST https://waba-v2.360dialog.io/messages
{
   "messaging_product": "whatsapp",
   "context": {
     "message_id": "MESSAGE_ID"
   },
   "to": "<phone number> or <wa_id>",
   "type": "text",
   "text": {
     "preview_url": False,
     "body": "your-text-message-content"
   }
 }

A successful response includes an object with an identifier prefixed with wamid. Use the ID listed after wamid to track your message status.

Note: if the previous message is more than 30 days old or doesn't correspond to any message in the conversation, the message will be sent normally instead of as a reply.

Sample response:

{
  "messaging_product": "whatsapp",
  "contacts": [{
    "input": "PHONE_NUMBER",
    "wa_id": "WHATSAPP_ID",
  }]
  "messages": [{
    "id": "wamid.ID",
  }]
}

Last updated

Was this helpful?