Official API

WhatsApp 24-Hour Window and Template Categories

How the WhatsApp API 24-hour window works, what you can send outside it, the template categories, and what changes in billing on October 1, 2026.

Silver alarm clock next to a smartphone
Illustrative photo · Pexels
In this article

The WhatsApp 24-hour window is the period during which a business can reply to a customer with a free-form message (text, photo, audio, document) through Meta's official API. It opens when the customer writes and lasts 24 hours from their last message. Outside that window, Meta only accepts a template, which is a message Meta approves before it is sent, in one of three categories: marketing, utility and authentication. The rule is Meta's, applies to every provider, and decides when a message is free and when it is charged.

This guide explains how the window opens and closes, what happens when you try to send a message outside it, how to choose a template category, and what changes in billing from October 1, 2026.

How the window opens, renews and closes

The window is opened by the customer, never by the business. When someone sends a message to your number, Meta opens a 24-hour period in which you can reply with anything you like. Every new customer message restarts the clock from zero.

The detail that confuses people most is which way that renewal works. Your reply does not renew the window. If the customer wrote at 10 a.m. on Monday and you replied at 6 p.m., the window still closes at 10 a.m. on Tuesday. Only a new message from them pushes the deadline forward. That is why a conversation where the customer stopped replying closes on its own, even if the business keeps sending messages.

The window is per customer and per number: two people who wrote at different times have different windows. And none of this depends on the provider. Meta counts the 24 hours, and the same rule applies on the official WhatsApp API and in any tool that connects to it.

Inside the window: free-form messages

With the window open, sending works like an ordinary conversation. Text, image, audio, video, document, location, quick-reply buttons and interactive lists go through without prior approval. Meta calls this a service message, and the format is the same one the API accepts for any send:

bash
curl -X POST https://frameconexa.com/api/v1/instances/$FRAME_CONEXA_INSTANCE_ID/messages \
  -H "Authorization: Bearer fc_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"to":"5585999990000","type":"text","text":{"body":"We received your order. It arrives by Friday."}}'

Inside the window you can also send a template, which makes sense when the reply is standardized, such as an order confirmation with the details filled in.

Free until 09/30/2026, charged per message from 10/01/2026

Today, a free-form message inside the window is free, and has been since November 2024. A utility template sent while the window is open has also been free since July 1, 2025.

That changes on October 1, 2026. According to Meta's official pricing changes page, from that date service messages and utility templates sent inside the window are charged per message, at the rate from the utility and authentication table for the recipient's country. The exact amount is the one in the rate table Meta published in September 2026, so check the official rate card before running the numbers.

Three things do not change: receiving messages stays free, the WhatsApp Business app on the phone is not affected, and the free 72-hour ad window, explained below, still applies to delivery.

Important: the charge comes from Meta and goes straight to the card registered in the customer's Business Manager. Frame Conexa does not charge per message: the plan is per number, and what Meta charges shows up on Meta's own invoice. The amounts by category are in how much the WhatsApp Business API costs.

Outside the window: approved templates only

After the 24 hours have passed, Meta rejects any message that is not a template. There is no exception by type of business, volume or provider. If you need to start the conversation or revive one that went cold, the way in is a template approved by Meta, with fixed text and variables in the right places. The logic is to protect the recipient: inside the window, the customer asked to talk; outside it, the business is taking the initiative, and Meta wants to read what will be said before letting it through.

Error 131047 and why it is not a bug

When a free-form message is sent outside the window, Meta responds with code 131047. The official description is that more than 24 hours have passed since the recipient's last reply. Through the Frame Conexa API, the rejection comes back as a 502 with Meta's error object attached:

json
{
  "error": "a Meta recusou o envio",
  "graph": {
    "code": 131047,
    "message": "Re-engagement message"
  }
}

This is not a failure of the integration or of the provider. It is Meta enforcing the rule. Resending the same message gives the same result, because the window does not open through persistence. In the dashboard, this code shows up as "window closed", with the right action next to it: send an approved template. The API error dictionary explains its neighbors, such as 131026 and 131049, which have other causes and other fixes.

A common case is an automation that replies late: the customer wrote, the system took more than a day, and the reply went out with the window closed. The fix is a utility template to pick the conversation back up, or a faster reply.

The three template categories

Every template has a category, chosen at creation and checked by Meta at approval. It decides how much Meta charges per delivered message and which limits apply. Since July 1, 2025, billing is per delivered template message, and the rate depends on the category and on the recipient's country.

Marketing: promotions, news, re-engagement

This is the category for anything with commercial intent: offers, launches, cart reminders, event invitations, messages to people who went quiet. It is also the most expensive per message and the only one subject to Meta's per-user limit, which restricts how many marketing templates a single user receives across all businesses combined. When that limit is hit, the send fails with 131049, and Meta's guidance is to wait at least 24 hours.

Marketing requires prior consent from the recipient, and it is what powers bulk sending through the official route. In Frame Conexa, creating marketing templates and launching campaigns is a job for the marketing number.

Utility: orders, appointments, reminders, updates

Utility is the message the customer expects to receive because of something they started: order confirmation, delivery status, appointment reminder, payment due notice, account update. The text must be straight to the point and have no sales pitch. If a utility template includes "take the chance to check out our offers", Meta tends to classify it as marketing.

