Гарантированное распознавание паспорта, задействованы верификаторы¶
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"
}