Признаки подделки
Анализируем файлы с изображениями и выдаём набор признаков подделки
Злоумышленники могут внести изменения в изображения документов. Сервис «Признаки подделки» ищет прямые и косвенные признаки того, что файл был умышленно модифицирован. Сервис не может гарантировать 100% защиты от злоумышленников, но позволяет автоматически отсеивать часть фрода и снижать нагрузку на операторов. Сервис запускает следующие проверки:
Проверка соответствия вида документа ожидаемому.
Определение паспортов, созданных в онлайн-генераторах документов.
Поиск визуальных признаков модификации паспорта в цифровых редакторах. Например, подмена отдельных символов, или фотографии, или целых полей.
Проверка метаданных изображения. По умолчанию метаданные присутствуют в любой фотографии или скане. Отсутствие метаданных — весомый повод отклонить документ. При наличии метаданных сервис проверяет их на внутреннюю непротиворечивость.
Логические проверки полей паспорта. Проверяем наличие всех полей и фотографии: серию-номер, регион по ОКАТО, дату выдачи, дату рождения, код подразделения, пол человека, сверяем визуальные поля с машиночитаемой зоной.
Проверяем источник изображения. Им может быть фотография, скан, скриншот или фотография экрана. Мы советуем отклонять изображения из последних двух источников, но в вашем бизнес-процессе также могут быть недопустимы сканы.
Проверяем цветность изображения. Рекомендуем отклонять чёрно-белые изображения.
Если вам заранее известны данные клиента (например, ФИО и дата рождения), сервис сверит их с написанными в документе с помощью функции сверки с внешним файлом.
Проверки 2, 3 и 5 работают только для главного разворота паспорта РФ
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL
Параметры запроса к API
Вы можете использовать эти параметры при запросе к сервису определения подделок.
Асинхронный запрос
Поведение по умолчанию: async=false
— сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.
Если вам нужен асинхронный режим, укажите в запросе async=true
. В ответ на запрос сервис вернёт в response body
параметр task_id
. Например:
Используйте этот task_id
, чтобы получить результаты классификации в методе result
:
Не забудьте указать в параметре token
ваш ключ лицензии. Рекомендуем запрашивать метод result
в цикле с периодом 1-2 секунды.
Возврат найденных областей изображения
return_crops — boolean
Поведение по умолчанию: return_crops=false
— cервис не возвращает найденные области изображения.
Если вам нужны найденные сервисом области изображения, укажите return_crops=true
. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.
Тегирование запроса
task_tags — string array
Поведение по умолчанию: параметр не используется.
Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags
удобный вам тег: task_tags=тэг
Ожидаемый тип документа
Поведение по умолчанию: doc_type=passport_main
— сервис ожидает изображение с главным разворотом паспорта РФ. Другие допустимые варианты doc_type перечислены в разделе «Типы документов». Для проверки фотографии лица передайте тип not_document.
Остальные параметры запроса не несут практического смысла. Оставили их для совместимости со старой версией метода recognize, который используется внутри сервиса
Перед началом работы с сервисами изучите раздел «Общая информация о сервисах». Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
Тело запроса к API
Изображение
image — string ($binary)
Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.
Сверка полей с внешним файлом
fraud/verify_fields — string ($binary)
С помощью этой функции можно быстро сравнить данные клиента, которые вам известны. Например, ФИО с текстом в самом документе. Для использования функции дополнительно укажите JSON-файл в параметре verify_fields
.
Ниже показан пример JSON-файла для сравнения серии-номера и ФИО из паспорта РФ с данными из документа:
Для составления своего JSON-файла скопируйте наименования полей из API-спецификации.
Функция сверки возвращает результат в атрибут expected_text_missmatch
.
В ответе на запрос к API:
task_id
— string, идентификатор запроса, формат: 32 символа, 16-ричная строкаerror
— string, текстовое описание ошибкиtask_tags
— array[string], теги, если они переданы в параметре task_tagssuccess
— boolean, статус запросаtrue
— запрос выполнен успешноfalse
— запрос не выполнен
status_code
— integer, HTTP-код статуса запроса200 — запрос выполнен успешно
400, 403, 500 и т.д. — расшифрованы в «общей информации о сервисах»
result
input_image
— $string, data URL с MIME-типом JPEG в формате base64 — оригинал изображения, возвращается, если в запросе передатьreturn_crops=true
doc_type_missmatch
— booleantrue
— найденный на изображении тип документа не соответствует ожидаемомуfalse
— найденный на изображении тип документа соответствует ожидаемому
generated_document
— booleantrue
— документ создан в генераторе документовfalse
— документ не создан в генераторе документовnull
— главный разворот Паспорта РФ не найден, поэтому проверка не запускалась
visual_modifications
coords
— массив, в котором перечислены координаты подозрительных областей изображения документа по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правыйresult
— booleantrue
— в файл вносили изменения в графическом редактореfalse
— в файл не вносили изменения в графическом редактореnull
— главный разворот Паспорта РФ не найден, поэтому проверка не запускалась
metadata
— объект, содержащий информацию о метаданныхnot_present
— booleantrue
— в файле отсутствуют метаданныеfalse
— в файле найдены метаданные
inconsistency
— booleantrue
— в метаданных файла найдены противоречияfalse
— противоречия в метаданных файла не найденыnull
— метаданные не найдены, проверка не запускалась
maker
— string, производитель устройстваmodel
— string, модель устройстваsoftware
— string, программное обеспечение, которое последним меняло изображениеdate_time
— объект, содержащий данные со всеми датами и временами, найденными в метаданных изображения:modify_date
— string, дата и время модификации изображениясreate_date
— string, дата и время создания изображенияdate_time_original
— string, оригинальные даты и время создания изображенияgps_date_stamp
— string, дата и время снимка согласно GPS
gps_coords
— объект, содержащий координаты согласно GPS метаданным:latitude_ref
— string, n или s — северная или южная широта, в которой сделан снимокlatitude
— string, широта снимкаlongitude_ref
— string, e или w — восточная или западная долгота, в которой сделан снимокlongitude
— string, долгота снимкаaltitude_ref
— string, 1 или 0 — высота над уровнем моря или абсолютнаяaltitude
— string, высота над уровнем моря
logical_inconsistency
result
— booleantrue
— в данных документа найдены противоречияfalse
— в данных документа противоречия не найденыnull
— главный разворот Паспорта РФ не найден, поэтому проверка не запускалась
series_number_inconsistency
— booleantrue
— серия или номер паспорта на разных страницах не совпадают друг с другомfalse
— серия или номер паспорта на разных страницах совпадают
fake_series_okato
— booleantrue
— серия паспорта содержит несуществующий номер ОКАТОfalse
— серия паспорта содержит допустимый номер ОКАТО
series_mismatch_printing_year
— booleantrue
— серия паспорта выходит за допустимый диапазон отклонения от даты выдачи паспортаfalse
— серия паспорта находится в допустимом диапазоне относительно даты выдачи паспорта
issue_year_mismatch_date_of_birth
— booleantrue
— дата выдачи паспорта находится вне допустимого диапазона относительно даты рождения для действительного паспортаfalse
— дата выдачи паспорта находится в рамках допустимого диапазона относительно даты рождения для действительного паспорта
issue_code_mismatch_issue_authority
— booleantrue
— код подразделения не соответствует полю «Паспорт выдан»false
— код подразделения соответствует полю «Паспорт выдан»
fake_year_of_birth
— booleantrue
— год рождения находится вне допустимого диапазона относительно текущей датыfalse
— год рождения находится в допустимом диапазоне относительно текущей даты
photo_not_found
— booleantrue
— фотография не найденаfalse
— фотография найдена
photo_gender_mismatch
— booleantrue
— пол на фотографии не соответствует тексту в поле «Пол»false
— пол на фотографии соответствует тексту в поле «Пол»
mrz_presence_mismatch_issue_year
— booleantrue
— наличие или отсутствие машиночитаемой зоны паспорта невозможно при такой дате выдачи паспортаfalse
— наличие или отсутствие машиночитаемой зоны паспорта возможно при такой дате выдачи паспорта
visual_field_missing
— booleantrue
— одно или несколько обязательных полей паспорта не найденоfalse
— найдены все поля паспорта
visual_fields_mismatch_mrz
— booleantrue
— данные визуальных полей не совпадают с данными из машиночитаемой зоныfalse
— данные визуальных полей совпадают с данными из машиночитаемой зоны
image_origin
— string, источник изображения, может принимать одно из четырёх значений:photo
— фотографияscan
— сканscreenshot
— скриншотmonitor_photo
— фотография экрана
image_no_color
— booleantrue
— изображение чёрно-белоеfalse
— изображение цветное
expected_text_mismatch
— booleantrue
— данные в документе не совпали с ожидаемымиfalse
— данные в документе совпали с ожидаемымиnull
— проверка не запускалась, выводится в случае, если вы не подали JSON на вход.
Параметры fake
и is_fake_visual
в ответе метода recognize
теперь не отражают результаты проверок на признаки подделки. Мы оставили их для совместимости API