Passthrough send message

Content-Type: application/json. Body is forwarded as-is to WhatsApp Cloud API. Success response is raw Cloud API JSON (not wrapped in V3Response). For legacy form send use POST /bizgate/app/{appId}/messaging/send instead. One endpoint sends every message type — the type is chosen with the type field and the sibling object it names. Every type below has its own named cURL in the code-samples panel, and the matching payload under Examples on the request body: | # | Example | type | Notes |
|---|---------|--------|-------|
| 1 | Text | text | context replies to an earlier message; preview_url renders link previews |
| 2 | Image | image | id (uploaded) or link (hosted), optional caption |
| 3 | Video | video | id or link; .3gp/.mp4, 16 MB max |
| 4 | Document | document | filename sets the name shown in chat |
| 5 | Audio | audio | id or link; no caption |
| 6 | Sticker | sticker | WebP, uploaded beforehand |
| 7 | Contacts | contacts | array of contact cards |
| 8 | Interactive buttons | interactive | interactive.type=button, up to 3 reply buttons |
| 9 | Reaction | reaction | empty emoji removes the reaction |
| 10 | Flow | interactive | interactive.type=flow |
| 11 | Template | template | components carry the body parameters |
| 12 | PIX template (Brazil) | template | order_details button with pix_dynamic_code |
| 13 | Boleto (Brazil) | interactive | interactive.type=order_details with boleto |
| 14 | Session message | text | free-form reply inside the 24-hour window | Session vs template messages. A session message is any non-template message sent while the customer service window is open — the window opens when the user messages the business and closes 24 hours after their most recent message. Examples 1-10 and 14 are session messages; 11-13 are template messages, the only kind that may be sent once the window has closed. The request shape is the same either way, so the difference is not visible in the payload: the window state at send time decides whether WhatsApp accepts it, and a send outside the window is rejected upstream and relayed back as a Meta error. Session messages (1–10) need an open 24-hour customer service window; templates (11, 12) do not. Media ids come from the media upload API; link must be a publicly reachable URL.

Request parameters

Path parameters

KeyDescriptionValuesData TypeRequired/Optional
appIdIdentifier of the WhatsApp app the call acts on.6f414190-d45c-4671-bca1-fb6c3018cb13StringRequired

Body

KeyDescriptionValuesData TypeRequired/Optional
messaging_productAlways "whatsapp".whatsapp—Required
recipient_typeAlways "individual"; group recipients are not supported here.individual—Optional
toE.164 without +12XXXXXXX92—Required
typetext, template, image, …template—Optional
templateRequired when type=template——Optional

Sample success response (200)

{
  "messages": [
    {
      "id": "GUPSHUP_MESSAGE_ID"
    }
  ],
  "messaging_product": "whatsapp",
  "contacts": [
    {
      "input": "DESTINATION_PHONE_NO",
      "wa_id": "DESTINATION_PHONE_NO"
    }
  ]
}
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Identifier of the WhatsApp app the call acts on.

Body Params

WhatsApp Cloud API passthrough message (application/json).

string
required

Always "whatsapp".

string

Always "individual"; group recipients are not supported here.

string
required

E.164 without +

string

text, template, image, …

template
object

Required when type=template

Responses

Language
Credentials
Bearer
Universal Token (UT)
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json