On the WhatsApp Business Platform, the 24-hour customer service window decides when you can write to a customer freely. Outside it, the only way is a template approved by Meta. This guide covers the window, the template categories and what to watch for so your templates get approved the first time.
The window runs on Meta's clock
When a customer messages you on WhatsApp, a 24-hour customer service window opens, and it restarts with each new message from the customer. While it's open, you reply with free-form text and no template; Meta calls these replies service messages.
- The 24 hours count from the timestamp of the customer's message at Meta, not from the moment it reached your system.
- After the window closes, you can only send an approved template. If the customer writes again, the window opens again.
- If you want to write first, you also use a template.
A note for automated replies: WhatsApp's business messaging policy lets you use automation inside the window, but you must also offer a clear way to reach a human.
Messages that arrive late
If a customer's phone was offline for a while, their message can reach you hours after they wrote it. Because the window counts from when the message was sent, it can arrive with the window already short or closed. Systems that reply automatically should check that the window is still open before sending free-form text. If it's closed, send a template or wait for the customer to write again.
Template categories
Every template belongs to one of three categories, and the category also sets the price:
- Utility: follow-ups on a user's action or request. According to Meta, a utility template must not be promotional or persuasive, and it must be specific to or requested by the user, or essential or critical to them. Order confirmations, delivery updates and appointment reminders are typical.
- Marketing: any business goal from awareness to sales: campaigns, offers, abandoned-cart reminders, product suggestions.
- Authentication: one-time passcodes.
Mixed content counts as marketing: an order update with a discount code, or a feedback survey with promotional content, is not utility. Templates with unclear content are treated as marketing too. Meta can change the category of an approved template that doesn't fit; it usually gives one day's notice before moving a template from utility to marketing, and you have 60 days to appeal. For businesses that keep miscategorizing, enforcement escalates.
Variables: positional and named
The variable slots in a template are filled in when you send it. Meta accepts two formats:
- Positional: numbered from 1 in sequence, like
{{1}}and{{2}}. Values are sent in the order they appear. - Named: unique names that start with a lowercase letter, like
{{customer_name}}. Meta's documentation lists lowercase letters and underscores for these names and does not mention digits. The UPPU panel also accepts digits, but a name without digits is the safest choice.
An example utility template: "Hi {{1}}, your order {{2}} has shipped. Reply to this message for tracking details." You must also submit a sample value for every variable.
Tips for approval and common rejection reasons
Templates are reviewed automatically when you create or edit them, and a decision can take up to 24 hours. Rejection reasons Meta often sees:
- Missing or mismatched curly braces, or numbers that aren't sequential.
- Special characters such as
#,$or%inside a variable. - The text starts or ends with a variable.
- Too many variables for the length of the message.
- Requests for sensitive identifiers, or threatening content (for example, threatening legal action).
- Content that conflicts with WhatsApp's commerce or business policies.
- The template duplicates the body and footer of an existing template.
Habits that help: don't start or end the text with a variable, keep variables few, give each one a realistic sample value, and choose the category honestly for the content. If a template is rejected, check the reason and fix it; an appeal is also decided within 24 hours.
There are limits as well: an account in an unverified business portfolio can hold up to 250 templates; verified portfolios with an approved display name can hold up to 6,000. You can create at most 100 templates per hour.
Opt-in
WhatsApp's business messaging policy allows you to contact people only if they gave you their number and opted in to receive messages from you, and you must respect every request to stop. Local laws on commercial messages and consent apply on top of that; they are the sending business's responsibility.
Creating templates in UPPU and sending them through the API
- You create utility and marketing templates in the panel. They sync with Meta every 6 hours and on demand, and you see their approval status in the panel.
- Today you send templates from your own system through the API; there is no template-sending screen in the inbox yet. Every send requires an
Idempotency-Key, so retrying with the same key never creates a duplicate. - The 24-hour window is counted by Meta's clock, and the time left shows above each conversation. If you try to send free-form text while it's closed, the API returns
window_closed. - A marketing template needs a recorded consent; a utility template needs a recorded consent or a message from the person since their last withdrawal. Writing DUR, STOP or İPTAL withdraws consent.
- For every message you get sent, delivered and read statuses, and Meta's error codes come with an explanation (in Turkish, like the rest of the interface today).
# Send an approved utility template (it also goes out after the 24-hour window)
curl -sS -X POST "$UPPU_API_BASE/messages" \
-H "Authorization: Bearer $UPPU_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1001-shipped" \
-d '{
"channel_id": "01j9z0ch5k2m4n6p8q0r2s4t6v",
"to": {"contact_id": "01j8x7ct5k2m4n6p8q0r2s4t6v"},
"content": {"type": "template", "template": {"name": "order_update", "language": "en",
"body": {"parameters": ["Ayşe", "1001"]}}},
"client_reference": "order-1001"
}'The IDs in the example are fictional. See the developer pages for the details.
Sources
- WhatsApp Business Messaging Policy (last updated 23 September 2026) the 24-hour window, opt-in, opt-out requests (accessed 22 October 2026)
- Meta: Message templates review, statuses, parameter formats, template limits (accessed 22 October 2026)
- Meta: Template review common rejection reasons and appeals (accessed 22 October 2026)
- Meta: Template categorization utility, marketing and authentication definitions; category changes (accessed 22 October 2026)
- UPPU API error codes window_closed, consent_required, template_not_approved (accessed 22 October 2026)