kvitera

Идемпотентность, лимиты и ошибки

Повторы запросов и временные сбои.

Idempotency-Key — до 128 символов. В течение 24 часов одинаковый запрос с тем же ключом вернёт прежний результат и не вызовет модель повторно. Изменённое тело, включая имя файла, даёт 409 idempotency_conflict. Ключ ограничен вашим клиентом.

При потере HTTP-ответа повторяйте тот же запрос с тем же ключом. Если сохранённый результат имеет status=failed и вы хотите запустить обработку заново, используйте новый ключ.

Файл — до 15 МБ по умолчанию. Проверка — до 45 секунд плюс время передачи файла. Стандартный лимит клиента — 120 проверок в минуту. Дополнительно сервис ограничивает число одновременно выполняемых проверок; при заполнении слотов возвращает 503 и Retry-After. Асинхронный режим в v1 отсутствует.

HTTPКодЧто делать
401unauthorized / invalid_credentialsПроверить ключ доступа
403tenant_disabled / profile_forbiddenОбратиться к команде Kvitera
404not_foundПроверить идентификатор и клиента
409processingПодождать Retry-After и повторить чтение
409idempotency_conflictИспользовать новый ключ для изменённого запроса
413upload_too_largeУменьшить файл
422validation / unknown_profileИсправить параметры
429rate_limitПодождать указанное в Retry-After число секунд
503overloaded / database_unavailableПовторить позднее

Ошибки API имеют вид {"error":{"code":"...","message":"...","details":{}}}. В завершённом HTTP-запросе технический сбой проверки имеет HTTP 200 и status=failed: коды deadline, ingest_timeout, ingest_unavailable, vlm_unavailable, storage_unavailable, database_unavailable, interrupted. Результат всегда требует review; временный сбой не означает подделку.