Ошибки WhatsApp API в 1MSG и как их исправить
Ошибки API 1MSG при отправке сообщений: причина и решение для каждой. Многие ошибки отправки приходят с HTTP 200 и "sent": false, поэтому проверяйте поле sent, а не только HTTP-статус.
| Статус | Ответ API | Причина | Решение |
|---|---|---|---|
| 200 | Message was not sent: template is not defined | В теле запроса нет namespace, template или language. | Передайте все три. Возьмите namespace и точное название шаблона из GET /templates; language — это объект: {"policy": "deterministic", "code": "ru"}. |
| 200 | template name (…) does not exist in <language> | Шаблон одобрен на другом языке, не на том, что указан в запросе. | Укажите точный код языка, на котором одобрен шаблон (например, es_MX — не то же самое, что es). Проверьте его в GET /templates. |
| 200 | Message was not sent: provide chatId, phone, bsuid, or username | Нет получателя, которого канал смог бы определить. | Передайте ровно одного получателя: phone (код страны и номер, только цифры), chatId (например, [email protected]) или bsuid. |
| 200 | Message was not sent: empty body | Поле body отсутствует или пустое. | Передайте непустую строку body. Она обязательна для текстовых сообщений, сообщений с кнопками ответа и списков. |
| 200 | wrong file | Не удалось получить или загрузить файл: URL недоступен или base64 некорректен. | Передайте в body публичный HTTPS-URL или корректный base64 либо загрузите файл через /uploadMedia и отправьте mediaId с mediaType. |
| 200 | Message was not sent: filename | sendFile вызван без filename, поэтому у файла нет расширения. | Добавьте filename с расширением, например invoice.pdf. |
| 401 | token is required | В запросе нет токена. | Добавьте токен канала в параметр token в URL: https://api.1msg.io/{channelId}/{method}?token=… |
| 429 | too many requests. please try later | Канал превысил лимит отправки. | Ставьте сообщения в очередь на своей стороне и повторяйте с экспоненциальной задержкой (exponential backoff). |
| 403 | access denied | Токен неверный или относится к другому каналу, чем в URL. | Проверьте, что token и channelId в URL относятся к одному каналу. |
Полный справочник API: https://docs.1msg.io/
