Skip to content

Гарантированное распознавание паспорта, задействованы верификаторы

parsePassport

Данный метод работает исключительно в режиме асинхронного выполнения. Подробнее, см. асинхронный режим выполнения запросов

Исключительно для данного метода используется не стандартный вызов getAsyncResult, а getResult (подробнее см. getResult)

Тип HTTP запроса: multipart POST

URL вызова: https://api.id-x.org/idx/api2/parsePassport

Параметры:

Параметр Тип Обязательный Описание
accessKey String Да Ключ доступа, выданный при регистрации в Системе IDX
secretKey String Да Секретный ключ, выданный при регистрации в Системе IDX
passport File Да Фото паспорта
number String Нет Номер паспорта
lastName String Нет Фамилия
firstName String Нет Имя
midName String Нет Отчество
gender String Нет Пол
birthDate String Нет Дата рождения в формате ДД.ММ.ГГГГ

Проверка распознает следующие форматы: JPG, JPEG, PNG

Параметры number, lastName, firstName, midName, gender и birthDate не являются обязательными и используются только для сравнения распознанных по фотографии данных с отправленными параметрами

Функция возвращает:

Параметр Тип Обязательный Описание
resultCode Int Да Результат выполнения функции (0 – успешное завершение функции, отличное от 0 значение – ошибка выполнения)
resultMessage String Нет Сообщение об ошибке
operationToken String Нет Уникальный идентификатор операции

Пример вызова:

POST /idx/api2/parsePassport 
Host: api.id-x.org
Content-Type: multipart/form-data; boundary=----
Accept: application/json

------
Content-Disposition: form-data; name="accessKey"

Выданный accessKey
------
Content-Disposition: form-data; name="secretKey"

Выданный secretKey
------
Content-Disposition: form-data; name="passport"; filename="Паспорт.jpg"
Content-Type: image/jpeg

[File data]
------
Content-Disposition: form-data; name="lastName"

Иванов
------

Пример ответа на запрос:

{
    "resultCode": 0,
    "operationToken": "82e9d47328947457353543565349",
    "resultMessage": " "
}

operationToken используется для вызова getResult для получения результата.

getResult

Вызов используется для получения информации о ходе и результате выполнения операции распознавания, запущенной вызовом parsePassport.

Тип HTTP запроса: POST

URL вызова: https://api.id-x.org/idx/api2/getResult

Поддерживаются следующие форматы передачи параметров:

  • JSON, Content-Type: application/json

  • Form submit, Content-Type: application/x-www-form-urlencoded

Параметры:

Параметр Тип Обязательный Описание
accessKey String Да Ключ доступа, выданный при регистрации в Системе IDX
secretKey String Да Секретный ключ, выданный при регистрации в Системе IDX
operationToken String Да Токен операции, полученный вызовом parsePassport

Функция возвращает:

Параметр Тип Обязательный Описание
resultCode Integer Да Результат выполнения функции (0 – успешное завершение функции, отличное от 0 значение – ошибка выполнения)
resultMessage String Нет Сообщение об ошибке
operationToken String Нет Токен операции
startMoment String Нет Время начала обработки документа (UTC), формат «ДД.ММ.ГГГГ ЧЧ:ММ:СС»
stopMoment String Нет Время окончания обработки документа (UTC), формат «ДД.ММ.ГГГГ ЧЧ:ММ:СС»
state String Нет Статус выполнения операции. Подробнее см. статус выполнения операции
document Document Нет Объект, содержащий распознанные поля документа. Подробнее см. объект Document
filters Filters Нет Объект, содержащий пройденные фильтры. Подробнее см. объект Filters
validation Validation Нет Объект, содержащий статусы валидации документа. Подробнее см. объект Validation
comparison Comparison Нет Объект, содержащий результаты сравнения переданных и распознанных значений. Подробнее см. объект Comparison

Пример вызова:

POST /idx/api2/getResult
Host: api.id-x.org
Content-Type: application/json
Accept: application/json

{
    "accessKey": "выданный accessKey",
    "secretKey": "выданный secretKey",
    "operationToken":  "asdh347891h4y2uiwesdhj"
}

Пример ответа, если операция не завершена:

{
    "resultCode": 0,
    "resultMessage": " ",
    "operationToken": "asdh347891h4y2uiwesdhj",
    "state": " WAIT_PROCESSING",
    "startMoment": "29.11.2017 19:07:24"
}

Пример успешного ответа:

{
    "resultCode": 0,
    "operationToken": "8a8ec94ab432b83462330a0e8a2ade6bc",
    "state": "COMPLETE",
    "startMoment": "29.11.2017 16:07:24",
    "stopMoment": "29.11.2017 16:17:41",
    "document": {*объект Document*},
    "filters": {*объект Filters*},
    "validation": {*объект Validation*},
    "comparison": {*объект Comparison*}
}

Пример неуспешного ответа:

{
    "resultCode": 0,
    "resultMessage": " ",
    "operationToken": "asdh347891h4y2uiwesdhj",
    "state": "DECLINE",
    "startMoment": "29.11.2017 19:07:24",
    "stopMoment": "29.11.2017 19:17:41"
}

Статус выполнения операции