The utility rate is much lower than the marketing rate, and until September 30, 2026 it is zero when sent inside an open window.

Authentication: one-time codes

Authentication is the verification code template: login, sign-up confirmation, password recovery. It has a fixed format defined by Meta, with the code as a variable and a copy button. There is no room for free text. The rate follows the authentication table for the recipient's country.

Which category to choose, and what happens if Meta reclassifies

The rule of thumb: if the message exists because of an action by the customer and they would be left without information if it did not arrive, it is utility. If it exists to sell or to win the customer back, it is marketing. If it is a code, it is authentication.

Declaring utility on a marketing text to pay less does not work. Meta reads the content at approval and can change the category, and billing follows the category Meta set, not the one you asked for. And marketing sent to people who did not consent leads to blocks and reports, which drags down the number's quality.

Tip: a good test is to read the template as if you were the customer. If the natural reaction is "I asked for this", it is utility. If it is "where did this come from?", it is marketing, and it needs consent before it goes out.

The 72-hour Click-to-WhatsApp ad window

There is a second window, with a different rule. When someone reaches your number by clicking a Click-to-WhatsApp ad, or the contact button on a Facebook Page, using the app on Android or iOS, Meta opens the normal 24-hour window. If the business replies within those 24 hours, what Meta calls a free entry point conversation opens: 72 hours counted from the delivery of the reply, in which any message is free, including marketing templates.

Two points decide whether the window exists. The click must come from a phone, because an ad opened on a computer does not count. And the business must reply in time: with no reply in the first 24 hours, there is no 72-hour window. That is why the right question is not "how many leads did the ad bring", but "how many were answered within 24 hours". The guide on Click-to-WhatsApp ads covers this in detail. Meta states that this window is unchanged in the October 1, 2026 change.

Note: with coexistence, a reply given from the phone app does not open this window. According to Meta, messages sent from the app do not open, extend or affect API windows. To get the free 72 hours, the first reply to the lead has to go out through the API, and whoever replies through it gets confirmation of the free status in the message status.

How the dashboard shows the window

In the Frame Conexa conversation panel, each conversation carries the state of its window. When open, the reply field accepts a free-form message. When closed, it switches by itself to template sending, and the reason appears next to it. The screen picks the path Meta will accept.

Ad leads have their own marker: the conversation shows which ad the person came from and, after the reply, the free 72-hour window instead of the usual 24. There is also a "no reply, window running" queue, with the people who came from an ad and have not been answered yet, sorted by urgency. It is the queue that protects the free window.

For those who integrate, the information arrives in the status event the webhook delivers after each message sent through the API. The pricing object carries the billing type: regular for a charged message, free_customer_service for a service message inside the window and free_entry_point for a message inside the ad window. Details on the envelope and the signature are in how to integrate the Cloud API through webhooks.

Summary table: what you can send, when, and what it costs

Situation What you can send Cost today (until 09/30/2026) From 10/01/2026
24h window open Free-form message and any template Free-form message free; utility template free; marketing and authentication charged Free-form and utility charged per message, at the country's utility rate
Window closed Approved template only Charged per delivered message, by category and recipient country No change
72h ad window Free-form message and any template, including marketing Free No change in delivery
Free-form message outside the window Nothing: Meta rejects it with 131047 No cost, because it is not delivered No change
Receiving a message Not applicable Free Free

The amounts by category are those in the table Meta published in September 2026. Check Meta's official rate card before budgeting, because it changes by country and by period.

Frequently asked questions

What happens if I send a message outside the 24-hour window?

Meta rejects the message with code 131047 and it does not reach the customer. There is no charge, because nothing was delivered, and resending gives the same result. To reach that person you need an approved template. If they reply to the template, the 24-hour window opens again and free-form conversation works once more.

Does the 24-hour window renew when I reply?

No. The window counts from the customer's last message. Your reply does not change the deadline. If the customer wrote at 10 a.m. and you replied at 6 p.m., the window closes at 10 a.m. the next day. Only a new message from them restarts the count.

Are messages inside the window charged?

Until September 30, 2026, no: free-form messages and utility templates inside the window are free, and only marketing and authentication are charged. From October 1, 2026, Meta also starts charging per message for service messages and for utility templates sent with the window open, at the utility rate for the recipient's country. Meta is the one that charges, directly from the customer. Frame Conexa charges per number, not per message.

What is the difference between a marketing and a utility template?

Utility is the message the customer expects because of something they started, such as an order confirmation or appointment reminder, with no sales pitch. Marketing is anything with selling or win-back intent: offers, news, abandoned carts. Marketing costs more per message, requires consent and is subject to Meta's per-user limit. The final category is the one Meta sets at approval.

What is the 72-hour ad window?

It is the window that opens when someone arrives through a Click-to-WhatsApp ad, or through a Facebook Page button, on a phone, and the business replies within the next 24 hours. From the delivery of the reply, Meta frees up 72 hours in which any message is free, including marketing templates. If the business does not reply within 24 hours, the 72-hour window does not open.

Next step

If you want to see the window working in practice, you can connect a number and follow the state of each conversation in the dashboard. The per-number plans do not charge per message, and the errors and limits documentation shows how the API returns each Meta rejection.

Keep reading

Connect the number you already use to the official WhatsApp API.

No switching numbers, no losing the app and no per-message fee from us. You pay per number; you pay Meta directly.