WhatsApp API service window · Documentation-based guide with original exercise

WhatsApp API: when free-form replies need an approved template

Content updated:

Short answer

For WhatsApp Business Platform, the service window lasts 24 hours from the customer’s last message or call. Free-form replies are possible inside it; outside it an appropriate approved template is required. No business message restarts the window, and the calculation applies at the moment of sending, not drafting. Also honour permissions and opt-outs before sending.

Key verification: The record identifies the last inbound customer message and justifies the message form before sending.

Sources and limitations

An agent writes a reply the following day and the API rejects it. A conversation visible on screen is not enough to decide whether free-form text is allowed: what counts is when the customer last wrote or called. This guide concerns WhatsApp Business Platform and its API, rather than assuming identical rules for every feature of the small-business mobile application.

The rule: 24 hours from the customer’s last message

The WhatsApp Business Messaging Policy, checked on 27/10/2026, states that you may reply without a template inside the customer service window, which opens and resets with each user message, and that outside it you may only send approved templates. The platform pricing documentation adds that the 24-hour timer starts when the user messages or calls you, that non-template messages can only be sent while the window is open and that templates can be sent at any time.

Two practical consequences follow. No business message resets the window, whether a free-form reply or a template. And the decision is made at the moment of sending, not when drafting.

Free-form reply or templateDecision diagram. Start from the customer’s last message or call and work out the expiry by adding 24 hours. If the customer has opted out of these messages, do not send. Otherwise, ask whether the message goes out before expiry: if so, you can reply with free-form text without a template; if not, only an approved template of the right category is possible. Customer’s last message or call Expiry: that time + 24 h Has the customer opted out? Yes Do not send No Does it go out before expiry? Yes No Free-form reply no template Approved template of the right category
Expiry is always calculated from the customer’s last message or call; business messages do not move it. The opt-out check comes first because a template does not authorise messaging someone who asked not to receive messages.

A fictional timeline with clear margins

WhatsApp API: when free-form replies need an approved template: table 1
EventTimeInterpretation
Customer requests a quoteMonday 09:00Inbound reference; expires Tuesday at 09:00
Agent repliesMonday 10:00Within the window; does not move the expiry
Agent follows upTuesday 12:0027 hours have passed: template only
Variant: the customer writesTuesday 08:30New reference; expires Wednesday at 08:30

With no new customer message, Monday’s reply does not carry the reference over to Tuesday. If the customer writes again on Tuesday at 08:30, the same 12:00 send can now be a free-form reply. Store the date, time zone and identifier of every inbound message; an interface label such as “yesterday” cannot establish an exact expiry.

What opens the window and what does not

WhatsApp API: when free-form replies need an approved template: table 2
EventDoes it open or reset the window?What to do
Customer messageYesRecord its time as the new reference
Customer call over WhatsAppYesRecord the call and its time in the contact history
Agent’s free-form replyNoDo not change the expiry
Template sent by the businessNoWait for the customer to reply
Delivery or read receipt of a business messageNoDo not use it as a reference

If contact starts by voice, the move from chat to call and its continuity are covered in the WhatsApp Business Calling pilot.

Recalculate before sending, not when drafting

A draft prepared on Tuesday at 08:50 is 23 hours and 50 minutes after Monday at 09:00. If the queue sends it at 09:10, 24 hours and 10 minutes have passed: the drafting decision has expired. Reassess the latest inbound message immediately before sending and hold the send if that reference is unavailable.

Edge case: the clock change. A customer writes on Saturday 24 October 2026 at 10:00 mainland Spain summer time, which is 08:00 UTC. In the early hours of Sunday 25 the clocks go back one hour, so the window expires at 08:00 UTC on Sunday, that is, 09:00 winter time, not 10:00. A system that calculates “same time tomorrow” would allow one hour too many. Store times in UTC and convert only for display.

What to check with CallHippo

The CallHippo WhatsApp Business API page describes free-form messages during the 24 hours after a customer makes contact and approved templates outside that period (checked on 27/10/2026). Confirm that the solution is available and how template review works in your account before subscribing. Approval of wording establishes neither recipient consent nor successful delivery.

Templates: category, permission and cost

The pricing documentation classifies templates as marketing, utility and authentication, charges messages when they are delivered and records pricing changes in force since 1 October 2026. Do not copy rates from older guides: check the current table for your country and category. Choose the category by the message’s real purpose; an appointment reminder is not the same as a promotion.

The policy also requires the recipient’s permission to receive messages and that opt-out requests be honoured. In Spain, that permission must comply with the GDPR and other applicable rules; an approved template does not replace it. If several agents share the conversation, keep it visible who replied and when, as suggested in the shared WhatsApp inbox guide.

Exercise without messaging customers

Using an authorised test conversation, prepare cases inside and outside the window and one with a fresh inbound message. Check that the system asks for the correct message form, that the template is still approved and that variables do not change its meaning. Record the error and the final status separately. Avoid bulk retries and do not assume that switching to a template removes recipient blocking. CallsIQ has not performed these sends; what is accepted is a traceable decision, not a delivery promise.

Common mistakes and how to spot them

WhatsApp API: when free-form replies need an approved template: table 3
MistakeSymptomCheck
Counting from the agent’s last messageRejections of replies that seemed on timeFilter the history to inbound messages
Deciding when drafting, not when sendingRejections of scheduled or queued sendsRecalculate the expiry at the moment of sending
Using local time without a time zoneOne-hour errors after the clock changeStore and compare times in UTC
Retrying a rejection in a loopMany identical errors within minutesRead the error code before retrying
Using a template to get round an opt-outComplaints or blocking by the recipientCheck the opt-out list before every send

From the author's experience

In the WhatsApp-to-contact-centre integrations I have seen, I would require the integration itself to know the user's last message and check the window before sending, while still respecting whatever validation the API applies at send time; the policy allows a free-form reply within the twenty-four hours and requires an approved template outside them. For queued messages that risk expiring before they go out, I would validate the window right at send time and route anything already expired to review, using an approved template only when it applies.

On the template-category mistake, I would check whether a template presented as utility actually contains promotion or upselling, validating category, approval and intended use before activating it; I would not claim a frequency of my own for that mistake without reviewing actual templates. On permission and opt-outs, I would make the recorded permission visible on the contact record, with its source, date and scope, along with any opt-out, and I would apply that same check to automated sending too, so it does not rely solely on an agent remembering to look.

When a client reports that their WhatsApp replies are being rejected, the first thing I would ask for is the exact rejection code, then check the window, message type and template status before verifying recipient, permissions and applicable limits and retrying.

Sources and limitations

Documentary review: . Content type: Documentation-based guide with original exercise.

Linked sources describe the terms and capabilities each provider publishes. Examples that use fictional data are labelled in the text.

Scope: Documentation reviewed on 16 October 2026. Examples are fictional and tests are proposed; CallsIQ has not performed product tests.

How to report a correction

Check current terms

Consider these options if they solve the problem described. Confirm features, limits and availability in your country.

CallHippoAffiliate link

The labelled commercial links may earn CallsIQ a commission or referral reward. Our commercial policy.

How this guide was prepared

Official sources, explained calculations and clearly labelled examples. Read about our methodology and use of AI in writing.