03 Oct 2026 · 15 views
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.
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.

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.
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.

| Error | What it means | What to do |
|---|---|---|
WINDOW_CLOSED | The 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_SECRET | The key is missing or wrong. | Copy the key again from your panel → WhatsApp API. |
KEY_REVOKED | This key was stopped. | Create a new key and use it. |
NO_PERMISSION | The key cannot do this (for example, Read is off). | Panel → WhatsApp API → Edit the key → tick Send / Read. |
MISSING_RECIPIENT / INVALID_RECIPIENT | The number is missing or not a valid number. | Use country code + mobile, like 919876543210. |
MISSING_PARAM | A must-have box for this type is empty. | The message names the missing part. Add it. |
TOO_LONG / TOO_MANY | Text or a list is longer than WhatsApp allows. | Shorten it. The answer tells you the limit. |
TEMPLATE_NOT_FOUND | No template with this name (or language). | Check the spelling. Use Load my templates in the tester. |
TEMPLATE_NOT_APPROVED | The template is pending or rejected. | Wait for approval, or fix and resubmit it. |
TEMPLATE_PARAMS | Values for the template are missing. | The message lists exactly what to add. |
ACCOUNT_NOT_FOUND | The 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_OUT | The customer opted out of marketing messages. | Do not send them marketing templates. |
INVALID_URL | A link is not a proper http/https link. | Check the link for spaces or missing https://. |
FILE_TYPE / FILE_TOO_BIG | The file type is not allowed or the file is too big. | See the file table in Part 4. |
WHATSAPP_ERROR | WhatsApp itself refused the message. | Read data.hint. It explains WhatsApp's reason in simple words. |
NOT_CONNECTED | Your WhatsApp connection is not ready or has expired. | Panel → Setup. Or message our team. |
NO_API_IN_PLAN / PLAN_INACTIVE | Your plan does not include the API, or it has ended. | Contact E-Public Touch to renew or upgrade. |
RATE_LIMIT / DAILY_LIMIT | Too 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_BLOCKED | A link preview (WhatsApp, Facebook, Telegram…) opened the link. | Nothing. We blocked it so no message went by mistake. |
SERVER_ERROR | Something went wrong on our side. | Try again in a minute. If it repeats, message our team. |
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.
Sometimes we send the message but WhatsApp refuses it, or it fails later. The hint tells you which one it is:
| Limit | Value |
|---|---|
| Requests per minute, per key | 120 |
| Requests per minute, per computer / server (IP address) | 240 |
| Messages per day, per key | Your choice: no limit, 100, 1,000, 5,000 or 20,000 |
| File uploads per business, per day | 300 files, 500 MB in total |
| Text message length | 4,096 characters |
| Text under a photo, video or file / button message length | 1,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.
ref (like an order number) to be fully safe: the same ref is never sent twice within 24 hours, even with POST.You can write numbers in any of these ways. We clean them up for you:
9876543210 → we add 91 → 91987654321009876543210 → we remove the 0 and add 91+91 98765-43210 → spaces, + and - are removedFor other countries, always write the country code.
Sending from your own software and it still does not work? Check these too:
If it still does not work, send us a screenshot of the red answer on WhatsApp. Please hide your key before you share it.
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
Try everything live in the API Tester.