Справочник API

Справочник

Справочник ошибок

Учитывайте HTTP-статус, error.code и error.numeric_code текущей операции вместе. Числовой код может уточнять причину без изменения исходных HTTP-статуса и code. error.message нужен для диагностики, а не ветвления программы; сохраняйте request_id.

Формат ответа об ошибке

Сопоставляйте HTTP-статус, error.code и error.numeric_code с текущей операцией. Числовой код — строка. Сохраняйте request_id для диагностики: это не ключ идемпотентности и не идентификатор задачи.

request_id
Обязательная строка, созданная сервером для HTTP-запроса; также возвращается в заголовке X-Request-Id. Укажите её при обращении в поддержку.
client_request_id
Необязательная строка: копия допустимого заголовка запроса X-Request-Id. Нужна для сверки на стороне клиента и не заменяет серверный request_id.
error.code
Стабильный машинный код snake_case, сохранённый для совместимости. Учитывайте операцию и HTTP-статус.
error.numeric_code
Строка из пяти цифр, уточняющая причину без изменения прежнего code или HTTP-статуса. Это не глобально уникальный идентификатор операции.
error.message
Английский текст для диагностики. Может содержать исходную причину от провайдера и меняться. Не разбирайте его и не используйте в условной логике.
Пример JSON ошибки
{
  "request_id": "req_example",
  "error": {
    "code": "invalid_request",
    "numeric_code": "10000",
    "message": "Invalid request parameters"
  },
  "client_request_id": "<CLIENT_REQUEST_ID>"
}

400 Bad Request

  • auth_mode_phone_required20019

    При создании аккаунта этот способ требует provider_data.phone.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "auth_mode_phone_required",
        "numeric_code": "20019",
        "message": "Phone number is required for this auth mode"
      }
    }
    
  • create_api_key_failed11101

    Операция отклонена. Проверьте запрос и сохраните request_id.

    Действия и повторы: Перед повторным созданием проверьте список или состояние ресурсов: возможно, первая попытка уже сработала. Устраните причину и сохраните request_id; не создавайте дубликаты автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "create_api_key_failed",
        "numeric_code": "11101",
        "message": "Failed to create API key"
      }
    }
    
  • invalid_conversation_type37000

    type должен быть user, group или channel.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "invalid_conversation_type",
        "numeric_code": "37000",
        "message": "Field 'type' must be one of: user, group, channel"
      }
    }
    
  • invalid_provider30000

    Проверьте идентификатор канала в URL.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "invalid_provider",
        "numeric_code": "30000",
        "message": "Invalid provider parameter"
      }
    }
    
  • invalid_reply_token36006

    Токен цитирования не читается. Передайте data.message.reply_token входящего события без изменений.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "invalid_reply_token",
        "numeric_code": "36006",
        "message": "Invalid or unreadable reply_token"
      }
    }
    
  • invalid_request10000

    Проверьте JSON и обязательные поля.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "invalid_request",
        "numeric_code": "10000",
        "message": "Invalid request parameters"
      }
    }
    
  • invalid_target_workspace11003

    Целевое рабочее пространство в заголовке переопределения пусто или задано неверно. Удалите этот заголовок и используйте API-ключ нужного пространства.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "invalid_target_workspace",
        "numeric_code": "11003",
        "message": "Invalid target workspace"
      }
    }
    
  • provider_invalid_request30001

    Проверьте поля и форматы, специфичные для канала.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "provider_invalid_request",
        "numeric_code": "30001",
        "message": "Provider rejected the request"
      }
    }
    
  • rotate_api_key_failed11103

    Операция отклонена. Проверьте запрос и сохраните request_id.

    Действия и повторы: Перед изменением или ротацией проверьте целевой ключ в текущем рабочем пространстве. Повтор не восстановит отсутствующий ключ. При неизвестном результате ротации безопасно выясните, какие учётные данные действуют, не раскрывая ключи.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "rotate_api_key_failed",
        "numeric_code": "11103",
        "message": "Failed to rotate API key"
      }
    }
    
  • unsupported_action30005

    Действие аккаунта не распознано; используйте документированное действие.

    Действия и повторы: Выберите поддерживаемые канал и действие. Повтор запроса не добавит возможностей и не откроет доступ к бета-функциям.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unsupported_action",
        "numeric_code": "30005",
        "message": "Action not supported"
      }
    }
    
  • unsupported_conversation_type37001

    Канал не поддерживает операцию; выберите доступную в таблице возможностей.

    Действия и повторы: Выберите поддерживаемые канал и действие. Повтор запроса не добавит возможностей и не откроет доступ к бета-функциям.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unsupported_conversation_type",
        "numeric_code": "37001",
        "message": "Operation not supported for this conversation type"
      }
    }
    
  • unsupported_message_type36000

    Используйте поддерживаемый каналом message.type.

    Действия и повторы: Выберите поддерживаемые канал и действие. Повтор запроса не добавит возможностей и не откроет доступ к бета-функциям.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unsupported_message_type",
        "numeric_code": "36000",
        "message": "Message type not supported"
      }
    }
    
  • unsupported_provider_auth_mode20018

    Используйте поддерживаемый каналом auth_mode.

    Действия и повторы: Выберите поддерживаемые канал и действие. Повтор запроса не добавит возможностей и не откроет доступ к бета-функциям.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unsupported_provider_auth_mode",
        "numeric_code": "20018",
        "message": "Auth mode not supported by this provider"
      }
    }
    
  • update_api_key_failed11102

    Операция отклонена. Проверьте запрос и сохраните request_id.

    Действия и повторы: Перед изменением или ротацией проверьте целевой ключ в текущем рабочем пространстве. Повтор не восстановит отсутствующий ключ. При неизвестном результате ротации безопасно выясните, какие учётные данные действуют, не раскрывая ключи.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_api_key_failed",
        "numeric_code": "11102",
        "message": "Failed to update API key"
      }
    }
    
  • update_workspace_failed41001

    Операция отклонена. Проверьте запрос и сохраните request_id.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_workspace_failed",
        "numeric_code": "41001",
        "message": "Failed to update workspace"
      }
    }
    
  • wallet_invalid_request20021

    Проверьте параметры создания с баланса и необязательный заголовок Idempotency-Key.

    Действия и повторы: Исправьте параметры с учётом операции и канала. Повтор неизменённого неверного запроса не устранит ошибку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "wallet_invalid_request",
        "numeric_code": "20021",
        "message": "Invalid wallet account request"
      }
    }
    

