WhatsApp Direct Send

Direct Send is a WhatsApp Business Platform feature that lets you send Utility messages without creating a message template and without waiting for Meta to approve it. This page explains what Direct Send is, how Meta manages it, what benefits it offers, how to check that you have access, how to use it from the platform, and which restrictions and responsibilities apply.

🚧

BETA: RESTRICTED ACCESS

Direct Send is in beta, and it is not open to every account. Meta grants access only to an allowlist of WhatsApp Business Accounts (WABAs). If you send a message with Direct Send before Meta enables it for your WABA, the message fails. See Enable access.

What is Direct Send

To message a user who has not written to you in the last 24 hours, you normally need a message template: you create it, submit it to Meta, and wait for the approval before you can send it.

Direct Send removes these steps for Utility messages. You send the content of the message in the request, in the same way you send a regular message, and you add the directSend attribute. Meta takes care of the template that WhatsApp requires to deliver the message.

In practice, this means the following:

  • You do not create a template. There is nothing to create in the Message Templates section of the platform.
  • You do not wait for an approval. You can send the message as soon as your request is ready.
  • You still send a regular message through the API. The only difference is the directSend attribute.
  • You can only send Utility messages. Utility messages are transactional or informational updates related to an interaction with the user, such as order confirmations, shipping updates, or appointment reminders. For more information about message categories, see WhatsApp message templates (Platform).

Direct Send compared with other ways to send

The following table compares Direct Send with the other ways to send a WhatsApp message:

Message templateSession messageDirect Send
What you sendThe name of a template that you created and Meta approved.A regular message, without a template.A regular message with directSend set to true, without a template.
Approval by MetaRequired. It can take up to 48 hours.Not required.Not required.
When you can send itAt any time.Only within 24 hours after the user's last message.At any time. It does not depend on the 24-hour session window.
Content allowedAccording to the category of the template.Any supported content.Utility content only.
AvailabilityAvailable by default.Available by default.Requires access granted by Meta.

How Meta manages Direct Send

Meta manages every Direct Send message automatically. You do not need to take any action. For each message that you send with Direct Send, Meta does the following:

  1. Meta checks whether the content of your message matches a template that Meta generated automatically for a previous Direct Send.
  2. If the content matches, Meta uses that template to deliver the message.
  3. If the content does not match any template, Meta generates a template for that particular send and delivers the message.

This has the following consequences for you:

  • The template is internal and managed by Meta. You cannot edit it or delete it.
  • The platform does not show it. The templates that Meta generates do not appear in the Message Templates section of the platform.
  • WhatsApp Manager shows it. Meta displays each generated template in WhatsApp Manager, marked as automatically created by Meta. See View the templates that Meta generates.
  • You never reference the template in your requests. You always send the content of the message, not the name of a template.

Benefits

  • No creation and approval cycle for Utility messages. You do not create templates, you do not submit them to Meta, and you do not wait for the approval. If you change the wording of a message, you do not need to submit anything again: Meta checks the new content and generates a template if it needs one.
  • The same Utility rate. Meta charges a Direct Send message at the same Utility rate that applies to a message sent with a traditional message template. Direct Send does not change the rate.

Enable access

Direct Send is not open to every account. The feature is in beta, and Meta restricts it to an allowlist. Review the following points before you use it:

  1. Meta grants the access at the WABA level. The platform does not grant or manage this access. The access applies to each WABA individually.
  2. You are responsible for verifying your access. Check in your Meta Business Manager or in WhatsApp Manager whether your WABA already has access to Direct Send.
  3. Use Direct Send on the platform only after you have access. If you send a message with Direct Send and your WABA does not have access enabled, the message fails.
📘

NOTE

If your WABA does not have access to Direct Send yet, continue to send your Utility messages with message templates as usual.

Send a message with Direct Send

To send a message with Direct Send, add the optional directSend attribute to the payload of a regular message request. The examples on this page use the POST /v3/messages endpoint.

The directSend attribute

ParameterTypeRequiredDescription
directSendBooleanNoSet to true to deliver the message with Direct Send. Your WABA must have Direct Send enabled by Meta. The default value is false.

