Перейти к содержимому

Коды ошибок

Код ошибки приходит в поле error.code — это стабильный машиночитаемый идентификатор. Поле error.message содержит текст на языке из Accept-Language; ниже приведены русские тексты. Формат ошибки — в разделе Формат данных.

Коды и тексты в таблице берутся из кода бэкенда при сборке документации.

КодHTTPСообщение (ru)Когда возникает
validation_failed400Проверьте правильность заполнения полейТело, query или параметр пути не прошли проверку. Поля с ошибками — в details.errors.
unauthorized401Требуется вход в системуНет access-токена, он истёк или недействителен, сессия завершена или пользователь заблокирован.
forbidden403Недостаточно прав для этого действияНет нужного доступа. Какого — в details.permission.
not_found404Не найденоНесуществующий путь; POST /v1/orgs с clientId несуществующего клиента.
conflict409Действие конфликтует с текущим состояниемPOST /v1/orgs/{id}/branches, PATCH /v1/orgs/{id}/branches/{branchId}: филиал с таким названием в организации уже есть.
too_many_requests429Слишком много запросов. Повторите позжеПревышен лимит запросов к /v1/auth/* с одного IP или 5 SMS-кодов в час на номер. См. Retry-After.
internal_error500Внутренняя ошибка. Мы уже разбираемсяНепредвиденная ошибка сервера.
invalid_credentials401Неверный номер телефона или парольPOST /v1/auth/login: неверный номер или пароль, либо вход по паролю не включён.
invalid_code401Неверный или просроченный код/v1/auth/verify-phone, /v1/auth/login/sms, /v1/auth/password/reset: код неверный, истёк или уже использован.
code_attempts_exceeded429Слишком много неверных попыток. Запросите новый код через 15 минутКод введён неверно 5 раз. Новые коды на номер не отправляются 15 минут, Retry-After: 900.
code_resend_too_soon429Новый код можно запросить через {seconds} сНовый код запрошен раньше чем через 60 секунд после предыдущего. Секунды — в details.retryAfter и Retry-After.
session_expired401Сессия истекла, войдите сноваPOST /v1/auth/refresh: refresh-токен отсутствует, истёк, уже использован или сессия завершена.
user_blocked403Учётная запись заблокирована/v1/auth/login, /v1/auth/login/sms, /v1/auth/password/reset: учётная запись заблокирована.
phone_taken409Этот номер телефона уже зарегистрированPOST /v1/auth/register, POST /v1/portal/users: номер уже зарегистрирован.
password_mismatch400Пароли не совпадаютНе отдельный код ответа: приходит как details.errors[].message у validation_failed, когда passwordConfirmation не совпадает с password.
current_password_invalid422Текущий пароль указан неверноPUT /v1/me/password: текущий пароль не передан или неверен.
password_required422Сначала задайте парольPATCH /v1/me, POST /v1/portal/users, PATCH /v1/portal/users/{id}: способ входа password без заданного пароля.
invalid_phone—Неверный номер телефонаЗарезервирован, сейчас не возвращается: неверный телефон даёт validation_failed с details.errors.
user_not_found404Пользователь не найденМетоды /v1/portal/users/{id}.
role_not_found404Роль не найденаPOST /v1/portal/users/{id}/role-assignments, POST и PATCH /v1/orgs/{id}/members: роли с таким roleId нет.
role_assignment_not_found404Назначение роли не найденоDELETE /v1/portal/users/{id}/role-assignments/{assignmentId}.
role_already_assigned409У пользователя уже есть эта рольPOST /v1/portal/users/{id}/role-assignments: роль уже назначена.
role_scope_mismatch422Эту роль нельзя назначить здесь: роли сотрудников reKassa — только на платформе, роли клиента — только в его организацияхПортал: роль клиента нельзя назначить на уровне платформы. Сотрудники организации: роль не клиентская или принадлежит другому клиенту.
insufficient_rank403Нельзя управлять ролью или пользователем уровнем выше или равным вашемуПортал и сотрудники организации: пользователь или роль того же или более высокого ранга, чем ваш.
permission_not_held403Нельзя выдать доступы, которых нет у вас самихПортал и сотрудники организации: у роли или пользователя есть доступы, которых нет у вас. Список — в details.missing.
cannot_change_own_status422Нельзя заблокировать самого себяPOST /v1/portal/users/{id}/block и /unblock для самого себя.
session_not_found404Сессия не найденаDELETE /v1/me/sessions/{id}: сессии нет или она чужая.
organization_not_found404Организация не найденаМетоды /v1/orgs/{id}/... и POST /v1/portal/orgs/{id}/verification: организации нет.
branch_not_found404Филиал не найденPATCH /v1/orgs/{id}/branches/{branchId}, branchId у сотрудника: в организации нет такого филиала.
tin_taken409Организация с таким ИНН уже зарегистрирована. Запросите доступ у её владельцаPOST /v1/orgs: организация с таким ИНН уже зарегистрирована.
requisites_incomplete422Заполните реквизиты перед отправкой на проверкуPOST /v1/orgs/{id}/verify: не заполнены реквизиты для проверки. Список полей — в details.missing.
verification_state_invalid422Действие недоступно при текущем статусе проверкиPATCH /v1/orgs/{id} на проверке; POST /v1/orgs/{id}/verify не из not_started или needs_action; решение по организации не в pending.
member_not_found404Сотрудник не найден в этой организацииPATCH, DELETE /v1/orgs/{id}/members/{userId} и PUT .../pin: пользователь не сотрудник организации.
member_exists409Этот пользователь уже сотрудник организацииPOST /v1/orgs/{id}/members: пользователь уже сотрудник организации.
cannot_manage_self422Нельзя менять собственную рольPATCH и DELETE /v1/orgs/{id}/members/{userId} для самого себя.
pin_taken409Этот PIN уже занят другим сотрудником организацииPUT /v1/orgs/{id}/members/{userId}/pin: такой PIN уже у другого сотрудника организации.
didox_not_configured503Интеграция с Didox не настроенаАвтозаполнение и договоры, если на сервере не заданы доступы Didox.
didox_unavailable502Didox временно недоступен. Повторите позжеDidox не ответил или отказал во входе: автозаполнение, отправка договора, обновление статуса, удаление черновика.
didox_rejected502Didox отклонил запрос: {reason}Didox отклонил запрос; его текст — в details.reason (например, «Оферта не подписана»). Также PDF больше 10 МБ.
company_not_found404Организация с таким ИНН не найденаGET /v1/orgs/lookup/{tin}: Didox не знает такой ИНН/ПИНФЛ.
contract_not_found404Договор не найден/v1/portal/contracts/{id}/...: договора нет.
contract_state_invalid422Действие недоступно при текущем статусе договораОтправка не из generated; обновление статуса не из draft или signed_by_us; удаление подписанного нами договора.
contract_in_progress409У организации уже есть договор на подписании или заключённый договорPOST /v1/portal/orgs/{id}/contracts: у организации уже есть договор на подписании или заключённый.

Сообщение code_resend_too_soon содержит подстановку: вместо {seconds} приходит число секунд, например «Новый код можно запросить через 37 с».