401 Unauthorized

  • invalid_api_key11001

    Проверьте правильность и активность ключа API.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "invalid_api_key",
        "numeric_code": "11001",
        "message": "Invalid API key"
      }
    }
    
  • missing_api_key11000

    Добавьте заголовок X-Api-Key.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "missing_api_key",
        "numeric_code": "11000",
        "message": "Missing X-Api-Key header"
      }
    }
    

403 Forbidden

  • beta_feature_not_enabled41002

    Для API звонков и явной подписки на события нужен доступ рабочего пространства к закрытому тестированию.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "beta_feature_not_enabled",
        "numeric_code": "41002",
        "message": "Beta feature not enabled"
      }
    }
    
  • cors_forbidden11009

    Источник, метод или заголовки CORS не разрешены. Проверьте среду вызова.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "cors_forbidden",
        "numeric_code": "11009",
        "message": "CORS preflight request is not allowed"
      }
    }
    
  • post_inaccessible39005

    Публикации и комментарии

    Проверьте аккаунт и только те идентификаторы цели, которые требует этот API. post_not_found подтверждает отсутствие публикации. comment_not_found означает, что целевой комментарий верхнего уровня не найден после проверки, а не что проверены все ответы. post_inaccessible означает недоступность, но не доказывает отсутствие и не указывает причину. Сохраните ошибку и выясните результат перед выбором следующего действия.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "post_inaccessible",
        "numeric_code": "39005",
        "message": "Post is not accessible"
      }
    }
    
  • workspace_override_forbidden11002

    Запрос пытается переопределить рабочее пространство без необходимых прав. Удалите заголовок переопределения и используйте API-ключ нужного рабочего пространства.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "workspace_override_forbidden",
        "numeric_code": "11002",
        "message": "Workspace override is not allowed"
      }
    }
    

404 Not Found

  • account_not_found20020

    Проверьте account_id и используйте X-Api-Key рабочего пространства владельца аккаунта. Текущий ключ не даёт доступа к аккаунту, которого нет в этом пространстве.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "account_not_found",
        "numeric_code": "20020",
        "message": "Account not found"
      }
    }
    
  • account_operation_not_found20029

    Операция отсутствует или относится к другому пространству. Проверьте исходный operation_id и область API Key.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "account_operation_not_found",
        "numeric_code": "20029",
        "message": "Account operation not found"
      }
    }
    
  • call_not_found38003

    Звонки

    Звонок не найден в этом аккаунте и рабочем пространстве.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "call_not_found",
        "numeric_code": "38003",
        "message": "Call not found"
      }
    }
    
  • comment_not_found39001

    Публикации и комментарии

    Проверьте аккаунт и только те идентификаторы цели, которые требует этот API. post_not_found подтверждает отсутствие публикации. comment_not_found означает, что целевой комментарий верхнего уровня не найден после проверки, а не что проверены все ответы. post_inaccessible означает недоступность, но не доказывает отсутствие и не указывает причину. Сохраните ошибку и выясните результат перед выбором следующего действия.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "comment_not_found",
        "numeric_code": "39001",
        "message": "Comment not found"
      }
    }
    
  • contact_not_found35000

    Контакт не найден для этого аккаунта; проверьте идентификатор.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "contact_not_found",
        "numeric_code": "35000",
        "message": "Contact not found"
      }
    }
    
  • conversation_not_found37002

    Канал не нашёл беседу. Проверьте идентификатор и аккаунт.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "conversation_not_found",
        "numeric_code": "37002",
        "message": "Conversation not found"
      }
    }
    
  • group_not_found34004

    Группа не найдена для этого аккаунта; проверьте ID группы.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "group_not_found",
        "numeric_code": "34004",
        "message": "Group not found"
      }
    }
    
  • not_found10001

    Проверьте путь API и HTTP-метод.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "not_found",
        "numeric_code": "10001",
        "message": "Endpoint not found"
      }
    }
    
  • post_not_found39000

    Публикации и комментарии

    Проверьте аккаунт и только те идентификаторы цели, которые требует этот API. post_not_found подтверждает отсутствие публикации. comment_not_found означает, что целевой комментарий верхнего уровня не найден после проверки, а не что проверены все ответы. post_inaccessible означает недоступность, но не доказывает отсутствие и не указывает причину. Сохраните ошибку и выясните результат перед выбором следующего действия.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "post_not_found",
        "numeric_code": "39000",
        "message": "Post not found"
      }
    }
    
  • target_workspace_not_found11004

    Переопределённое рабочее пространство не найдено или недоступно. Проверьте его принадлежность, удалите заголовок переопределения и используйте нужный API-ключ; повторы не дадут доступ.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "target_workspace_not_found",
        "numeric_code": "11004",
        "message": "Target workspace not found"
      }
    }
    

