Send utility and authentication messages without creating or selecting an approved template first.
Direct Send
Summary
Send utility and authentication messages without creating or selecting an approved template first.
Prerequisites
- A Whats91 account
- A generated public API token
Direct Send lets Meta match or generate a utility or authentication template directly from your message payload. You do not create a template, wait for approval, or select a template name before sending. It is available on v3 only.
Warning
Meta documents Direct Send as beta, subject to beta terms, incremental availability, and per-WABA onboarding. A Whats91 v3 token does not grant Meta beta access. Confirm access for the target WABA with your Meta partner or representative before production use.
Supported Routes
| Method and path | Field style | Response style |
|---|---|---|
| POST /api/v3/chat | Whats91 camelCase or snake_case | Whats91 envelope with data.directSend |
| POST /api/v3/messages | Meta-native | Meta-compatible body |
| POST /api/v3/{phoneNumberId}/messages | Meta-native | Meta-compatible body |
| POST /api/v3/send | Not supported | 400 DIRECT_SEND_NOT_SUPPORTED_ON_TEMPLATE_SEND |
Note
Direct Send is not supported on campaigns, flows, chatbots, MCP tools, or internal template dispatch. Omitting Direct Send fields keeps the normal v3 behaviour on every route.
How It Differs From a Template Send
| Approved template send | Direct Send | |
|---|---|---|
| Endpoint | POST /api/v3/send | POST /api/v3/chat or the Meta-compatible routes |
| Prerequisite | An approved template exists for the sender | None; Meta matches or generates the template |
| Categories | Marketing, utility, authentication | Utility and authentication only |
| Template selection | You choose templateName | Meta chooses, or you name a business template on utility |
| Reporting sendRoute | template | direct_send |
Authentication and Sender Selection
Direct Send uses the same public API token, sender resolution, number scoping, rate limits, blacklist checks, billing checks, and response headers as every other v3 route. senderId stays optional when the token or account default identifies the sender, and a number-scoped token cannot send from another sender.
Note
Direct Send restriction data shown in Session Health is diagnostic only. Whats91 never reads it to pre-screen a request. After deterministic validation and the normal send prerequisites pass, Meta remains the authority on beta access, category enforcement, and restrictions.
Content Limits
| Category | Allowed message types | TTL range |
|---|---|---|
| utility | text, interactive, button, buttons | 30 to 43200 seconds |
| authentication | text only | 30 to 900 seconds |
- Direct Send body text is limited to 1024 characters.
- On the Whats91-style chat route, the existing three-reply-button limit still applies.
- Standalone image, video, audio, document, list, and location messages are not Direct Send payloads on the chat route.
- The Meta-compatible routes accept up to 10 mixed reply and CTA buttons, with at most two CTA URL buttons.