Keep the following rules in mind:

  • Send directSend only when you want to use Direct Send. If you do not want to use it, do not include the attribute in your request.
  • directSend applies only to regular messages. It does not apply to message templates.
  • If you send directSend together with a message template, the template prevails. The platform processes the message as a standard message template send and ignores directSend.

The following table summarizes what happens in each case:

What you senddirectSendResult
Regular message (text or interactive)trueThe platform sends the message with Direct Send. Your WABA must have access.
Regular message (text or interactive)false or not includedThe platform sends a regular message. The 24-hour session window applies.
Message template (templateName or templateId)trueThe template prevails. The platform sends a standard message template and ignores directSend.
Message template (templateName or templateId)false or not includedThe platform sends a standard message template.

Text message

HTTP Request: POST /v3/messages

Use a text message to send a short Utility update, such as a shipping notification. This example sends a text message with Direct Send:

{
  "from": "1000000001",
  "to": "+1000000002",
  "body": "Your order #45890 has shipped and will arrive tomorrow.",
  "directSend": true,
  "callbacks": [
    "http://www.mycallback.com?id=123"
  ]
}

Request parameters

All the parameters of a regular message work the same way with Direct Send. The following table describes the parameters used in the examples on this page. For the complete description of each parameter, see Creating & sending WhatsApp session messages.

ParameterRequiredDescription
fromYesPhone number of the sender. It is the phone number provided during the WABA setup. It only accepts numeric characters. Do not include the "+" sign.
toYesDestination phone number. Use the E.164 format: the "+" sign and the country code.
directSendNoSet to true to use Direct Send.
bodyYes, for text messagesText of the message.
typeYes, for interactive messagesType of message. Set it to interactive to send an interactive message.
interactiveYes, for interactive messagesObject with the content of the interactive message: type of interaction, header, body, footer, and buttons.
callbacksNoOne or more webhook URLs that receive the status of the message. See WhatsApp status.

Interactive message with reply buttons

HTTP Request: POST /v3/messages

Use an interactive message with reply buttons when the user needs to answer with one tap, for example to confirm an appointment. This example sends an interactive message with a text header, a footer, and three reply buttons:

{
  "from": "1000000001",
  "to": "+1000000002",
  "directSend": true,
  "type": "interactive",
  "interactive": {
    "type": "button",
    "header": {
      "type": "text",
      "text": "Appointment reminder"
    },
    "body": {
      "text": "Your appointment is scheduled for Friday at 3:00 PM. Do you want to confirm it?"
    },
    "footer": {
      "text": "Select an option below"
    },
    "action": {
      "buttons": [
        {
          "type": "reply",
          "reply": {
            "id": "0",
            "title": "Confirm"
          }
        },
        {
          "type": "reply",
          "reply": {
            "id": "1",
            "title": "Reschedule"
          }
        },
        {
          "type": "reply",
          "reply": {
            "id": "2",
            "title": "Cancel"
          }
        }
      ]
    }
  },
  "callbacks": [
    "http://www.mycallback.com?id=123"
  ]
}

The following limits apply to this type of message:

  • Header text: up to 60 characters.
  • Body text: up to 1,024 characters.
  • Footer text: up to 60 characters.
  • Reply buttons: up to 3 buttons. Each button has a unique id and a title of up to 20 characters.

To use a multimedia header instead of a text header, set header.type to image, video, or document, and include the link to the file. For example, for an image header:

"header": {
  "type": "image",
  "image": {
    "link": "https://example.com?media=image.png"
  }
}

For more information about the multimedia header, see Reply buttons.

Interactive message with a URL button

Use an interactive message with a call-to-action (CTA) URL button to send the user to a web page, for example to track an order. This example sends an interactive message with a text header, a footer, and a URL button:

