xaxumessageAPI
Начало

Ошибки

Любая ошибка — HTTP-статус и JSON с машинным кодом error.code, понятным текстом и, когда есть, подробностями.

{
  "error": {
    "code": "unsupported",
    "message": "max does not support \"poll\"",
    "details": {}
  }
}

Решения в коде принимайте по status и error.code; message предназначен человеку и может меняться.

Все коды

HTTPerror.codeЧто значит и что делать
400bad_requestЗапрос не прошёл проверку. В details — список полей: [{path, message}].
401unauthorizedНет ключа, ключ неверный или клиент приостановлен.
402billing_suspendedСрок оплаты номера истёк: отправка заблокирована, приём сообщений продолжается. Продлите номер.
403forbiddenДействие запрещено (например, удалить номер, подключённый оператором; запись из консоли без CSRF-токена).
403quota_exceededДостигнут лимит номеров клиента или самообслуживание выключено. details: {limit, used}.
403billing_managed_by_platformСрок оплаты ваших номеров ведёт оператор, а не вы.
403billing_managed_by_tenantВы сами ведёте оплату своих пользователей — счета платформы вам не нужны.
404not_foundОбъекта нет или он принадлежит другому клиенту. Неизвестный адрес метода — тоже 404.
409account_not_readyНомер не авторизован, заблокирован или ждёт облачный пароль. details.state — состояние.
409groups_disabledОтправка в группу или канал, а группы у номера выключены.
409attachment_not_readyФайл ещё скачивается или не сохранился.
409message_not_sentСообщение ещё не ушло в мессенджер — править или удалять рано.
409message_deletedСообщение уже удалено.
409quote_not_sent, forward_not_sentЦитируемое или пересылаемое сообщение ещё не отправлено.
409story_not_sentСтатистика просмотров есть только у отправленных сторис.
409billing_suspendedСторис: номер приостановлен за неоплату.
409order_in_progressЗаказ номера с этим clientId ещё выполняется — повторите через несколько секунд.
409idempotency_mismatchЭтот clientId уже использован для заказа другого мессенджера.
409idempotency_key_usedНомер с этим clientId был удалён — нужен новый clientId.
409instance_existsОператор: этот инстанс GREEN-API уже подключён.
409account_existsОператор: номер с таким id уже есть (восстановление под прежним id).
409secrets_key_required, managed_by_envОператор: настройки оплаты нельзя сохранить (нет ключа шифрования или они заданы в окружении сервера).
413too_largeФайл больше допустимого размера.
422unsupportedМессенджер номера не умеет эту операцию (см. Мессенджеры), или заказ номеров этого мессенджера недоступен.
422payments_disabledОнлайн-оплата на платформе не настроена.
422no_price, unsupported_currencyДля мессенджера номера нет цены в прайс-листе, или прайс не в рублях.
429rate_limitedСлишком много заказов номеров или счетов за час. details.retryAfterSec — через сколько повторить.
429too_many_attemptsКонсоль: слишком много попыток входа с этого адреса.
502upstream_errorМессенджер-провайдер не ответил или ответил ошибкой. details.kind: network, timeout, rate_limit, quota, auth, validation, server. Можно повторить позже.
500internal_errorОшибка на нашей стороне. Повторите позже; если повторяется — сообщите оператору время запроса.

Повторы

  • 5xx, 429 и сетевые ошибки можно повторять с паузой. Для отправки обязательно передавайте clientId, чтобы повтор не создал дубль.
  • 4xx (кроме 409 order_in_progress и 429) повторять без изменений бессмысленно — исправьте запрос.