Обзор
Document AI принимает до 3 документов за шаг (PDF или изображение — PDF, JPG, JPEG, PNG, TIFF, WebP). Каждый документ классифицируется по настроенномуdocument_key, считывается мультимодальной языковой моделью с использованием схемы, сформированной на основе ваших определений полей, и проходит криминалистический анализ PDF/EXIF. Для каждого документа сохраняются:
- Извлечённые поля — карта с ключами, заданными в поле
keyконфигурации, и значениями указанного вами типа (text→ string,number→ number,date→YYYY-MM-DD). Поля, которые не удалось распознать, имеют значениеnull. - Обнаруженные QR-коды и штрихкоды — декодированные payload и пиксельные координаты для каждой отрисованной страницы. QR-код, который удалось обнаружить, но не удалось декодировать, всё равно возвращается со значением
parsed_payload: null. - Статус документа —
Approved,In Review,DeclinedилиNot Finished. - Метаданные документа — криминалистический анализ файла, включая признаки наложений или манипуляций.
- Результаты перекрёстной проверки — итог сопоставления имени с верифицированной личностью и любых кастомных перекрёстных проверок полей.
Загрузка документов
Документы загружаются по одному в endpoint Document AI. В размещённой сессии или сценарии с SDK это выполняется автоматически; контракт взаимодействия:
Ответ продвигает сценарий дальше:
next_step переходит дальше DOCUMENT_AI), когда каждая запись из required_document_keys появляется в uploaded_document_keys и ни один документ не остаётся незавершённым.
Отображение в ответах API
ВGET /v3/session/{sessionId}/decision/ данные Document AI выводятся в двух местах как для сессий Проверки пользователей (KYC), так и для Верификации бизнеса (KYB) — массив document_ai_documents[] и PDF-отчёт одинаковы независимо от session_kind:
-
features[]— сводная запись для каждого узла Document AI, используемая для перечисления выполненных функций: -
document_ai_documents[]— полный результат, по одной группе на каждый узел Document AI. Каждая группа содержит объединённыйstatusузла, список загруженных элементовitemsи любые предупрежденияwarnings. Каждый загруженный документ представляет собой элемент с настроенными вами полями (вextracted_data), обнаруженными кодами (вdetected_codes), собственным статусомstatus, определениями полей, криминалистическими даннымиdocument_metadataи результатомcross_check_result.
Пример решения
Для документа типа Подтверждение наличия средств, в котором настроены поляaccount_holder (текст), balance (число), currency (текст) и statement_date (дата):
page_number начинается с 1. Поле position содержит координаты обнаруженного многоугольника, а x, y, width и height задают его ограничивающий прямоугольник. Все координаты указаны в пиксельном пространстве отрисованной страницы с размерами page_width и page_height. Если поддерживаемые коды не найдены, detected_codes представляет собой пустой массив. Элемент со значением parsed_payload: null следует воспринимать исключительно как факт наличия и позиционирования кода, а не как декодированное значение.
Поскольку каждое поле доступно по пути document_ai.<field_key>, вы можете управлять ветвлением и кастомными правилами статусов напрямую на основе значений из extracted_data, включая перекрёстные проверки с данными других шагов, например kyc.full_name, а также с ответами на анкеты.