Direct Send API
The Direct Send API allows sending free-form messages without using pre-approved templates. When category=utility is provided in a free form message, Meta treats it as a direct send message and internally generates a template_id, which is returned in the webhook delivery status (DLR).
Webhook Event (DLR)
{
"object": "whatsapp_business_account",
"entry": [
{
"id": "<ID>",
"changes": [
{
"value": {
"messaging_product": "whatsapp",
"statuses": [
{
"id": "<ID>",
"status": "<read/delivered/sent>",
"timestamp": "<EPOCH_TIME>",
"recipient_id": "<RECIPIENT_PHONE_NUMBER>",
"template_id": "<TEMPLATE_ID>",
"conversation": {
},
"pricing": {
}
}
]
},
"field": "messages"
}
]
}
]
}
Webhook Event Description
| Name | Description | JSON Type |
|---|---|---|
| status | Event status (read/delivered/sent) | String |
| recipient_id | Recipient mobile number | String |
| timestamp | Epoch time of the status update | String |
| template_id | Auto-generated identifier for the direct send message | String |