409 Conflict

  • account_allocation_busy20011

    Распределение аккаунта занято; повторите позже.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "account_allocation_busy",
        "numeric_code": "20011",
        "message": "Allocation is busy in the current region; please retry later"
      }
    }
    
  • account_already_authorized20016

    Аккаунт уже авторизован, повторная авторизация этим действием отклонена. Обновите состояние и используйте завершённый результат; не зацикливайте авторизацию или отмену.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "account_already_authorized",
        "numeric_code": "20016",
        "message": "Account is already authorized; re-authentication is not required"
      }
    }
    
  • account_binding_not_found30006

    Нет активной привязки к подключению канала; проверьте состояние аккаунта.

    Действия и повторы: Проверьте авторизацию и runtime-статус, затем выберите refresh, start или reconnect с учётом нужного состояния и возможностей канала. Сбой соединения сам по себе не означает выход из аккаунта. Перед зависимыми операциями подтвердите running.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "account_binding_not_found",
        "numeric_code": "30006",
        "message": "Account is not bound to an available server"
      }
    }
    
  • account_webhook_already_exists40008

    Webhook-эндпоинты

    Запросите отдельные endpoint аккаунта с account_id и обновите существующий active. Для переключения сначала отключите прежний active, затем включите другой. Не повторяйте создание или повторное включение автоматически.

    Действия и повторы: Перед повторной отправкой прочитайте настройки эндпоинта и его привязку к аккаунту. PATCH заменяет настройки: сохраните нужные подписки, подпись и политику повторов. При конфликте active обновите существующий эндпоинт либо деактивируйте его перед включением другого.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "account_webhook_already_exists",
        "numeric_code": "40008",
        "message": "Account already has an active webhook endpoint"
      }
    }
    
  • billing_quote_changed20027

    Цена или база расчёта изменились. Проверьте исходный результат, затем запросите новую цену.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "billing_quote_changed",
        "numeric_code": "20027",
        "message": "Pricing changed; request a new quote"
      }
    }
    
  • billing_quote_expired20026

    Предложение истекло. Перед новым предложением проверьте прежний результат создания.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "billing_quote_expired",
        "numeric_code": "20026",
        "message": "Billing quote expired"
      }
    }
    
  • billing_quote_invalid20025

    Предложение не соответствует пространству или запросу. Проверьте исходный результат, затем запросите подходящее.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "billing_quote_invalid",
        "numeric_code": "20025",
        "message": "Billing quote does not match this request"
      }
    }
    
  • call_already_active38000

    Звонки

    У аккаунта уже есть активный управляемый звонок. Проверьте известный звонок и цель действия; эта ошибка сама по себе не требует завершать звонок или постоянно повторять тот же неудачный запрос.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "call_already_active",
        "numeric_code": "38000",
        "message": "Account already has an active call"
      }
    }
    
  • duplicate_provider_account20015

    Эта учётная запись канала уже привязана к другому аккаунту пространства.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "duplicate_provider_account",
        "numeric_code": "20015",
        "message": "A provider account with the same identity already exists in this workspace"
      }
    }
    
  • no_allocatable_server20013

    В регионе нет свободной ёмкости; запросите доступные регионы.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "no_allocatable_server",
        "numeric_code": "20013",
        "message": "No allocatable server in the current region"
      }
    }
    
  • provider_account_mismatch20017

    Идентификатор канала в запросе не совпадает с привязкой аккаунта.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "provider_account_mismatch",
        "numeric_code": "20017",
        "message": "Authenticated provider account does not match the bound account; re-scan with the original account"
      }
    }
    
  • provider_not_ready30009

    Подключение не готово. Перед повтором проверьте авторизацию и runtime_status.

    Действия и повторы: Проверьте авторизацию и runtime-статус, затем выберите refresh, start или reconnect с учётом нужного состояния и возможностей канала. Сбой соединения сам по себе не означает выход из аккаунта. Перед зависимыми операциями подтвердите running.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "provider_not_ready",
        "numeric_code": "30009",
        "message": "Provider client is not ready"
      }
    }
    
  • wallet_account_creation_in_progress20030

    В этом пространстве уже создаётся аккаунт с баланса. Дождитесь завершения и повторите запрос.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "wallet_account_creation_in_progress",
        "numeric_code": "20030",
        "message": "Account creation is in progress; please wait"
      }
    }
    
  • wallet_idempotency_conflict20024

    Ключ идемпотентности связан с другими параметрами. Сначала проверьте исходную операцию.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "wallet_idempotency_conflict",
        "numeric_code": "20024",
        "message": "Idempotency key was used for a different request"
      }
    }
    
  • wallet_insufficient_funds20023

    Баланса недостаточно. Владелец может пополнить кошелёк и проверить исходный запрос.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "wallet_insufficient_funds",
        "numeric_code": "20023",
        "message": "Insufficient wallet balance"
      }
    }
    
  • wallet_workspace_disabled20022

    Новые покупки с баланса отключены; существующие операции не считаются отменёнными.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "wallet_workspace_disabled",
        "numeric_code": "20022",
        "message": "New wallet purchases are disabled"
      }
    }
    
  • workspace_account_quota_exceeded20014

    Достигнут лимит аккаунтов для сообщений; проверьте квоту и использование.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "workspace_account_quota_exceeded",
        "numeric_code": "20014",
        "message": "Workspace account quota exceeded"
      }
    }
    