В данном разделе представлены значения, которые могут возвращаться в качестве значений атрибута «Статус выполнения операции» (state):

Значение Описание
PROCESSING, AUTO_PROCESSING запрос обрабатывается
WAIT, WAIT_PROCESSING запрос ожидает обработки
COMPLETE обработка завершена
ERROR обработка завершилась ошибкой
DECLINE запрос был отклонен в ручном режиме

Объект Document

Объект Document описывает поля документа, которые были получены в результате операции распознавания:

Параметр Тип Описание
number String Номер паспорта
lastName String Фамилия
firstName String Имя
midName String Отчество
gender String Пол
birthDate String Дата рождения. Формат «ДД.ММ.ГГГГ»
birthPlace String Место рождения
issueDate String Дата выдачи документа. Формат «ДД.ММ.ГГГГ»
issuePlace String Кем выдан документ
issueDivision String Код подразделения

Степень заполнения полей зависит от качества предоставленного на распознавание фото/скана документа. Нераспознанные поля либо возвращаются с пустыми значениями, либо исключаются из выдачи.

Пример объекта Document в формате json:

{
    "number": "1234567890",
    "lastName": "ИВАНОВ",
    "firstName": "ИВАН",
    "midName": "ИВАНОВИЧ",
    "birthDate": "01.01.1970",
    "gender": "МУЖ",
    "birthPlace": "ГОР. МОСКВА",
    "issueDate": "22.11.2001",
    "issuePlace": "ОВД \"ХОРОШЕВСКИЙ\" ГОР. МОСКВЫ",
    "issueDivision": "777-111"
}

Объект Filters

Данный объект описывает результаты обработки графического файла, его поля:

Атрибут Тип Описание
quality String Оценка качества документа (TRUE, если качество документа удовлетворяет необходимым условиям для распознавания, FALSE, если качество документа неудовлетворительное)
frames String Признак обнаружения границ документа (TRUE, если найдены границы документа)
face String Признак обнаружения лица на изображении (TRUE, если найдено лицо, FALSE, если лицо не найдено)
color String Признак цветного изображения (TRUE, если изображение цветное, FALSE, если изображение черно-белое)

Пример объекта Filters в json-формате:

    {
        "quality": "TRUE",
        "face": "TRUE",
        "color": "TRUE",
        "frames": "FALSE"
    }

Объект Validation

Объект Validation описывает статусы проверки документов, его атрибуты:

Атрибут Тип Описание
validationScore Number Общий балл валидации от 1 до 7. Чем ниже балл, тем больше вероятность подделки или модификации паспорта
validationFms String Результат проверки по базе недействительных паспортов ФМС (TRUE, если паспорт не числится среди недействительных, FALSE, если паспорт недействителен)
validationBlankDate String Соответствие даты бланка паспорта дате выдачи (TRUE, если дата бланка паспорта соответствует дате выдачи, FALSE, если не соответствует)
validationRegion String Результат перекрестного сравнения номера паспорта и кода подразделения (TRUE, если субъект РФ при перекрестном сравнении номера паспорта и кода подразделения совпадает, FALSE, если не совпадает)
validationExpired String Результат проверки срока действия документа (TRUE, если срок действия документа не истёк, FALSE, если документ просрочен)
validationMrzCorrect String Результат проверки машиночитаемой зоны(MRZ) (TRUE, если машиночитаемая зона корректна, FALSE, если машиночитаемая зона некорректна)
validationMrzOcr String Результаты сравнения данных документа и данных в MRZ (TRUE, если данные документа и данные в MRZ совпадают, FALSE, если не совпадают)
validationModified String Признак обнаружения модификаций в документе (TRUE, если не была обнаружена модификация, FALSE, если модификация обнаружена)

В случае, если для какой-либо проверки недостаточно данных, то в соответствующем поле будет значение UNKNOWN.

Пример объекта Validation в формате json:

{
    "validationScore": 7,
    "validationFms": "TRUE",
    "validationBlankDate": "TRUE",
    "validationRegion": "TRUE",
    "validationExpired": "TRUE",
    "validationMrzCorrect": "UNKNOWN",
    "validationMrzOcr": "UNKNOWN",
    "validationModified": "TRUE"
}

Объект Comparison

Объект описывает результаты сравнения распознанных данных документа с переданными для сравнения значения, его поля:

Атрибут Тип Описание
compareNumber String Результат сравнения номера паспорта с распознанным значением
compareLastName String Результат сравнения фамилии
compareFirstName String Результат сравнения имени
compareMidName String Результат сравнения отчества
compareGender String Результат сравнения пола
compareBirthDate String Результат сравнения даты рождения

Возможные значения:

  • TRUE – переданное и распознанное значения совпали

  • TRUE – переданное и распознанное значения не совпали

  • NOT_COMPARED – поле не передавалось для сравнения, сравнение не проводилось

  • NOT_RECOGNIZED – поле не было распознано, сравнение не проводилось

Пример объекта comparison в json:

    {
        "compareNumber": "NOT_COMPARED",
        "compareLastName": "TRUE",
        "compareFirstName": " NOT_COMPARED",
        "compareMidName": " NOT_COMPARED",
        "compareGender": " NOT_COMPARED",
        "compareBirthDate": " NOT_COMPARED"
    }