> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hookmyapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send a WhatsApp message

> Send a WhatsApp customer-channel message.

Send a WhatsApp message through one customer's connected channel.

Use the HookMyApp channel ID (`ch_...`) when you fetch the channel token. Use the WhatsApp phone number ID in the gateway path.

## Authentication

Use the returned `hmat_` channel token to send the message. Do not use an `hmok_` API key for the send call.

```bash theme={null}
Authorization: Bearer hmat_...
```

## Path parameters

<ParamField path="PHONE_NUMBER_ID" type="string" required>
  The WhatsApp phone number ID for the customer channel, from `WHATSAPP_PHONE_NUMBER_ID`.
</ParamField>

## Request body

<ParamField body="messaging_product" type="string" required>
  Always `whatsapp`.
</ParamField>

<ParamField body="to" type="string" required>
  Recipient phone number in international format.
</ParamField>

<ParamField body="type" type="string" required>
  Message type, such as `text`, `image`, `video`, `audio`, `document`, `sticker`, `location`, `contacts`, `interactive`, `template`, or `reaction`.
</ParamField>

## Example

```bash theme={null}
curl -X POST "https://gateway.hookmyapp.com/meta/v22.0/{PHONE_NUMBER_ID}/messages" \
  -H "Authorization: Bearer hmat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "recipient_type": "individual",
    "to": "15551234567",
    "type": "text",
    "text": { "body": "Hello! Your order #12345 has been shipped." }
  }'
```

## Successful response

```json theme={null}
{
  "messaging_product": "whatsapp",
  "contacts": [
    {
      "input": "15551234567",
      "wa_id": "15551234567"
    }
  ],
  "messages": [
    {
      "id": "wamid.HBgNMTU1NTE0OTU5Nzg1FQIAERgSMDhGRjdBMDEyOTcxQzFFQkFBAA=="
    }
  ]
}
```