422 Unprocessable Entity

  • contact_not_found35000

    GET /contacts/info вернул Conversation not found. Проверьте идентификатор цели и аккаунт запроса.

    Действия и повторы: Проверьте идентификатор, принадлежность ресурса и текущее рабочее пространство. Не повторяйте запрос автоматически, считая подтверждённое отсутствие или недоступность временным сбоем сервиса.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "contact_not_found",
        "numeric_code": "35000",
        "message": "Conversation not found"
      }
    }
    

500 Internal Server Error

  • block_contact_failed35005

    Заблокировать контакт: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "block_contact_failed",
        "numeric_code": "35005",
        "message": "Failed to block contact"
      }
    }
    
  • call_control_failed38004

    Звонки

    Не удалось получить состояние звонка или завершить его. Проверьте текущую операцию и состояние звонка.

    Действия и повторы: Перед созданием или завершением звонка запросите управляемый звонок и его call_id/state. preparing не означает набор номера или ответ; ended и failed — конечные состояния. Сам по себе failed не требует повторного завершения.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "call_control_failed",
        "numeric_code": "38004",
        "message": "Failed to control call"
      }
    }
    
  • create_account_failed20002

    Создать аккаунт: создание ресурса завершилось ошибкой или его результат не подтверждён.

    Действия и повторы: Перед повторным созданием проверьте список или состояние ресурсов: возможно, первая попытка уже сработала. Устраните причину и сохраните request_id; не создавайте дубликаты автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "create_account_failed",
        "numeric_code": "20002",
        "message": "Failed to create account"
      }
    }
    
  • create_call_failed38002

    Звонки

    Создать звонок: создание ресурса завершилось ошибкой или его результат не подтверждён.

    Действия и повторы: Перед повторным созданием проверьте список или состояние ресурсов: возможно, первая попытка уже сработала. Устраните причину и сохраните request_id; не создавайте дубликаты автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "create_call_failed",
        "numeric_code": "38002",
        "message": "Failed to create call"
      }
    }
    
  • create_contact_failed35003

    Добавить контакт: создание ресурса завершилось ошибкой или его результат не подтверждён.

    Действия и повторы: Перед повторным созданием проверьте список или состояние ресурсов: возможно, первая попытка уже сработала. Устраните причину и сохраните request_id; не создавайте дубликаты автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "create_contact_failed",
        "numeric_code": "35003",
        "message": "Failed to create contact"
      }
    }
    
  • create_group_failed34002

    Создание группы: создание ресурса завершилось ошибкой или его результат не подтверждён.

    Действия и повторы: Перед повторным созданием проверьте список или состояние ресурсов: возможно, первая попытка уже сработала. Устраните причину и сохраните request_id; не создавайте дубликаты автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "create_group_failed",
        "numeric_code": "34002",
        "message": "Failed to create group"
      }
    }
    
  • create_webhook_endpoint_failed40001

    Создать Webhook-эндпоинт: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторной отправкой прочитайте настройки эндпоинта и его привязку к аккаунту. PATCH заменяет настройки: сохраните нужные подписки, подпись и политику повторов. При конфликте active обновите существующий эндпоинт либо деактивируйте его перед включением другого.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "create_webhook_endpoint_failed",
        "numeric_code": "40001",
        "message": "Failed to create webhook endpoint"
      }
    }
    
  • deactivate_webhook_endpoint_failed40004

    Деактивировать Webhook-эндпоинт: остановка или деактивация не подтверждена; при восстановлении учитывайте намерение остановить ресурс.

    Действия и повторы: Проверьте, вступила ли в силу остановка или деактивация. Не запускайте и не переподключайте ресурс, который хотели остановить.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "deactivate_webhook_endpoint_failed",
        "numeric_code": "40004",
        "message": "Failed to deactivate webhook endpoint"
      }
    }
    
  • delete_account_failed20004

    Удалить аккаунт: результат удаления не подтверждён.

    Действия и повторы: Проверьте, не удалён ли ресурс уже, и затем решайте, нужен ли повтор. Сохраните request_id и обрабатывайте успешный ответ согласно документации этого эндпоинта.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "delete_account_failed",
        "numeric_code": "20004",
        "message": "Failed to delete account"
      }
    }
    
  • delete_label_failed37014

    Удалить метку: результат удаления не подтверждён.

    Действия и повторы: Проверьте, не удалён ли ресурс уже, и затем решайте, нужен ли повтор. Сохраните request_id и обрабатывайте успешный ответ согласно документации этого эндпоинта.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "delete_label_failed",
        "numeric_code": "37014",
        "message": "Failed to delete label"
      }
    }
    
  • delete_webhook_endpoint_failed40005

    Удалить Webhook-эндпоинт: результат удаления не подтверждён.

    Действия и повторы: Проверьте, не удалён ли ресурс уже, и затем решайте, нужен ли повтор. Сохраните request_id и обрабатывайте успешный ответ согласно документации этого эндпоинта.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "delete_webhook_endpoint_failed",
        "numeric_code": "40005",
        "message": "Failed to delete webhook endpoint"
      }
    }
    
  • edit_message_failed36005

    Редактировать сообщение: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "edit_message_failed",
        "numeric_code": "36005",
        "message": "Failed to edit message"
      }
    }
    
  • get_account_failed20001

    Получить аккаунт: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_account_failed",
        "numeric_code": "20001",
        "message": "Failed to get account"
      }
    }
    
  • get_auth_state_failed20006

    Состояние аутентификации: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_auth_state_failed",
        "numeric_code": "20006",
        "message": "Failed to get account auth state"
      }
    }
    
  • get_contact_failed35002

    Получить контакт: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_contact_failed",
        "numeric_code": "35002",
        "message": "Failed to get contact"
      }
    }
    
  • get_contact_membership_failed35004

    Проверить наличие контакта: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_contact_membership_failed",
        "numeric_code": "35004",
        "message": "Failed to get contact membership"
      }
    }
    
  • get_conversation_failed37004

    Детали беседы: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_conversation_failed",
        "numeric_code": "37004",
        "message": "Failed to get conversation"
      }
    }
    
  • get_group_failed34001

    Получение сведений о группе: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_group_failed",
        "numeric_code": "34001",
        "message": "Failed to get group"
      }
    }
    
  • get_group_invite_code_failed34010

    Пригласительная ссылка группы: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_group_invite_code_failed",
        "numeric_code": "34010",
        "message": "Failed to get group invite code"
      }
    }
    
  • get_session_failed20005

    Чтение текущей сессии аккаунта: сервис не смог загрузить сессию.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_session_failed",
        "numeric_code": "20005",
        "message": "Failed to get account session"
      }
    }
    
  • get_webhook_endpoint_failed40002

    Получить Webhook-эндпоинт: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_webhook_endpoint_failed",
        "numeric_code": "40002",
        "message": "Failed to get webhook endpoint"
      }
    }
    
  • get_workspace_failed41000

    Получить текущий workspace: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_workspace_failed",
        "numeric_code": "41000",
        "message": "Failed to get workspace"
      }
    }
    
  • leave_group_failed34003

    Выход из группы: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "leave_group_failed",
        "numeric_code": "34003",
        "message": "Failed to leave group"
      }
    }
    
  • list_accounts_failed20000

    Список аккаунтов: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_accounts_failed",
        "numeric_code": "20000",
        "message": "Failed to list accounts"
      }
    }
    
  • list_api_keys_failed11100

    Список API-ключей: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_api_keys_failed",
        "numeric_code": "11100",
        "message": "Failed to list API keys"
      }
    }
    
  • list_blocklist_failed35007

    Получить чёрный список: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_blocklist_failed",
        "numeric_code": "35007",
        "message": "Failed to list blocklist"
      }
    }
    
  • list_contacts_failed35001

    Список контактов: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_contacts_failed",
        "numeric_code": "35001",
        "message": "Failed to list contacts"
      }
    }
    
  • list_conversation_labels_failed37012

    Список меток бесед: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_conversation_labels_failed",
        "numeric_code": "37012",
        "message": "Failed to list conversation labels"
      }
    }
    
  • list_conversation_members_failed37005

    Список участников: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_conversation_members_failed",
        "numeric_code": "37005",
        "message": "Failed to list conversation members"
      }
    }
    
  • list_conversations_failed37003

    Список бесед: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_conversations_failed",
        "numeric_code": "37003",
        "message": "Failed to list conversations"
      }
    }
    
  • list_group_join_requests_failed34007

    Заявки на вступление в группу: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_group_join_requests_failed",
        "numeric_code": "34007",
        "message": "Failed to list group join requests"
      }
    }
    
  • list_groups_failed34000

    Список групп: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_groups_failed",
        "numeric_code": "34000",
        "message": "Failed to list groups"
      }
    }
    
  • list_provider_regions_failed30011

    Список регионов провайдера: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_provider_regions_failed",
        "numeric_code": "30011",
        "message": "Failed to list provider regions"
      }
    }
    
  • list_webhook_endpoints_failed40000

    Список Webhook-эндпоинтов: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_webhook_endpoints_failed",
        "numeric_code": "40000",
        "message": "Failed to list webhook endpoints"
      }
    }
    
  • mark_conversation_read_failed37006

    Отметка беседы прочитанной: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "mark_conversation_read_failed",
        "numeric_code": "37006",
        "message": "Failed to mark conversation as read"
      }
    }
    
  • mark_conversation_unread_failed37007

    Отметка беседы непрочитанной: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "mark_conversation_unread_failed",
        "numeric_code": "37007",
        "message": "Failed to mark conversation as unread"
      }
    }
    
  • mute_conversation_failed37008

    Отключение уведомлений беседы: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "mute_conversation_failed",
        "numeric_code": "37008",
        "message": "Failed to mute conversation"
      }
    }
    
  • pin_conversation_failed37010

    Закрепить беседу: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "pin_conversation_failed",
        "numeric_code": "37010",
        "message": "Failed to pin conversation"
      }
    }
    
  • pin_message_failed36002

    Закрепить / открепить сообщение: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "pin_message_failed",
        "numeric_code": "36002",
        "message": "Failed to pin message"
      }
    }
    
  • react_message_failed36004

    Реакция на сообщение: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "react_message_failed",
        "numeric_code": "36004",
        "message": "Failed to react to message"
      }
    }
    
  • request_conversation_history_failed37016

    Запросить историю диалога: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Проверьте личный чат WhatsApp и якорь before. request_id нужен только для диагностики HTTP. События истории могут прийти после тайм-аута; не повторяйте запрос автоматически и не считайте отсутствие события, пустой или короткий пакет признаком завершения.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "request_conversation_history_failed",
        "numeric_code": "37016",
        "message": "Failed to request conversation history"
      }
    }
    
  • revoke_message_failed36003

    Отозвать сообщение: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "revoke_message_failed",
        "numeric_code": "36003",
        "message": "Failed to revoke message"
      }
    }
    
  • run_action_failed20007

    Действие аккаунта: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "run_action_failed",
        "numeric_code": "20007",
        "message": "Failed to run account action"
      }
    }
    
  • run_auth_action_failed20010

    Действие авторизации: действие авторизации не выполнено; проверьте текущий процесс, не предполагая необходимость начать заново.

    Действия и повторы: Проверьте текущий процесс авторизации и необходимость действий пользователя. Не начинайте новую авторизацию только из-за этого сбоя и не отправляйте действия в истёкшую или завершённую сессию.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "run_auth_action_failed",
        "numeric_code": "20010",
        "message": "Failed to run auth action"
      }
    }
    
  • run_runtime_action_failed20008

    Изменение состояния runtime: действие runtime не выполнено; ответ сам по себе не определяет итоговое состояние соединения.

    Действия и повторы: Проверьте авторизацию и runtime-статус, затем выберите refresh, start или reconnect с учётом нужного состояния и возможностей канала. Сбой соединения сам по себе не означает выход из аккаунта. Перед зависимыми операциями подтвердите running.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "run_runtime_action_failed",
        "numeric_code": "20008",
        "message": "Failed to run runtime action"
      }
    }
    
  • run_session_action_failed20009

    Действие сессии: действие авторизации не выполнено; проверьте текущий процесс, не предполагая необходимость начать заново.

    Действия и повторы: Проверьте текущий процесс авторизации и необходимость действий пользователя. Не начинайте новую авторизацию только из-за этого сбоя и не отправляйте действия в истёкшую или завершённую сессию.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "run_session_action_failed",
        "numeric_code": "20009",
        "message": "Failed to run session action"
      }
    }
    
  • send_message_failed36001

    Не удалось отправить сообщение или подтвердить результат отправки.

    Действия и повторы: Перед повторной отправкой выясните, создано ли исходное сообщение или ответ. После тайм-аута или ошибки результат может быть неизвестен; отсутствие ответа в последующей выборке не доказывает, что записи не было. Не отправляйте повторно автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "send_message_failed",
        "numeric_code": "36001",
        "message": "Failed to send message"
      }
    }
    
  • set_contact_note_failed35008

    Заметка о контакте: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "set_contact_note_failed",
        "numeric_code": "35008",
        "message": "Failed to set contact note"
      }
    }
    
  • set_group_join_approval_mode_failed34009

    Режим одобрения вступления: изменение группы не выполнено; возможны отказ канала или недостаточные права администратора.

    Действия и повторы: Проверьте группу, членство, требуемые права администратора и текущее состояние. Устраните проблемы доступа до повторного изменения; при неизвестном результате сначала выполните сверку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "set_group_join_approval_mode_failed",
        "numeric_code": "34009",
        "message": "Failed to set group join approval mode"
      }
    }
    
  • set_label_members_failed37015

    Добавить / убрать метку на беседах: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "set_label_members_failed",
        "numeric_code": "37015",
        "message": "Failed to set label members"
      }
    }
    
  • unblock_contact_failed35006

    Разблокировать контакт: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unblock_contact_failed",
        "numeric_code": "35006",
        "message": "Failed to unblock contact"
      }
    }
    
  • unmute_conversation_failed37009

    Включение уведомлений беседы: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unmute_conversation_failed",
        "numeric_code": "37009",
        "message": "Failed to unmute conversation"
      }
    }
    
  • unpin_conversation_failed37011

    Открепить беседу: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unpin_conversation_failed",
        "numeric_code": "37011",
        "message": "Failed to unpin conversation"
      }
    }
    
  • update_account_failed20003

    Обновить аккаунт: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_account_failed",
        "numeric_code": "20003",
        "message": "Failed to update account"
      }
    }
    
  • update_group_info_failed34006

    Обновить информацию группы: изменение группы не выполнено; возможны отказ канала или недостаточные права администратора.

    Действия и повторы: Проверьте группу, членство, требуемые права администратора и текущее состояние. Устраните проблемы доступа до повторного изменения; при неизвестном результате сначала выполните сверку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_group_info_failed",
        "numeric_code": "34006",
        "message": "Failed to update group info"
      }
    }
    
  • update_group_join_requests_failed34008

    Одобрить / отклонить заявки: изменение группы не выполнено; возможны отказ канала или недостаточные права администратора.

    Действия и повторы: Проверьте группу, членство, требуемые права администратора и текущее состояние. Устраните проблемы доступа до повторного изменения; при неизвестном результате сначала выполните сверку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_group_join_requests_failed",
        "numeric_code": "34008",
        "message": "Failed to update group join requests"
      }
    }
    
  • update_group_members_failed34005

    Изменение участников группы: изменение группы не выполнено; возможны отказ канала или недостаточные права администратора.

    Действия и повторы: Проверьте группу, членство, требуемые права администратора и текущее состояние. Устраните проблемы доступа до повторного изменения; при неизвестном результате сначала выполните сверку.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_group_members_failed",
        "numeric_code": "34005",
        "message": "Failed to update group members"
      }
    }
    
  • update_webhook_endpoint_failed40003

    Обновить Webhook-эндпоинт: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторной отправкой прочитайте настройки эндпоинта и его привязку к аккаунту. PATCH заменяет настройки: сохраните нужные подписки, подпись и политику повторов. При конфликте active обновите существующий эндпоинт либо деактивируйте его перед включением другого.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "update_webhook_endpoint_failed",
        "numeric_code": "40003",
        "message": "Failed to update webhook endpoint"
      }
    }
    
  • upsert_label_failed37013

    Создать или обновить метку: изменение прервано неклассифицированной ошибкой; итоговое состояние нужно проверить.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "upsert_label_failed",
        "numeric_code": "37013",
        "message": "Failed to upsert label"
      }
    }
    

