WhatsApp API

WhatsApp API Errors and Limits Explained in Simple Words

03 Oct 2026 · 15 views

WhatsApp API guide · Part 9 of 12. New here? Start with Part 1: Get your API key.

Every answer from the E-Public Touch API tells you clearly what happened. A green answer means success. A red answer has a short error code and a message in plain English. This page explains all the common ones.

How an answer looks

Success:

{
  "status": 200,
  "result": "success",
  "message": "Message sent to WhatsApp.",
  "data": { "messageId": "wamid.HBgM...", "recipient": "919876543210", "status": "accepted", "request_id": 1234 }
}

Error:

{
  "status": 422,
  "result": "failed",
  "error": "WINDOW_CLOSED",
  "message": "More than 24 hours since this customer's last message — only an approved template can be sent now. Use type=template. (Add &force=1 only if you are sure the chat is open.)",
  "data": { "last_customer_message_at": "2026-10-01T18:15:00+05:30" }
}

Your software only needs to check result. If it is failed, show or save the message.

A red answer in the API Tester under Send now: This customer has not messaged you in the last 24 hours, with What to do and a Send a Template instead button
In the API Tester, the same problem shows as a red box in simple words, with What to do and a button to fix it.

The line under the Send now button says Not sent. See below why and what to do. To see the full answer with the error code (like WINDOW_CLOSED), open Technical details (for your developer) at the bottom of the answer.

Message not received? Start with the checklist

In the tester's left menu, under Help, click Errors. The page starts with a short checklist, Message not received? Go through it one by one: most problems are found in the first few points. Every error code and what to do comes below the checklist.

The Errors page of the API Tester: the Message not received checklist with nine points, from Read the answer to In the panel
The checklist at the top of the Errors page.

The most common errors

ErrorWhat it meansWhat to do
WINDOW_CLOSEDThe customer has not written to you in the last 24 hours.Send an approved template (type=template). Use force=1 (in the tester: Extra settings → Skip the 24-hour check) only if you are sure the customer wrote to you recently. WhatsApp will still refuse it if not.
MISSING_SECRET / INVALID_SECRETThe key is missing or wrong.Copy the key again from your panel → WhatsApp API.
KEY_REVOKEDThis key was stopped.Create a new key and use it.
NO_PERMISSIONThe key cannot do this (for example, Read is off).Panel → WhatsApp API → Edit the key → tick Send / Read.
MISSING_RECIPIENT / INVALID_RECIPIENTThe number is missing or not a valid number.Use country code + mobile, like 919876543210.
MISSING_PARAMA must-have box for this type is empty.The message names the missing part. Add it.
TOO_LONG / TOO_MANYText or a list is longer than WhatsApp allows.Shorten it. The answer tells you the limit.
TEMPLATE_NOT_FOUNDNo template with this name (or language).Check the spelling. Use Load my templates in the tester.
TEMPLATE_NOT_APPROVEDThe template is pending or rejected.Wait for approval, or fix and resubmit it.
TEMPLATE_PARAMSValues for the template are missing.The message lists exactly what to add.
ACCOUNT_NOT_FOUNDThe account ID is not one of your numbers.Copy it from panel Step 2 (or the tester's My numbers page), or leave account out.
OPTED_OUTThe customer opted out of marketing messages.Do not send them marketing templates.
INVALID_URLA link is not a proper http/https link.Check the link for spaces or missing https://.
FILE_TYPE / FILE_TOO_BIGThe file type is not allowed or the file is too big.See the file table in Part 4.
WHATSAPP_ERRORWhatsApp itself refused the message.Read data.hint. It explains WhatsApp's reason in simple words.
NOT_CONNECTEDYour WhatsApp connection is not ready or has expired.Panel → Setup. Or message our team.
NO_API_IN_PLAN / PLAN_INACTIVEYour plan does not include the API, or it has ended.Contact E-Public Touch to renew or upgrade.
RATE_LIMIT / DAILY_LIMITToo many messages too fast, or the key's daily limit is used up.Wait and try again, or raise the key's daily limit.
PREVIEW_BLOCKEDA link preview (WhatsApp, Facebook, Telegram…) opened the link.Nothing. We blocked it so no message went by mistake.
SERVER_ERRORSomething went wrong on our side.Try again in a minute. If it repeats, message our team.

Several messages in one request

When you send several messages at once (Part 11), a mistake in any of them stops the whole request before anything is sent, and the message starts with the number, like "Message 3: document_url is missing…" (data.item is 3). If WhatsApp refuses one message after sending has started, the answer is "result": "partial" and data.items shows each message as success, failed, duplicate or not_sent.

When WhatsApp says no: common reasons

Sometimes we send the message but WhatsApp refuses it, or it fails later. The hint tells you which one it is:

  • Message undeliverable: the number may not be on WhatsApp, or the customer has not accepted WhatsApp's latest terms.
  • WhatsApp could not download the file: your file link needs a login or is not a direct file link (see Part 4).
  • Template values do not match: wrong number of values or wrong language.
  • Template paused: too many people blocked or reported it. Improve the template or use another one.
  • Form not found: the form ID is wrong, or the form is not published yet. Check it on the My forms page (Part 6).
  • Marketing limit: WhatsApp limits how many marketing messages one person gets. Try later, or use a utility template for real updates.
  • Payment problem: the payment method for your WhatsApp account needs attention. Message our team.

Limits you should know

LimitValue
Requests per minute, per key120
Requests per minute, per computer / server (IP address)240
Messages per day, per keyYour choice: no limit, 100, 1,000, 5,000 or 20,000
File uploads per business, per day300 files, 500 MB in total
Text message length4,096 characters
Text under a photo, video or file / button message length1,024 characters

WhatsApp also has its own daily limit on how many new people your number can message with templates. It grows as your number builds a good record.

Duplicate protection: why a message went only once

  • If the same link is opened twice within 2 minutes, we send it only once. The second answer says "Already sent … — not sent again". This stops double clicks and browsers that open a link twice.
  • Add your own ref (like an order number) to be fully safe: the same ref is never sent twice within 24 hours, even with POST.
  • A failed send never blocks a retry.

Indian mobile numbers

You can write numbers in any of these ways. We clean them up for you:

  • 9876543210 → we add 91 → 919876543210
  • 09876543210 → we remove the 0 and add 91
  • +91 98765-43210 → spaces, + and - are removed

For other countries, always write the country code.

Still stuck? Quick checklist

Sending from your own software and it still does not work? Check these too:

  1. Is the key copied fully, with no space at the start or end?
  2. Is the number correct and on WhatsApp?
  3. Has the customer written to you in the last 24 hours? If not, use a template.
  4. Is the template Approved, with all values filled?
  5. Does your file link open the file directly in a private browser window?
  6. Check Recent API calls in your panel. The message column shows the reason.

If it still does not work, send us a screenshot of the red answer on WhatsApp. Please hide your key before you share it.

What next?

Using another WhatsApp API today? Part 10 shows how to move your old links to E-Public Touch in a few minutes.

Next: Part 10 — Moving from another provider

Want this working for your business? Our team sets up the complete WhatsApp Cloud API panel for you — approval, templates, chatbot, everything.
Book Free Demo Try Free Message Checker