Верификация пользователя
Регистрация
Доступны два способа регистрации пользователя с сохранением изображения лица:
- Через верификацию документов с проверкой соответствия лица пользователя
- Через сохранение лица пользователя без верификации документов
Верификация документов с проверкой соответствия лица пользователя
Эндпоинт POST /api/v2/public/Validation
Создайте запрос на верификацию с указанием обязательной проверки соответствия лиц
Загрузите изображение документа пользователя в base64
Загрузите изображение лица пользователя в base64
Укажите тип предоставляемого документа
Возможные ошибки
Код | Сообщение | Описание |
404 | Validation Request {applicantId} not found | Указанный запрос на верификацию не найден |
400 | Request {applicantId} was already completed | Запрос на верификацию уже был выполнен (не гарантирует успешную регистрацию пользователя в прошлом) |
400 | All available attempts were used for requestId {applicantId} | Попытки на верификацию закончились |
Результаты верификации
Верификация состоит из следующих проверок:
- Проверка подлинности документа
- Проверка документа на срок истечения
- Проверка наличия лица в базе, чтобы избежать повторных регистраций
- Проверка антиспуфинга
Результат верификации может иметь следующие статусы:
Код | Статус | Описание |
0 | Success | Все проверки верификации успешно пройдены |
1 | Fail | Одна или несколько проверок верификации не пройдена |
2 | InvalidData | Запрос на верификацию содержал некорректные или недостающие данные |
3 | Error | Внутренняя ошибка при попытке верификации |
Регистрация пользователя считается успешной, если:
- Успешно пройдены все проверки
- Изображение лица пользователя сохранено в указанную базу данных
- ProfileId лица пользователя сохранен в результате запроса на верификацию
Пример запроса:
{
"model": {
"faceImageBase64": "вставьте изображение лица в base64",
"frontImageBase64": "вставьте изображение документа в base64",
"documentType": 2
},
"applicantId": "вставьте applicantId",
"endeavorId": "вставьте endeavorId"
}
Пример ответа:
Status Code | 200 |
{
"applicantId": "05fcd***",
"attemptId": 1,
"documentType": 1,
"document": {
"privateName": "JOHN SAMPLE",
"abbr3Country": "USA",
"abbrCountry": null,
"address": "111 N 5TH ST",
"city": "COLUMBUS",
"class": "D",
"country": "United States of America",
"dob": "1999-01-12",
"expires": "2024-01-12",
"eyes": "BLUE",
"familyName": null,
"firstName": "JOHN",
"fullName": "JOHN SAMPLE",
"gender": "MALE",
"hair": "BLONDE",
"height": "70",
"id": "12345678",
"idType": "DL",
"issued": "2020-12-30",
"middleName": "SAMPLE",
"postalBox": null,
"state": "OH",
"issuedBy": "OH",
"template": "09",
"weight": "159",
"zip": "12345-6789"
},
"attemptsCount": 5,
"attemptsLeft": 0,
"status": 0,
"validationStatus": {
"expired": false,
"documentIsValid": true,
"faceIsValid": true,
"antiSpoofingIsValid": null,
"qualityIsValid": true
},
"invalidDataErrors": [],
"faceSuccess": true,
"documentSuccess": true,
"documentHasNotExpired": true,
"documentValidationTests": [
{
"displayName": "AddressValidation",
"name": "AddressValidation",
"status": 2,
"statusString": "Skipped",
"reason": "Integration was skipped by flow"
},
{
"displayName": "DMV",
"name": "DMVValidation",
"status": -1,
"statusString": "Disabled",
"reason": "Integration was turned off"
},
{
"displayName": "IdentiFraud",
"name": "IdentiFraudValidation",
"status": -1,
"statusString": "Disabled",
"reason": "Integration was turned off"
}
],
"callBackUrl": null
}
Сохранение лица пользователя без верификации документов
Эндпоинт POST /api/v2/public/Validation
- Создайте запрос на верификацию
- Загрузите изображение лица пользователя
- Укажите DocumentType: 10 (регистрация/авторизация по лицу)
Возможные ошибки:
Код | Сообщение | Описание |
400 | Face image is required | Запрос не содержит фотографии лица |
404 | Validation Request {applicantId} not found | Указанный запрос на верификацию не найден |
Регистрация пользователя считается успешной, если:
- Изображение лица пользователя сохранено в указанную базу данных
- ProfileId лица пользователя сохранен в результате запроса на верификацию
Пример запроса:
{
"model": {
"faceImageBase64": "вставьте изображение лица в base64",
"documentType": 10
},
"applicantId": "вставьте applicantId",
"endeavorId": "вставьте endeavorId (только если включен LRS)"
}
Пример ответа:
Status Code | 200 |
{
"applicantId": "05fcd***",
"attemptId": 1,
"documentType": 10,
"document": null,
"attemptsCount": 5,
"attemptsLeft": 0,
"status": 0,
"validationStatus": {
"expired": null,
"documentIsValid": null,
"faceIsValid": true,
"antiSpoofingIsValid": null,
"qualityIsValid": true
},
"invalidDataErrors": [],
"faceSuccess": true,
"documentSuccess": null,
"documentHasNotExpired": null,
"documentValidationTests": [],
"callBackUrl": null
}
В случае успешной регистрации пользователь будет проинформирован системным сообщением Status Code 200.
Если первая попытка регистрации не оказалась успешной, можно повторить попытку загрузки изображения документа и/или селфи: число попыток регистрации можно настроить в диапазоне от 1 до 5.
Если все попытки регистрации оказались неудачными, пользователь получит сообщение Status Code 400.
Авторизация
Эндпоинт POST /api/v2/public/Validation
- Укажите ID аппликанта
- Загрузите изображение лица пользователя
- Укажите DocumentType: 10 (регистрация/авторизация по лицу)
Возможные ошибки:
Код | Сообщение | Описание |
404 | Validation Request {applicantId} not found | Указанный запрос на верификацию не найден |
400 | Request doesn't have a verified face | Для запроса не проводилась проверка на соответствие лица, либо проверка не подтвердила соответствие |
404 | Face profiles not found | Лица, проходящие порог соответствия лицу пользователя, не найдены |
400 | Found faces don't belong to the applicant | Ни одно из найденных в базе лиц, проходящих порог соответствия лицу пользователя, не принадлежит последнему |
Поиск лица по базе начнётся, если:
- Указанный запрос на верификацию создан и успешно выполнен
- Результат запроса на верификацию содержит ProfileId лица пользователя
В результате поиска будет получен список лиц, проходящих порог соответствия.
Значения по умолчанию:
- Порог соответствия - 90%
- Максимальное количество полученных лиц - 50
Авторизация пользователя считается успешной, если среди найденных в базе данных лиц, проходящих порог соответствия, содержалось то, чей ProfileId совпал с ProfileId пользователя.
Пример запроса:
{
"model": {
"faceImageBase64": "вставьте изображение лица в base64",
"documentType": 10
},
"applicantId": "вставьте applicantId",
"endeavorId": "вставьте endeavorId (только если включен LRS)"
}
Пример ответа:
Status Code | 200 |
{
"applicantId": "05fcd***",
"attemptId": 1,
"documentType": 10,
"document": null,
"attemptsCount": 5,
"attemptsLeft": 0,
"status": 0,
"validationStatus": {
"expired": null,
"documentIsValid": null,
"faceIsValid": true,
"antiSpoofingIsValid": null,
"qualityIsValid": true
},
"invalidDataErrors": [],
"faceSuccess": true,
"documentSuccess": null,
"documentHasNotExpired": null,
"documentValidationTests": [],
"callBackUrl": null
}
Пользователь будет проинформирован об успешной авторизации системным сообщением. После успешного прохождения проверки происходит переход в закрытую часть приложения (сайта) на стороне заказчика.
Регистрация/авторизация по applicantId
Подлежит уточнению.