Верификация пользователя
Регистрация
Доступны два способа регистрации пользователя с сохранением изображения лица:
- Через верификацию документов с проверкой соответствия лица пользователя.
- Через сохранение лица пользователя без верификации документов.
Возможные ошибки
Список распространенных ошибок регистрации и авторизации
HTTP код | Сообщение | Описание | Код |
400 | Request "validationRequest.Id" was already completed | Попытка регистрации зарегистрированного аппликанта | 120036 |
400 | All available attempts were used for requestId "validationRequest.Id" | Все попытки зарегистрироваться исчерпаны | 120037 |
400 | Face image is empty | Переданное изображение пустое | 120038 |
400 | Graphql error: "error message" | Платформа вернула ошибки в ответ на запрос | 120029 |
400 | Profile search is missing | Попытка поиска профилей на платформе не удалась. | 120039 |
400 | No faces found | Переданное изображение не содержит лиц | 120058 |
400 | Multiple faces found | На изображении несколько лиц | 120059 |
400 | Quality calculation failed | Попытка рассчитать качество в платформе не удалась | 120039 |
400 | Liveness calculation failed | Попытка расчета Liveness не удалась | 120039 |
400 | Request is closed | Попытка регистрации закрытого аппликанта | 120040 |
400 | This document type is not supported | У BAF отключена функция «Сохранить профиль лица». | 120041 |
400 | Face image is required | Изображение не было передано | 120042 |
400 | Applicant doesn't have verified face | Попытка авторизации аппликанта без связанного профиля | 120043 |
400 | Попытка от LRS содержит неверные данные | 120044 | |
400 | Applicant profile not found | Профиль аппликанта не найден на платформе | 120043 |
Верификация документов с проверкой соответствия лица пользователя
Эндпоинт POST /publicapi/api/v2/public/Validation
Создайте запрос на верификацию с указанием обязательной проверки соответствия лиц.
Загрузите изображение документа пользователя в base64.
Загрузите изображение лица пользователя в base64.
Укажите тип предоставляемого документа.
Результаты верификации
Верификация состоит из следующих проверок:
- Проверка подлинности документа.
- Проверка документа на срок истечения.
- Проверка наличия лица в базе, чтобы избежать повторных регистраций.
- Проверка антиспуфинга.
Результат верификации может иметь следующие статусы:
Код | Статус | Описание |
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,
"livenessReflectionIsValid": null,
"hasBeenBlackListed": false
},
"invalidDataErrors": [],
"validations": {
"liveness": {
"verdict": true,
"details": [
{
"name": "FaceLiveness",
"verdict": true,
"score": 99
}
]
},
"quality": {
"verdict": true,
"details": [
{
"name": "FaceQuality",
"verdict": true,
"score": 53
}
]
},
"matching": {
"verdict": true,
"details": [
{
"name": "FaceMatching",
"verdict": true,
"score": 0
}
]
},
"motionControl": null
},
"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 /publicapi/api/v2/public/Validation
- Создайте запрос на верификацию.
- Загрузите изображение лица пользователя.
- Укажите DocumentType: 10 (регистрация/авторизация по лицу).
Регистрация пользователя считается успешной, если:
- Изображение лица пользователя сохранено в указанную базу данных.
- 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,
"livenessReflectionIsValid": true,
"hasBeenBlackListed": false
},
"invalidDataErrors": [],
"validations": {
"liveness": {
"verdict": true,
"details": [
{
"name": "FaceLiveness",
"verdict": true,
"score": 99
}
]
},
"quality": {
"verdict": true,
"details": [
{
"name": "FaceQuality",
"verdict": true,
"score": 53
}
]
},
"matching": {
"verdict": true,
"details": [
{
"name": "FaceMatching",
"verdict": true,
"score": 0
}
]
},
"motionControl": null
},
"faceSuccess": true,
"documentSuccess": null,
"documentHasNotExpired": null,
"documentValidationTests": [],
"callBackUrl": null
}
В случае успешной регистрации пользователь будет проинформирован системным сообщением Status Code 200.
Если первая попытка регистрации не оказалась успешной, можно повторить попытку загрузки изображения документа и/или селфи: число попыток регистрации можно настроить в диапазоне от одного до пяти.
Если все попытки регистрации оказались неудачными, пользователь получит сообщение "Status Code 400".
Авторизация
Эндпоинт POST /publicapi/api/v2/public/Validation
- Укажите ID аппликанта.
- Загрузите изображение лица пользователя.
- Укажите DocumentType: 10 (регистрация или авторизация по лицу).
Поиск лица по базе начнётся, если:
- Указанный запрос на верификацию создан и успешно выполнен.
- Результат запроса на верификацию содержит 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,
"livenessReflectionIsValid": true,
"hasBeenBlackListed": false
},
"invalidDataErrors": [],
"validations": {
"liveness": {
"verdict": true,
"details": [
{
"name": "FaceLiveness",
"verdict": true,
"score": 99
}
]
},
"quality": {
"verdict": true,
"details": [
{
"name": "FaceQuality",
"verdict": true,
"score": 53
}
]
},
"matching": {
"verdict": true,
"details": [
{
"name": "FaceMatching",
"verdict": true,
"score": 0
}
]
},
"motionControl": null
},
"faceSuccess": true,
"documentSuccess": null,
"documentHasNotExpired": null,
"documentValidationTests": [],
"callBackUrl": null
}
Пользователь будет проинформирован об успешной авторизации системным сообщением. После успешного прохождения проверки происходит переход в закрытую часть приложения (сайта) на стороне заказчика.
Регистрация/авторизация по applicantId
Подлежит уточнению.