Как прочитать результат верификации
Результат сессии - это статус плюс результат по каждой проверке плюс список предупреждений - именно предупреждения объясняют, что произошло на самом деле.
Читайте в таком порядке: сначала общий статус, затем статусы по каждой проверке, затем предупреждения. Только предупреждения объясняют почему - всё остальное лишь говорит что.
Откройте любую сессию в разделе Verifications в бизнес-консоли, и вы увидите одни и те же три уровня - неважно, смотрите ли вы на консоль, тело webhook или ответ API.

- Начните здесь: решение и проверки, которые к нему привели.
- Liveness содержит результат по селфи и оценку сравнения лиц.
- Вкладка документа показывает, что было извлечено и какие поля совпали.
- Events объясняет, как сессия достигла своего текущего статуса.
#Уровень 1 - общий статус
Единый вердикт по сессии: Approved, Declined, In Review и так далее. Именно на него в основном опираются интеграции. Это агрегат: он получается путём объединения результатов всех проверок по правилам, настроенным в вашем воркфлоу, поэтому он никогда не скажет вам, какая именно проверка была ответственна за результат.
#Уровень 2 - результат по каждой проверке
У каждой выполненной проверки свой статус и свои данные. Вот те, что вы будете видеть чаще всего:
| Проверка | На что смотреть |
|---|---|
| Верификация документа | Извлечённые поля (имя, номер документа, даты), тип и страна документа, а также прошла ли проверку MRZ |
| Пассивный / активный liveness | Был ли обнаружен живой человек, и любой сигнал атаки |
| Сравнение лиц 1:1 | Оценка схожести между селфи и фотографией на документе |
| Поиск по лицам 1:N | Совпадает ли это лицо с уже верифицированным пользователем или записью в чёрном списке |
| AML-скрининг | Срабатывания, каждое с оценкой совпадения и оценкой риска |
| Анализ устройства и IP | Страна, сигналы VPN или прокси, заблокированные адреса |
| Подтверждение адреса | Извлечённый адрес и насколько хорошо он совпал с тем, что вы предоставили |
| NFC | Был ли прочитан чип и была ли его подпись выстроена в цепочку до доверенного эмитента |
| Телефон / email | Был ли подтверждён OTP, плюс сигналы риска по номеру или адресу |
Проверка может быть Approved, пока сессия в целом Declined, и наоборот. Это нормально - статус сессии является комбинацией, а не худшим из результатов.
#Уровень 3 - предупреждения
Предупреждения - это уровень, который на самом деле объясняет результат. Каждое из них - конкретный именованный код, привязанный к проверке, которая его подняла, например:
DOCUMENT_EXPIRED- срок действия документа истёк.MRZ_VALIDATION_FAILED- контрольная сумма машиночитаемой зоны не сошлась. Сильный сигнал подделки.LOW_FACE_MATCH_SIMILARITY- селфи и фотография на документе набрали оценку ниже вашего порога.LIVENESS_FACE_ATTACK- во время съёмки селфи была обнаружена атака имитации.POSSIBLE_MATCH_FOUND- AML нашёл кандидата на совпадение, который требует разрешения.NFC_DATA_DOES_NOT_MATCH_OCR- данные с чипа и напечатанные данные расходятся.IP_ADDRESS_IN_BLOCKLIST- соединение пришло с адреса, который вы блокируете.
Когда вы разбираетесь с конкретной сессией, сразу переходите к предупреждениям. Статус говорит вам вывод; предупреждения дают доказательства. Каталог предупреждений по каждой функции документирован в разделе core technology.
#Извлечённые данные и то, что вы ожидали
Если при создании сессии вы передали expected_details - имя, дату рождения, номер документа, которые у вас уже есть, - результат также сообщит, совпал ли с этим документ. Несовпадение здесь обычно указывает на ошибку ввода данных на вашей стороне, а не на поддельный документ, поэтому стоит проверить это, прежде чем кому-либо отказывать.
Извлечённые имена могут быть транслитерированы. Документ на кириллице, арабском или греческом языке даёт имя в латинице, которое может не совпадать с вашими записями посимвольно, даже если это тот же самый человек. Сравнивайте также по номеру документа или дате рождения, прежде чем считать несовпадение имени мошенничеством.
#Результаты в sandbox выглядят немного иначе
В sandbox-сессии консоль помечает разделы с извлечёнными данными меткой Simulated data. Медиафайлы были сняты по-настоящему, но поля и результат получены из выбранного вами сценария, поэтому не стоит делать выводы из самих значений. См. тестирование в sandbox.
#Получение того же самого программно
Тело webhook и GET /v3/session/{id}/decision/ содержат все три уровня в одном объекте decision. Считайте webhook источником истины и опрашивайте API только для сверки - некоторые события, например правки данных, сделанные проверяющим, приходят исключительно через webhook. См. получение результатов через webhook.
#Получение копии для собственных записей
Для аудита и подачи регуляторам скачайте сессию в виде PDF - он включает каждый шаг, извлечённые данные, биометрические оценки, результаты AML и итоговое решение. См. скачивание отчёта о верификации.
