WhatsApp Business Platform

Send utility and authentication messages

Updated: Jul 31, 2026
Copy for LLM
To send a utility or authentication message with Direct Send, call the POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages endpoint and add the category field to the message body.

Request syntax

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages

Example request

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "<WHATSAPP_USER_PHONE_NUMBER>",
  "type": "text",
  "text": {
    "body": "<BODY_TEXT>"
  },
  "category": "utility"
}
To send an authentication message instead, set "category": "authentication" (access restricted — see Supported values for the category field).
If you call the endpoint without the category field, the request follows normal Cloud API send-message behavior for free-form messages.
Note. Direct Send uses the standard Cloud API recipient model: address messages with to (phone number) or recipient (business-scoped user ID). Authentication-category messages can’t be sent to a business-scoped user ID — use to with a phone number. See Business-scoped user IDs for availability and details.

Supported values for the category field

The category field indicates the category of the message to send as a template.
ValueDescription
utility
Business-initiated message in the utility category. Charged at utility rates.
authentication
Business-initiated message in the authentication category. Charged at authentication rates.
Access restricted — contact your partner or client manager to get access.
service(or omitted)
Service message that follows the existing service-message flow and is not part of Direct Send. The message fails with error 131047 if there’s no open service window. Omitting the category field is equivalent to sending category: "service" — both are treated as outside Direct Send and follow the existing Cloud API send behavior.

Sending a message with an incorrect category value

If you send an unsupported value (for example, marketing), the API returns a synchronous error:
{
  "error": {
    "message": "(#100) Param category must be one of {AUTHENTICATION, SERVICE, UTILITY} - got \"marketing\".",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "<FBTRACE_ID>"
  }
}

Sending a message with an ineligible account

If your WhatsApp Business Account isn’t eligible for Direct Send, sending a message with a category value returns a synchronous error 100:
{
  "error": {
    "message": "(#100) Invalid parameter",
    "type": "OAuthException",
    "code": 100,
    "error_data": {
      "messaging_product": "whatsapp",
      "details": "Parameter Invalid: The 'category' value requires Direct Send, which isn't enabled for this account. Use an approved message template instead."
    },
    "fbtrace_id": "<FBTRACE_ID>"
  }
}
You can check whether your account is eligible for Direct Send in WhatsApp Manager.