{
  "from": "1000000001",
  "to": "+1000000002",
  "directSend": true,
  "type": "interactive",
  "interactive": {
    "type": "cta_url",
    "header": {
      "type": "text",
      "text": "Order update"
    },
    "body": {
      "text": "Your order #45890 is on its way. Use the button below to track it."
    },
    "footer": {
      "text": "Delivery updates"
    },
    "action": {
      "name": "cta_url",
      "parameters": {
        "displayText": "Track order",
        "url": "https://example.com/orders/45890"
      }
    }
  },
  "callbacks": [
    "http://www.mycallback.com?id=123"
  ]
}

In this type of message, interactive.type and action.name are set to cta_url. The displayText parameter is the text of the button, and the url parameter is the web page that opens when the user taps the button.

Response

If the platform accepts your request, the response is an HTTP 202 status code with the description "Message accepted for processing". This response confirms that the platform accepted the request. It does not confirm that the message was delivered. To follow the delivery status, use the callbacks parameter. For the list of statuses, see WhatsApp status.

Supported message types

Direct Send supports the following message types:

Message typeWhat you can includeinteractive.type
TextA simple text message.Not applicable
Interactive message with reply buttonsText or multimedia header (image, video, or document), footer, and reply buttons.button
Interactive message with a CTA URL buttonText or multimedia header (image, video, or document), footer, and a URL button.cta_url

Direct Send does not support any other message type at this time, for example interactive lists, contacts, location, or media messages that are not part of an interactive message.

📘

NOTE

These are the message types supported at this time. Meta can enable additional message types for Direct Send in the future.

Your responsibility

🚧

IMPORTANT

You are fully responsible for the content you send with Direct Send and for its correct classification as Utility.

Direct Send is only for Utility messages. A Utility message is transactional or informational, it is strictly non-promotional, and it provides an update that the user expects or requested. For example:

  • Order confirmations or shipping updates.
  • Appointment reminders or payment alerts.
  • Account updates or ticket status notifications.

Do not use Direct Send to send promotional content, such as offers, discounts, product announcements, newsletters, or invitations. This content is Marketing. To send Marketing content, use a Marketing message template.

If Meta detects marketing content sent with Direct Send, Meta can sanction the use and suspend your access to Direct Send or to your WABA.

To reduce this risk, review the content of your messages before you send them, and send them only to users who agreed to receive them.

View the templates that Meta generates

The templates that Meta generates for Direct Send appear in WhatsApp Manager, in Message templates, marked as automatically created by Meta. You cannot edit them or delete them, and they do not appear in the Message Templates section of the platform.

📘

NOTE

Meta provides support for viewing these templates in WhatsApp Manager. The platform does not provide support for this task.

Message logs

Direct Send messages do not have their own analytics. However, the Messaging logs report shows how the platform sent each message, so you can run your own analysis.

To see this information, export the report:

  1. In the Messaging tab, select View all Logs.
  2. Set the date range and the filters you need. For example, in Filter by Channel, select WhatsApp.
  3. Select Export report and confirm the export.
  4. Open the .csv file that the platform sends to your email.

For more information, see Export a report.

The exported file includes the SendMode column, which shows the way the platform sent each message:

SendModeDescription
STANDARDA regular message sent without Direct Send.
TEMPLATEA message sent with a message template.
DIRECT_SENDA message sent with Direct Send.

Filter this column in your spreadsheet to compare the messages you send with Direct Send against the rest of your messages.

Common questions

Do I need to create a template in the platform to use Direct Send?
No. You send the content of the message in the request, with the directSend attribute. Meta manages the template internally.

Will I see the template in the Message Templates section?
No. The templates that Meta generates do not appear in the platform. They appear in WhatsApp Manager, marked as automatically created by Meta.

Can I edit or delete the template that Meta generates?
No. Only Meta manages these templates.

How much does a Direct Send message cost?
Meta charges it at the same Utility rate as a message sent with a traditional message template.

What happens if I send a message with Direct Send and my WABA does not have access?
The message fails. Verify your access in your Meta Business Manager or in WhatsApp Manager before you use Direct Send.

Can I use Direct Send to send marketing content?
No. Direct Send is only for Utility messages. If Meta detects marketing content, Meta can sanction the use and suspend your access to Direct Send or to your WABA.

What happens if I send directSend together with a message template?
The template prevails. The platform processes the message as a standard message template send.