Direct Send
Send business-initiated Utility messages without creating a template first.
What is Direct Send
Direct Send lets you send business-initiated Utility messages without creating a template first. You send the content to the normal messages endpoint, add "category": "utility", and Meta creates and manages the matching template for you.
Use it when you send transactional updates that change per customer and you don't want to manage dozens of templates: order and shipping updates, appointment reminders, payment confirmations, account alerts.
Keep using regular templates for Marketing messages and anything with content Direct Send doesn't support (see Limits).
Create and approve template first
Yes
No
Where you send
/messages
/messages (same)
Extra field
type: template
category: utility
Price
Utility rate
Utility rate (same)
Template shows in WhatsApp Manager
Yes, yours
Yes, auto-created by Meta
Before you start
You need:
A WhatsApp number connected to 360dialog on Cloud API, with an API key.
A WABA in good standing (no recent policy violations).
Content that is truly Utility: triggered by something the customer did or asked for, with no promotion in it.
Send your first message
Every Direct Send message is a normal Cloud API message plus "category": "utility". Pick the example closest to what you want to do.
Notify a customer (plain text)
Example: shipping update.
Ask the customer to confirm (reply buttons)
Example: appointment reminder with Confirm / Reschedule.
Send the customer to a page (URL button)
Example: track your delivery.
Keep your template names (optional)
If your systems report by template name, set the name yourself with direct_send_config.template_name. Lowercase letters, numbers and underscores; unique in your WABA. Utility only, and access-restricted by Meta.
More detail: Business-named templates (Meta)
Drop messages that arrive too late (TTL)
For time-sensitive messages, set a time-to-live so WhatsApp drops the message if it can't be delivered in time. See Meta: Direct Send for the field and allowed range.
What happens after you send
Meta checks whether your content matches a template you already have. If yes, it uses it.
If not, the message still goes out right away, and Meta creates a new template in the background (personal data removed, language detected).
Auto-created templates appear in the Templates API and WhatsApp Manager with names starting
auto_generated_andsource=AUTO_GENERATED. You can't edit them.Status webhooks work as usual and include a
template_id, so you can see which template each message was billed against.
The category field controls the behaviour:
category
What happens
utility
Sent as a business-initiated Utility message, charged at Utility rates
omitted
Normal Cloud API behaviour: only works inside the 24-hour customer service window
anything else
Rejected with an error
Limits
Text
Yes
Reply buttons
Yes
URL (call-to-action) buttons
Yes, max 2
Reply + URL buttons mixed
Yes, max 10 buttons total, max 2 URL
Image, video or document header
Access-restricted by Meta
Marketing content
No, use a Marketing template
Audio, sticker, location, contacts, address, reactions
No
Link previews (preview_url)
No
Text limits: body 1,024 characters, header and footer 60, button label 20. All Cloud API languages are supported. Throughput follows your number's normal Cloud API limits.
Full list: Supported features and limits (Meta)
Stay Utility, or lose access
Meta checks Direct Send content. If it looks like Marketing, you get a notice by email and webhook first. Repeated misuse leads to a 7-day suspension, then a 30-day ban, then permanent loss of Direct Send. Fix flagged content fast; if you think a flag is wrong, appeal to Meta.
Rule of thumb: if the message would still make sense with every promotional word removed, it's Utility.
See more about the Integrity and content guidelines
Troubleshooting
Request rejected right away
Unsupported category value, or a message type Direct Send doesn't support
Use "category": "utility" and a type from Limits
Message only delivered to people who wrote to you recently
category missing, so it was sent as a service message
Add "category": "utility"
Content notice by email or webhook
Meta classified the content as Marketing
Remove promotional wording, or send it as a Marketing template
Message never arrived
TTL expired before delivery
Increase the TTL or drop it for non-urgent messages
Can't edit a template in WhatsApp Manager
It's an auto_generated_ template managed by Meta
Change the content you send instead
Error codes: Cloud API error codes (Meta)
Changes since the beta
For beta participants. Your existing integration keeps working; these are the differences.
Status (Utility)
Beta, enrollment form
Generally available
Buttons
Up to 3 reply buttons, or 1 URL button
Up to 10 buttons, max 2 URL, mixing allowed
Headers
Text only
Text; media headers access-restricted
Languages
Excluded zh, ja, ko, th, lo, ml, ar
All Cloud API languages
Template names
Auto-generated only
Optionally set your own (direct_send_config.template_name)
Webhooks
Standard
Status webhooks include template_id
Authentication category
Not available
Access-restricted by Meta
The beta enrollment form is closed.
Was this helpful?