Перейти к основному содержанию
Ответ API Didit сообщает об ошибке HTTP-кодом состояния и, почти всегда, телом в формате JSON. Эта страница описывает, что означает каждый статус, как выглядит тело ответа, какие значения code можно использовать для ветвления логики и какие ошибки безопасно повторять. Сначала опирайтесь на статус, а если code присутствует, то и на него, потому что текст сообщения может измениться.

Коды состояния

Тела ошибок

Тела ошибок не имеют единой структуры, поэтому читайте их осторожно. Формат зависит от семейства endpoint: Ответ 500 может не содержать тела JSON вовсе, поэтому обрабатывайте тело, которое не удаётся разобрать.

Ошибки API-ключа

В течение нескольких минут после удаления приложения API отвечает application_deleted, а затем отклоняет ключ так же, как любой неверный ключ. Не повторяйте попытку: приложение и его ключи удалены. См. Аутентификация API и API-ключи: там описано, как работают ключи и их ограничения.

Недостаточно кредитов

Каждое семейство API сообщает о низком балансе по-своему: При контрактной оплате создание сессии возвращает 403 с "code": "contract_billing_suspended", пока платные сервисы приостановлены для вашей организации. Приложения в песочнице никогда не тарифицируются, поэтому эти проверки для них не выполняются.

Коды ошибок

Значения code стабильны, поэтому по ним можно ветвить логику. Чаще всего они находятся рядом с detail. При верификации через кошелёк цифровой идентификации код является значением error.

Доступ и биллинг

Запросы и идемпотентность

Проверки банка, телефона и рисков

Верификация бизнеса (KYB)

Кошельки цифровой идентификации

Отчёты и кейсы

Электронная подпись

При создании сессии ошибки документа передаются как значение поля, вызвавшего ошибку, со статусом 400, например {"sign": "signature_document_changed"}:

Webhook

Повторные попытки и идемпотентность

Одни ошибки безопасно повторять, а другие нет:
  • 429: дождитесь заголовка Retry-After, затем повторите запрос.
  • 502 и 503: повторяйте с задержкой, если в справочнике эндпоинта указано, что списания не было, как это указано для проверок телефона, электронной почты, банковских данных и рисков.
  • 502 на POST /v3/database-validation/: сначала прочитайте каждый элемент validation_errors, поскольку один только этот статус не означает временного сбоя.
  • 503 при удалении: повторяйте тот же запрос, пока он не вернёт 200.
  • Другие 4xx: сначала исправьте запрос, поскольку тот же запрос завершится с той же ошибкой.
POST /v3/aml/ и верификация кошелька Digital ID принимают заголовок Idempotency-Key длиной до 255 символов. Повторный запрос с тем же ключом и тем же телом возвращает сохранённый ответ, поэтому операция выполняется, а списание производится один раз. Тот же ключ с другим телом возвращает 409, а пока первый запрос ещё выполняется, эндпоинты кошельков возвращают 409 с заголовком Retry-After. POST /v3/session/ не имеет ключа идемпотентности, поэтому, если при создании истёк тайм-аут, получите список своих сессий по полю vendor_data, прежде чем создавать новую.

Связанные материалы

Последнее изменение 7 ноября 2026 г.