Sending a template feels technical the first time, but it’s a short loop you’ll repeat hundreds of times. Let’s walk through it — and cover the rules Meta applies as your messages go out.
Sending template messages
WhatsApp doesn’t let businesses send people random free-text messages out of the blue. To start a conversation, you must use a template — and that template must be in Active status. A template that’s still in review, paused or disabled can’t be sent.
You need a template when:
- You’re messaging a customer first (an order update, a reminder, a promotion).
- You’re replying after 24 hours have passed since their last message.
You do not need a template when you’re replying within 24 hours of the customer messaging you. Inside that window you can use free text and skip templates entirely.
There are several template types you can send: plain text, media, interactive (with buttons), multi-product, location-based, and authentication templates.
How a send works
Templates go out through a single endpoint:
POST https://waba-v2.360dialog.io/messagesThe basic flow is the same every time:
- Choose an approved template. It must be Active. Pick the one that fits — an order alert, an appointment reminder, an offer.
- Fill in the variables. If the body says “Hi {{1}}, your order {{2}} ships today,” you supply the values:
{{1}}= Priya,{{2}}= #4821. - Add header media if needed. If the template has an image, video or document header, attach the file.
- Send. The message goes to Meta, which delivers it to the customer’s phone.
When the send succeeds, the API replies with confirmation of who it went to and the message ID:
{
"messaging_product": "whatsapp",
"contacts": [{
"input": "PHONE_NUMBER",
"wa_id": "WHATSAPP_ID"
}],
"messages": [{
"id": "wamid.ID"
}]
}Sending several messages at once
If you fire off multiple messages to the same person in quick succession, they may not arrive in the exact order you sent them. WhatsApp doesn’t guarantee delivery sequence. If order matters — say a greeting then an invoice — wait for the first to be delivered before sending the next.
Template pacing
To protect customers from bad campaigns, Meta uses template pacing. When you send a brand-new Marketing template to a large audience, Meta first delivers it to a small group, watches how they react, and only continues the full send if the early feedback is healthy.
Since 30 April 2024, pacing also applies to Utility templates, not just Marketing ones.
While pacing is happening, some messages may show the status held_for_quality_assessment. That’s not an error — Meta is simply holding them while it gauges quality. If the early response is poor, the rest of the send can be stopped.
Per-user marketing message limits
Meta also caps how many Marketing templates a single customer can receive in a given period. This limit applies in most markets — the main exceptions are the EEA, UK, Japan and South Korea.
Why it matters: the cap stops customers from being buried in promotions, which keeps engagement healthy for everyone. If you blast the same person too often, later messages simply won’t get through.
What to watch for: if you hit the limit, the API returns error code 131049. It means Meta is deliberately holding the message back to protect the customer’s experience — not that something is broken on your side. Space out your marketing sends and target the right people to stay clear of it.
What happens after you send
Once a message is on its way, you get status updates back:
- Sent — Meta accepted the message.
- Delivered — it reached the customer’s phone.
- Read — the customer opened it (if they have read receipts on).
If a customer taps a button in your template, that action is recorded too — handy for measuring how the template performs. We cover those numbers in the template analytics guide.
A quick reminder on price: in India, Marketing templates cost ₹0.86 per message, while Utility and Authentication templates cost ₹0.11 each.