Sending messages
Free-form replies vs templates, the 24-hour window, check_recipient, and what "accepted" means.
Updated September 25, 2026 · 1 min read
WhatsApp allows two kinds of outgoing message, and choosing the right one is most of the job.
Free-form vs template
| Free-form (text, buttons, media) | Template | |
|---|---|---|
| When allowed | Within 24 hours of the person's last message to you | Any time |
| Needs Meta approval | No | Yes, once per template |
| Meta charge | Free | Per message, by category and country |
Details: the 24-hour window, explained.
check_recipient: decide before you send
Your assistant calls check_recipient with the phone number first. It returns:
replyWindowOpen—true,false, ornullwhen we have no record of them messaging you.optedOut— they replied STOP.approvedTemplates— each with its body and number of variables.recommendation— one sentence: reply free-form, use an approved template, or (only if nothing fits) create one.
Safeguards
- Free-form sends are refused when the window is known to be closed — otherwise Meta would accept and silently drop them.
- When the window state is unknown, the send goes ahead with a
warningin the result. - Template sends to opted-out numbers are refused.
- Every send counts against your plan's monthly allowance; when it's used up or the trial has ended, sending pauses with a clear reason.
"Accepted" isn't "delivered"
From your own app, the same rules apply through the REST API: POST /v1/messages with a template or text, and an Idempotency-Key so retries never double-send.
A successful send means Meta accepted the message. Delivery and read receipts arrive afterwards through the webhook and show in the inbox and in bulk-send stats. Don't tell a customer "it arrived" based on the send result alone.
From the dashboard
Reply from the Inbox. The reply box switches between free text and templates depending on the window, and fills template variables for you.
Do this from your AI assistant
SendFromChat connects Claude, ChatGPT, Cursor or any MCP client to the WhatsApp Business API — templates, bulk sends, inbox, chatbots and sequences, just by asking. 30 days free, no card.
Start freeMore docs
Getting started with SendFromChat
From sign-up to your first WhatsApp message in a few minutes — connect a number in one click, connect your AI assistant, send.
Connect your AI assistant
Add SendFromChat to Claude, ChatGPT, Claude Code, Cursor, VS Code, Windsurf, Gemini CLI, Codex or any MCP client.
REST API
Send WhatsApp messages from your own app — order updates, sign-in codes, reminders — and receive replies by webhook. Keys, endpoints, errors and signed webhooks.
Templates
Create WhatsApp message templates, pass Meta's review first time, and track approval.