501 Not Implemented

  • unsupported_by_provider30003

    Канал не поддерживает операцию; выберите доступную в таблице возможностей.

    Действия и повторы: Выберите поддерживаемые канал и действие. Повтор запроса не добавит возможностей и не откроет доступ к бета-функциям.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "unsupported_by_provider",
        "numeric_code": "30003",
        "message": "Operation not supported by this provider"
      }
    }
    

502 Bad Gateway

  • get_post_failed39006

    Публикации и комментарии

    Получить свою публикацию: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "get_post_failed",
        "numeric_code": "39006",
        "message": "Failed to get post"
      }
    }
    
  • list_post_comments_failed39003

    Публикации и комментарии

    Комментарии верхнего уровня: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_post_comments_failed",
        "numeric_code": "39003",
        "message": "Failed to list post comments"
      }
    }
    
  • list_posts_failed39002

    Публикации и комментарии

    Публикации аккаунта: сервис не смог получить достоверный результат запроса.

    Действия и повторы: Сохраните request_id, проверьте идентификаторы и доступ аккаунта. Повторяйте чтение после проверки причины; неудачный запрос не доказывает отсутствие ресурса или пустой результат.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "list_posts_failed",
        "numeric_code": "39002",
        "message": "Failed to list posts"
      }
    }
    
  • provider_adapter_not_found30004

    Сервис канала недоступен. Проверьте состояние или повторите позже; перед повтором записи проверьте предыдущий результат.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "provider_adapter_not_found",
        "numeric_code": "30004",
        "message": "Provider adapter unavailable"
      }
    }
    
  • provider_unavailable30002

    Сервис канала недоступен. Проверьте состояние или повторите позже; перед повтором записи проверьте предыдущий результат.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "provider_unavailable",
        "numeric_code": "30002",
        "message": "Provider service unavailable"
      }
    }
    
  • reply_post_comment_failed39004

    Публикации и комментарии

    Проверьте пост, подтверждённый комментарий верхнего уровня и классификацию ошибки. При неизвестном результате записи сохраните request_id и выясните результат до повтора. Отсутствия ответа в последующем чтении недостаточно для повторной записи.

    Действия и повторы: Перед повторной отправкой выясните, создано ли исходное сообщение или ответ. После тайм-аута или ошибки результат может быть неизвестен; отсутствие ответа в последующей выборке не доказывает, что записи не было. Не отправляйте повторно автоматически.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "reply_post_comment_failed",
        "numeric_code": "39004",
        "message": "Failed to confirm comment reply; result may be unknown, do not automatically retry"
      }
    }
    

