Обзор
Отчёт о верификации личности содержит все данные, которые Didit извлёк и проверил из официального удостоверения личности государственного образца — паспортов, ID-карт, водительских удостоверений и видов на жительство. Он объединяет распознанные с помощью OCR биографические данные и поля документа, подписанные URL-адреса полученных медиафайлов, разобранные и геолоцированные адресные данные, оценки качества изображений для каждой стороны, содержимое MRZ, детализацию по нескольким системам письма (латиница / нелатиница), а также кросс-сессионные совпадения документов. Отчёт формируется после того, как пользователь завершает шаг захвата документа в сценарии (или вызывает отдельный endpoint для OCR). Didit определяет тип документа, выполняет OCR, проверяет MRZ / штрихкод / QR-код, разбирает адрес, проверяет документ на признаки подделки (съёмка с экрана, распечатанная копия, манипуляции с портретом) и сравнивает документ со всеми другими документами, полученными в вашем приложении. Каждый отчёт имеет собственныйstatus — независимый от общего статуса сессии, — который отражает результат выполнения исключительно шага верификации личности:
- Одобрена — документ распознан, все обязательные поля извлечены, предупреждений, ведущих к отклонению, не возникло.
- На проверке — сработало одно или несколько предупреждений, и ваш сценарий направляет их на проверку.
- Отклонена — сработало условие автоматического отклонения (неподдерживаемый документ, просроченный документ, отсутствует портрет, совпадение со списком блокировки, ошибка адаптивной оценки возраста) либо предупреждение, для которого настроено действие Отклонить (для минимального/максимального возраста по умолчанию задано действие Отклонить).
- Истекла —
expiration_dateдокумента наступила после верификации. Постоянный мониторинг сроков действия в Didit переводит статус отчёта изApprovedвExpired, добавляет предупреждениеDOCUMENT_EXPIREDи переводит одобренную сессию в статус сессииKyc Expired. - Не завершена — пользователь так и не завершил шаг захвата.
Где он отображается в ответах API
Отчёт о верификации личности передаётся внутри массиваid_verifications[] — всегда в виде JSON-массива, а не отдельного объекта id_verification. Несколько записей появляются, когда сценарий выполняет более одного шага с документами (например, основной документ плюс дополнительный).
- API решения по сессии —
GET /v3/session/{sessionId}/decision/возвращаетid_verifications[]на верхнем уровне. См. Получение решения по сессии. - Webhook — payload события
session.status.updatedсодержит тот же массивid_verifications[], как только шаг выдаёт данные. См. Webhook. - Отдельный OCR API — прямая отправка документа возвращает одиночный объект
id_verificationс теми же полями. См. Отдельный OCR API.
Считывайте
response.id_verifications[0] и выполняйте итерацию по массиву. Структура в виде одиночного объекта id_verification существует только в отдельном OCR API — её нет в endpoint решения v3.Схема
Каноническая схема с построчным описанием полей приведена на справочной странице Модели данных. Поля ниже взяты напрямую изIDVerificationV3Serializer, который расширяет IDVerificationV2Serializer и добавляет node_id, массив межсессионных совпадений matches[] и массив Silent Capture document_selfie_face_matches[].
Поля верхнего уровня
issuing_state всегда указывает на уровень страны, а не субнациональный регион. Для любого
типа документа, включая водительские удостоверения, выданные штатом или провинцией
(Австралия, США, Канада), issuing_state и
issuing_state_name содержат страну (например, AUS /
Australia), а не штат. Субнациональное значение, если оно
присутствует в документе, доступно отдельно в parsed_address.region (при отсутствии
этого значения для некоторых типов документов используется extra_fields.state). В обзоре сессии в Business
Console это отображается как строка Регион под полем
Государство выдачи, если данные присутствуют.Водительские удостоверения с двумя номерами (Австралия). На австралийских правах
напечатаны как номер удостоверения, который идентифицирует право на вождение
и остаётся неизменным при замене карты, так и номер карты,
который идентифицирует физическую карту и меняется при каждом перевыпуске. Для таких
удостоверений Didit всегда сопоставляет номера одинаковым образом:
personal_number— номер удостоверенияdocument_number— номер карты
document_number и personal_number, поэтому document_number всегда содержит
идентификатор после завершения верификации. personal_number в любом случае остаётся
номером удостоверения. Для других типов документов document_number остаётся
основным номером, распознанным через OCR, и сам по себе может являться идентификатором владельца.Аргентинский CUIL передаётся в
extra_fields.tax_number, и никогда в personal_number.
В аргентинских документах CUIL — 11-значный идентификатор, по которому осуществляют поиск AFIP, ANSES и бюро кредитных историй, — напечатан в разных местах в зависимости от документа, а на DNI рядом с ним напечатан второй 11-значный номер:- в водительском удостоверении CUIL передаётся в
personal_number; - в DNI поле
personal_numberсодержит número de trámite, который идентифицирует заявление на выдачу карты и не является идентификатором владельца. CUIL на DNI считывается из отдельного напечатанного поля.
personal_number не является надёжным источником CUIL для Аргентины: в случае DNI это
11-значный номер, по которому ни один реестр без предупреждения не вернёт результатов.
Используйте вместо этого extra_fields.tax_number. Didit возвращает его только тогда, когда значение
проходит валидацию как настоящий CUIL (префикс физического лица плюс контрольная цифра по модулю 11)
в виде канонических цифр без разделителей (27111111117), независимо от того, какой аргентинский
документ предоставил владелец. Если CUIL с карты не удалось считать,
ключ отсутствует, а не заполняется числом, не являющимся CUIL — чтобы охватить
таких пользователей, запросите водительское удостоверение в качестве второго документа
либо соберите CUIL через ответ в анкете или metadata сессии.Оценки качества изображения
Поляfront_image_quality_score и back_image_quality_score возвращают:
Оценки проверки живости документа
В полеdocument_liveness передаются результаты проверки живости документа, независимо от того, было ли сгенерировано предупреждение. Предупреждение возникает только тогда, когда оценка опускается ниже одного из порогов сценария, поэтому до появления этого поля одобренный документ вообще не содержал свидетельств проверки живости - данное поле позволяет провести аудит успешно пройденной сессии. Значение равно null, если проверка не выполнялась (например, при методе без использования документов или при сбое модели, зафиксированном в журналах сессии).
Оно содержит по одному объекту для каждого типа мошенничества - portrait_replace, printed_copy и screen_replay - каждый со следующими полями:
bucket равны null. Текущие настройки сценария никогда не используются для реконструкции исторического результата. То же относится и к снимку, оценка документа по которому ещё не завершена.
В Business Console те же три строки отображаются в блоке Проверка живости документа раздела «Верификация личности» сессии.
Совпадения между сессиями
Вmatches[] перечислено до 5 других документов в вашем приложении, совпадающих с данным — одинаковая дата рождения, одинаковая страна выдачи и очень близкое полное имя. Для документов из списка блокировки дополнительно требуется точное совпадение номера документа. Сессии, принадлежащие тому же пользователю (одинаковый vendor_data), исключаются.
Каждая запись содержит session_id, session_number, vendor_data, verification_date, user_details (name, document_type, document_number), status, is_blocklisted (true, если документ был добавлен в ваш список блокировки), api_service и подписанный front_image_url.
Значения статуса
Документы с несколькими системами письма (латиница / нелатиница)
Некоторые документы — кыргызские, казахские, российские, японские, корейские, китайские, арабские, тайские и другие — содержат имя, адрес или место рождения владельца как в латинской транслитерации, так и в местной системе письма. Вы можете выбрать, какая система письма используется для полей верхнего уровня, с помощью настройки сценария (или автономного API)preferred_characters:
Значения в альтернативной системе письма находятся внутри
extra_fields под ключами с соответствующими суффиксами: first_name_non_latin, last_name_non_latin, middle_name_non_latin, full_name_non_latin, address_non_latin, place_of_birth_non_latin (или соответствующие варианты _latin).
Когда появляются поля с альтернативной системой письма
- Только когда обе системы письма действительно присутствуют в документе. Если OCR-поле с номинальной меткой «Surname-Kyrgyz (Cyrillic)» извлекается как текст на латинице (омоглифы или латинская транслитерация), оно не считается нелатинской альтернативой, и этот ключ опускается.
full_name_non_latin(иfull_name_latin) всегда воссоздаются из отдельных компонентов имени, отчества и фамилии, когда доступны оба варианта — исходное поле «Full Name» из OCR игнорируется для обеспечения согласованности.- Если задан параметр
preferred_characters=latin, но документ содержит только нелатинский текст (из-за чего поля верхнего уровня оказываются не на латинице), Didit выполняет транслитерацию и предоставляет поляfirst_name_latin,last_name_latin,middle_name_latin,full_name_latin,place_of_birth_latinиaddress_latinв качестве резервного варианта на латинице.
last_name_non_latin отсутствует, так как в этом образце поле документа «Surname (Cyrillic)» вернуло латинские символы — подлинная нелатинская фамилия для извлечения отсутствовала.
Примеры
Approved — испанское удостоверение личности без замечаний (все поля)
In Review — QR-код не обнаружен на документе, где он должен быть
Сокращено — реальный ответ всегда содержит полный набор полей, показанный выше.Примечание по безопасности
Подписанные URL-адреса, возвращаемые для изображений документов и видео, являются временными — срок их действия ограничен. Относитесь к ним как к кратковременным: своевременно скачивайте то, что необходимо, не кэшируйте их и не публикуйте в открытом доступе. Как правило, вашему приложению требуются толькоstatus, несколько биографических полей и предупреждения — храните как можно меньше данных, чтобы минимизировать объём данных, доступных при возможной утечке в будущем.
Связанные материалы
- Предупреждения при верификации личности — полный перечень значений перечисления предупреждений, их причины и способы устранения.
- Мониторинг документов — как Didit выявляет признаки подделки и дубликаты между сессиями.
- Поддерживаемые документы — список поддерживаемых типов документов и стран.
- Подтипы документов — полный список кодов
document_subtype, включая определение коммерческих водительских прав США в сравнении со стандартными. - Webhook — отслеживайте
session.status.updated, чтобы получать отчёт. - Модели данных — Верификация личности — каноническая схема со всеми полями.