Обзор
Предупреждения в отчёте NFC отмечают каждое условие, зафиксированное Didit при чтении и валидации чипа. Они попадают в массивwarnings[] для каждого элемента nfc_verifications[] (см. Отчёт NFC) со значением feature, установленным в "NFC". Каждая запись соответствует общей структуре объекта предупреждения: feature, risk, additional_data, log_type, short_description, long_description, node_id.
У каждого предупреждения есть три уровня:
- Код
risk— стабильный идентификатор, с которым можно сопоставлять данные в коде (список кодов приведён ниже). - Тип
log_type— одно из значений:information,warningилиerror. Он зависит от действия, настроенного в вашем сценарии для этого риска: Без действия →information, Проверка →warning, Отклонить →error. - Влияние на решение — то же настроенное действие определяет статус
statusотчёта NFC: действие «Проверка» переводит его вIn Review, а действие «Отклонить» переводит вDeclined.
SKIPPED_NFC_VALIDATION, NFC_CHIP_NOT_VERIFIED, NFC_TRUST_ANCHOR_MISSING, NFC_AND_OCR_DATA_NOT_SAME), а также пять рисков для Japan My Number Card, каждый из которых имеет собственную настройку. Два риска сертификатов (DSC_CERTIFICATE_REVOKED, DSC_CERTIFICATE_EXPIRED) носят исключительно информационный характер: они всегда передаются со значением log_type: "information" и сами по себе никогда не меняют статус NFC.
Полный набор кодов рисков, генерируемых модулем NFC, приведён ниже. Других кодов рисков NFC не существует.
Создаваемые предупреждения
SKIPPED_NFC_VALIDATION и NFC_CHIP_NOT_VERIFIED, а также NFC_TRUST_ANCHOR_MISSING являются взаимоисключающими: предупреждения о верификации чипа оцениваются только в том случае, если считывание чипа не было пропущено. Эти два предупреждения о верификации чипа также являются взаимоисключающими.Точные строки описания
API возвращает следующие точные строкиshort_description и long_description для каждого риска:
Причины пропуска
ПредупрежденияSKIPPED_NFC_VALIDATION содержат additional_data.skip_reason — один из семи стабильных кодов, указывающих точную причину, по которой NFC-проверка не выполнялась (в сессиях, записанных до появления причин пропуска, additional_data может иметь значение null — обрабатывайте это поле как необязательное при обработке исторических решений). Та же классификация представлена на уровне сессии в виде nfc_skip_reason в payload решения — в том числе для сессий, где NFC в принципе не мог выполниться (документ без чипа, веб-интеграция) и, следовательно, отчёт или предупреждение по NFC отсутствуют.
Отчёт по NFC и соответствующее предупреждение
SKIPPED_NFC_VALIDATION создаются только тогда, когда клиент дошёл до шага NFC и явно пропустил его (обычно это USER_SKIPPED или DEVICE_WITHOUT_NFC, если считыватель оказался недоступен в момент сканирования). Если шаг NFC был пропущен ещё до того, как его удалось предложить (документ без чипа, отсутствие сертификата, отсутствие поддержки NFC, нечитаемый ключ MRZ, недоступность JPKI), отчёт и предупреждение не формируются, а причина отображается только в поле уровня сессии nfc_skip_reason, не влияя на статус сессии.Конфигурация
Три настройки сценария определяют маршрутизацию предупреждений NFC. Каждая может принимать значение Без действия, Проверка или Отклонить:- Действие при пропуске NFC (
skip_nfc_action) — применяется кSKIPPED_NFC_VALIDATION. Пропуск предлагается пользователям, только если включён параметрallow_nfc_skip. - Действие при непроверенном чипе (
unverified_chip_action) — применяется как кNFC_CHIP_NOT_VERIFIED, так и кNFC_TRUST_ANCHOR_MISSING, благодаря чему логика изменения статуса сессии остаётся одинаковой, а код риска поясняет причину сбоя проверки. - Действие при несовпадении данных (
inconsistent_data_action) — применяется кNFC_AND_OCR_DATA_NOT_SAME. Это та же настройка несоответствия данных, которая используется в верификации личности.
DSC_CERTIFICATE_* настройка действия отсутствует — они всегда носят исключительно информационный характер. Для рисков, связанных с японской картой My Number Card, предусмотрены ещё пять настроек, перечисленных в следующем разделе.
Японская карта My Number Card (JPKI)
Японская карта My Number Card считывается через JPKI вместо ICAO 9303 (chip_protocol: "jpki"), поэтому описанные выше риски ICAO к ней никогда не применяются. Вместо этого при её считывании могут возникнуть следующие пять рисков, для каждого из которых в узле NFC предусмотрена отдельная настройка:
Пропуск считывания карты My Number Card вызывает
SKIPPED_NFC_VALIDATION и обрабатывается в соответствии с skip_nfc_action, как и любой другой чип. Подробнее о процессе считывания см. в разделе Японская карта My Number Card (JPKI).
Примеры
На проверке — чип не удалось верифицировать
NFC_CHIP_NOT_VERIFIED содержит log_type: "warning", а статус NFC-отчёта имеет значение In Review. Запись об истекшем DSC носит чисто информационный характер.
Отклонена — несоответствие между чипом и OCR
log_type: "error", а статус NFC-отчёта имеет значение Declined. Обратите внимание, что ocr_mrz представляет собой массив строк MRZ, тогда как nfc_mrz является единой объединённой строкой MRZ с чипа.
На проверке: My Number Card без ответа об отзыве
jpki_revocation_unchecked_action сохраняет значение по умолчанию, Review, поэтому предупреждение содержит log_type: "warning", а статус NFC-отчёта имеет значение In Review. Сама карта была подтверждена: и jpki.chain_valid, и jpki.signature_valid имеют значение true.
Типы предупреждений
Каждому риску присваивается уровень критичности в зависимости от конфигурации вашего приложения. Существует три уровня критичности:Связанные разделы
- NFC-отчёт — полная схема отчёта и статусы.
- webhook —
status.updatedсрабатывает при изменении статуса сессии; payload решения (включая предупреждения NFC) прикрепляется, когда сессия переходит в статус Approved, Declined, In Review или Abandoned. - Модели данных — NFC-верификация — каноническая схема с описанием каждого поля.
- Модели данных — Объект предупреждения — структура каждой записи в
warnings[].