503 Service Unavailable

  • allocation_service_unavailable20012

    Сервис распределения временно недоступен; повторите позже.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "allocation_service_unavailable",
        "numeric_code": "20012",
        "message": "Allocation service is temporarily unavailable"
      }
    }
    
  • call_service_unavailable38001

    Звонки

    Сервис звонков недоступен. Проверьте соединение и настройки Provider/Gateway.

    Действия и повторы: Перед созданием или завершением звонка запросите управляемый звонок и его call_id/state. preparing не означает набор номера или ответ; ended и failed — конечные состояния. Сам по себе failed не требует повторного завершения.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "call_service_unavailable",
        "numeric_code": "38001",
        "message": "Call service unavailable"
      }
    }
    
  • internal_auth_not_configured11006

    Сервис сессий авторизации недоступен или не настроен для этого запроса. Обратитесь к оператору сервиса для проверки.

    Действия и повторы: Сохраните request_id и структурированные коды; выясните причину текущего сбоя перед следующим действием.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "internal_auth_not_configured",
        "numeric_code": "11006",
        "message": "Internal endpoint authentication is not configured"
      }
    }
    
  • wallet_unavailable20028

    Данные или настройки кошелька недоступны. Результат записи может быть неизвестен; проверьте исходную операцию.

    Действия и повторы: Перед повторным изменением прочитайте текущее состояние ресурса и выясните результат предыдущей попытки. Сохраните request_id; не повторяйте запись автоматически при неизвестном результате.

    Пример JSON; message зависит от фактической причины
    {
      "request_id": "req_example",
      "error": {
        "code": "wallet_unavailable",
        "numeric_code": "20028",
        "message": "Wallet service is unavailable"
      }
    }
    

