Обработка ошибок API
HTTP-коды ошибок API и форматы ответов — для OMNI API, Broadcasts API и Recipients API
Коротко: платформа возвращает HTTP-коды. Формат тела ошибки отличается в зависимости от API: OMNI API использует один формат, Broadcasts API и Recipients API — другой.
Кому подходит
- Роль: Разработчик
- Уровень: Опытный
HTTP-коды
| Код | Значение | Что делать |
|---|---|---|
| 200 OK | Успешно | Всё в порядке |
| 202 Accepted | Запрос принят | Сообщение в очереди на отправку |
| 204 No Content | Успешно, тело пустое | Используется для удаления |
| 400 Bad Request | Неверные параметры | Проверьте тело запроса |
| 401 Unauthorized | Неверный или отсутствующий ключ | Проверьте заголовок X-API-Key |
| 403 Forbidden | Нет прав | Проверьте scopes в настройках ключа |
| 404 Not Found | Ресурс не найден | Проверьте URL и ID |
| 500 Internal Server Error | Ошибка сервера | Повторите запрос или обратитесь в поддержку |
Формат ошибки OMNI API
Используется в эндпоинтах /api/v1/messages, /api/v1/omnimessages, /api/v1/senders, /api/v1/channels, /api/v1/balance, /api/v1/edrs, /api/v1/templates, /api/v1/wa_templates.
| Поле | Тип | Что означает |
|---|---|---|
| error | boolean | true — запрос завершился ошибкой |
| data.message | string | Текст ошибки |
| data.requestId | string | ID запроса для обращения в поддержку |
Пример ответа с ошибкой:
{
"error": true,
"data": {
"message": "something went wrong",
"requestId": "af8c5065-5849-455b-ae1a-6a0b9f4b7209"
}
}
Формат ошибки Broadcasts API и Recipients API
Используется в эндпоинтах /api/v1/broadcast/* и /api/v1/recipient/*.
| Поле | Тип | Что означает |
|---|---|---|
| execId | string | ID выполнения (может быть пустым) |
| key | string | Ключ ошибки для локализации (например, errors.common_error) |
| code | string | Код ошибки (например, ValidationError) |
| message | string | Текст ошибки |
| args | object | Дополнительные аргументы (может быть пустым) |
Пример ответа с ошибкой:
{
"execId": null,
"key": "errors.common_error",
"code": "ValidationError",
"message": "Selected filter's attributes don't exist.",
"args": null
}
Частые ошибки
400 Bad Request
Причины:
- Неверный формат JSON.
- Отсутствует обязательное поле (например,
phoneNumber,type,contentType). - Неверный формат номера телефона.
- Передан параметр, которого нет в фильтре.
Примеры сообщений:
Phone number can't be null or emptyRecipient type can't be nullSelected filter's attributes don't exist.
Решение: проверьте тело запроса и обязательные поля.
401 Unauthorized
Причины:
- Заголовок
X-API-Keyне передан. - Ключ неверный.
- Ключ от другого сервиса.
Решение: проверьте заголовок и ключ. Подробнее — Ошибка 401.
403 Forbidden
Причины:
- У ключа нет нужного scope.
- Scope отключён в настройках.
Решение: добавьте нужный scope в настройках ключа. Подробнее — API-ключи.
404 Not Found
Причины:
- Неверный URL.
- Несуществующий ID (шаблон, получатель, рассылка).
Решение: проверьте базовый URL и параметры.
500 Internal Server Error
Причины:
- Ошибка на стороне сервера.
Решение:
- Повторите запрос через 30 секунд.
- Сохраните
requestId(для OMNI API) илиexecId(для Broadcasts/Recipients). - Обратитесь в поддержку.
Что приложить к обращению в поддержку
- Метод и URL запроса.
- Тело запроса (без API-ключа).
- Полный ответ с ошибкой.
- Код ответа.
- Время запроса.
requestIdилиexecId, если есть.
См. также
Нужна помощь?
- OTP-коды: support@otpcod.ru
- Multi API: support@multiapi.ru
- Мой диалог: support@mydialogi.ru