◆ Sapport для разработчиков Справочник API Каталог ошибок OpenAPI
Разделы

Каталог ошибок

Все ошибки приходят в формате application/problem+json (RFC 9457). Ветвите логику по полю code, а не по тексту detail. Поле type каждой ошибки ведёт на эту страницу.

Доступ и ключ

КодHTTPНазваниеКогда приходитЧто делать
integration_inactive401Integration is not activeИнтеграция приостановлена или отозвана, либо её владелец потерял доступ. Ключ верный, дело не в нём.Проверьте интеграцию в кабинете (Настройки → API).
invalid_api_key401Invalid API keyЗаголовка нет, ключ не найден, отозван или истёк. Ответ намеренно одинаков во всех случаях: платформа не подтверждает, что такой ключ существовал.Проверьте ключ; срок действия виден в GET /me (key.expires_at). При необходимости выпустите новый. Автоматически не повторяйте.
wrong_cell401Key belongs to another cellКлюч выпущен в другой ячейке. В ответе есть поле correct_base_url.Используйте базовый адрес из correct_base_url.
feature_not_in_plan403API is not included in the planЛицензия или тариф не включают API (api_access) либо конкретную возможность.Смените тариф или обратитесь в поддержку.
ip_not_allowed403IP address is not allowedЗапрос пришёл с адреса вне списка интеграции.Добавьте адрес в список или вызывайте с разрешённого.
pii_transfer_not_allowed403Personal data transfer is not allowedЯчейка RU: запрошена область с персональными данными, а список IP или страна размещения принимающей системы не разрешают передачу.Разместите принимающую систему в РФ, задайте список IP либо не запрашивайте области с ПДн.
scope_missing403Scope is missingНет нужной области, либо она срезана ролью интеграции, правами владельца или тарифом.Проверьте области в GET /me (key.scopes) и права владельца.
tenant_inactive403Account is not activeУчётная запись арендатора не активна.Обратитесь в поддержку.

Запрос

КодHTTPНазваниеКогда приходитЧто делать
bad_request400Bad requestТело запроса не JSON либо неверный Content-Type или заголовок.Исправьте запрос; повтор без изменений бессмыслен.
idempotency_key_required400Idempotency-Key header is requiredДля этого запроса обязателен заголовок Idempotency-Key.Добавьте заголовок со значением, уникальным для операции.
not_found404Not foundРесурса нет либо он принадлежит другому арендатору (для клиента это одно и то же).Проверьте идентификатор.
method_not_allowed405Method not allowedМетод не поддерживается этим адресом.Проверьте справочник.
idempotency_conflict409Idempotency key was used with a different requestIdempotency-Key уже использован с другим телом запроса.Для нового запроса используйте новый ключ либо повторите прежний запрос.
invalid_state409Invalid stateДействие недопустимо в текущем состоянии ресурса.Перечитайте ресурс и проверьте его состояние.
operation_in_progress409Operation is in progressПараллельный повтор: операция с этим Idempotency-Key ещё выполняется.Подождите Retry-After либо опросите операцию.
precondition_failed412Precondition failedIf-Match не совпал с текущей версией ресурса: его изменили.Перечитайте ресурс и примените правку к актуальной версии.
payload_too_large413Payload too largeТело запроса больше 256 КБ.Уменьшите тело.
validation_failed422Validation failedПараметры не прошли проверку; подробности в errors[].Исправьте запрос по errors[].
precondition_required428Precondition requiredДля изменения не передан If-Match.Передайте версию из последнего чтения.

Деньги и пределы

КодHTTPНазваниеКогда приходитЧто делать
insufficient_funds402Insufficient fundsНа кошельке недостаточно средств для платной операции.Пополните кошелёк.
spend_limit_reached402Spend limit reachedДостигнут предел трат (арендатор или интеграция), предел одновременных платных операций или максимум стоимости одной операции.Дождитесь окна или повысьте предел в кабинете.
wallet_suspended402Wallet is suspendedОбмен остановлен: баланс кошелька арендателя отрицателен или кошелёк заблокирован. Отвечают 402 все маршруты, кроме GET /me и GET /wallet; входящие данные (события, сообщения, лиды) не принимаются, исходящие вебхуки откладываются. В ответе есть topup_url и balance.Пополните кошелёк по topup_url (нужен вход сотрудника с правом пополнения). Обмен возобновится сам в течение 30 секунд после зачисления; состояние видно в GET /wallet. События не теряются: вебхуки доставятся после пополнения.
rate_limited429Too many requestsПревышен предел частоты запросов.Подождите Retry-After секунд и повторите с тем же Idempotency-Key.

Платформа

КодHTTPНазваниеКогда приходитЧто делать
internal_error500Internal errorВнутренняя ошибка платформы. Подробности в ответе не раскрываются.Повторите с паузой; при повторении сообщите request_id в поддержку.
service_unavailable503Service unavailableХранилище пределов или база недоступны, либо API не включён на ячейке: безопасно принять запись нельзя.Повторите с паузой и тем же Idempotency-Key.
upstream_unavailable503Upstream service unavailableНедоступна внешняя зависимость, например языковая модель.Повторите с паузой и тем же Idempotency-Key.