Уточняющие числовые причины

Эти причины уточняют ответ, сохраняя исходные HTTP-статус и code операции. Допустимые сочетания указаны в таблице эндпоинта; причина не обязательно применима ко всем операциям и провайдерам.

Для отклонённого кода авторизации опубликованный контракт определяет 30016, но существующие пути могут возвращать provider_invalid_request / 30001. Обрабатывайте оба варианта; не рассчитывайте всегда получить 30016.

События сбоя аккаунта

Некоторые события WhatsApp account.auth.failed содержат необязательный объект data.error с непустыми строками code, numeric_code и message. Читайте их внутри события, отдельно от HTTP-ошибок.

В старых событиях и других сценариях data.error может отсутствовать. Сохраните совместимость с last_error; неизвестные и отсутствующие коды обрабатывайте прежним способом. В списке и деталях аккаунтов этот объект не появляется. Классификация не доказывает постоянную блокировку и не задаёт срок восстановления.

После безопасного принятия события верните 2xx для подтверждения доставки. Сбой аккаунта и сбой HTTP-доставки — разные ситуации: не отклоняйте webhook из-за состояния аккаунта. Правила повторной доставки и воспроизведения остаются прежними; старые события не дополняются.

  • account_auth_failed20100

    Авторизация аккаунта не удалась, точная причина неизвестна. Используйте прежний процесс обработки, не предполагая ограничение или выход из аккаунта.

    Действия и повторы: Проверьте текущий процесс авторизации и необходимость действий пользователя. Не начинайте новую авторизацию только из-за этого сбоя и не отправляйте действия в истёкшую или завершённую сессию.

    Пример JSON; message зависит от фактической причины
    {
      "id": "<EVENT_ID>",
      "type": "account.auth.failed",
      "provider": "whatsapp",
      "account_id": "<ACCOUNT_ID>",
      "occurred_at": "2026-10-16T00:00:00Z",
      "data": {
        "auth_status": "failed",
        "runtime_status": "disconnected",
        "event": {
          "kind": "account_auth_status",
          "auth_status": "failed",
          "runtime_status": "disconnected"
        },
        "error": {
          "code": "account_auth_failed",
          "numeric_code": "20100",
          "message": "Account authentication failed. The specific cause could not be determined."
        }
      }
    }
    
  • account_logged_out20101

    Текущая сессия аккаунта недействительна. Попросите пользователя пройти авторизацию заново поддерживаемым способом канала.

    Действия и повторы: Попросите пользователя заново авторизоваться поддерживаемым способом канала. Затем проверьте runtime и готовность соединения перед возобновлением зависимых операций.

    Пример JSON; message зависит от фактической причины
    {
      "id": "<EVENT_ID>",
      "type": "account.auth.failed",
      "provider": "whatsapp",
      "account_id": "<ACCOUNT_ID>",
      "occurred_at": "2026-10-16T00:00:00Z",
      "data": {
        "auth_status": "failed",
        "runtime_status": "disconnected",
        "event": {
          "kind": "account_auth_status",
          "auth_status": "failed",
          "runtime_status": "disconnected"
        },
        "error": {
          "code": "account_logged_out",
          "numeric_code": "20101",
          "message": "The account session is no longer valid. Reauthorization is required."
        }
      }
    }
    
  • account_restricted20102

    Событие WhatsApp account.auth.failed указывает текущее ограничение входа через data.error.code=account_restricted и numeric_code=20102. Это не доказывает постоянную блокировку и не задаёт срок восстановления.

    Действия и повторы: Остановите автоматическую отправку и повторы. Попросите пользователя проверить и устранить ограничение в официальном приложении WhatsApp. Возобновляйте работу после устранения и необходимой повторной авторизации. Прежний running не доказывает снятие ограничения.

    Пример JSON; message зависит от фактической причины
    {
      "id": "<EVENT_ID>",
      "type": "account.auth.failed",
      "provider": "whatsapp",
      "account_id": "<ACCOUNT_ID>",
      "occurred_at": "2026-10-16T00:00:00Z",
      "data": {
        "auth_status": "failed",
        "runtime_status": "disconnected",
        "event": {
          "kind": "account_auth_status",
          "auth_status": "failed",
          "runtime_status": "disconnected"
        },
        "error": {
          "code": "account_restricted",
          "numeric_code": "20102",
          "message": "Account login is restricted. Check the official WhatsApp app for details."
        }
      }
    }