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, прежде чем создавать новую.
Связанные материалы
- Ограничение частоты запросов: лимиты, заголовки и тело ответа
429. - Аутентификация API: как передавать ваш ключ.
- Тестирование в песочнице: воспроизведение результатов без реальных данных и списаний.
- Webhook: доставка, повторные попытки и порядок.