# Действия пользователя

# Введение

Действия пользователя (англ. «action») — это отдельный процесс проверок, который выполняется независимо от основной верификации пользователя и не влияет на её результат. Проверку действий пользователя (actions) можно выбрать в настройках уровня верификации.

Проверку действий пользователя можно запускать при срабатывании определенных событий. Например, в ситуации когда нужно убедиться в том, что именно владелец аккаунта в данный момент пользуется учетной записью. В этом случае запускается действие пользователя «Авторизация по лицу».

Внимание:

Действия пользователя следует инициировать только в тех анкетах, которые успешно прошли проверку и были одобрены (статус «completed: approved»).

В данный момент мы можем предложить вам следующие типы проверок действий пользователя:

  • Авторизация по лицу Для успешного прохождения проверки лицо из селфи (liveness или фото с вебкамеры) должно совпадать с лицом из основной анкеты.
  • Проверка электронной почты
  • Проверка по источникам
  • Прохождение опросника

# Настройка уровня верификации

Чтобы использовать действия пользователя (actions):

  1. В Дешборд откройте страницу «Интеграция SDK», вкладка «Физические лица».
  2. Нажмите «Создать уровень».
  3. В разделе «Общие» в выпадающем списке «Процесс» выберите «Действия».
  4. В разделе «Обязательные настройки» удалите все шаги проверки кроме «Селфи».
  5. В выпадающем списке «Тип действия» выберите тип действия пользователя.
  6. Завершите настройку уровня верификации и сохраните изменения.

Результаты проверки действий пользователя можно получить в анкете пользователя или через вебхуки.

# API-запросы для действий пользователя

Все API-запросы должны быть аутентифицированы, как описано в разделе Начало работы.

# POST Создание действия пользователя

Используйте этот запрос, для того чтобы создать действия пользователя для определенной анкеты.

POST /resources/applicantActions/-/forApplicant/{applicantId}?levelName={levelName}

Параметры запроса

Название Тип Обязательно Описание
applicantId String Да Идентификатор анкеты пользователя.

Query-параметры

Название Тип Обязательно Описание
levelName String Да Идентификатор уровня верификации действия пользователя.

Тело запроса

Название Тип Обязательно Описание
externalActionId String Да Внешний идентификатор действия пользователя (actions).
questionnaires Array Нет Массив с параметрами опросника.
email String Нет Электронная почта пользователя.
phone String Нет Номер телефона пользователя.

Пример

# POST Генерация внешней ссылки WebSDK для действия пользователя

POST /resources/sdkIntegrations/levels/{levelName}/websdkLink?externalUserId={externalUserId}&externalActionId={externalActionId}

Параметры запроса

Название Тип Обязательно Описание
levelName String Да Идентификатор уровня верификации действия пользователя.

Query-параметры

Название Тип Обязательно Описание
externalUserId String Да Внешний идентификатор пользователя – уникальный идентификатор пользователя на вашей стороне. Требуется, если нужно создать ссылку для конкретной анкеты пользователя.
externalActionId String Да Внешний идентификатор действия пользователя. Требуется только для создания ссылки на действие пользователя.
locale String Нет Язык WebSDK в формате ISO 639-1.
ttlInSecs Integer Нет Продолжительность жизни соединения в секундах (по умолчанию — 1800).

Ответ

Название Тип Описание
url String Ссылка на прохождение верификации.

Пример

# POST Добавление изображения в действие пользователя

Этот эндпоинт добавляет изображение к действию пользователя (например, фотографию лица для «Авторизации по лицу»).

POST /resources/applicantActions/{actionId}/images

Параметры запроса

Название Тип Обязательно Описание
actionId String Да Идентификатор действия пользователя.

Вы можете получить идентификатор действия пользователя при создании нового действия или при использовании запроса «GET Получение действий пользователя конкретной анкеты».

Заголовки запроса

Название Тип Значение
Content-Type String multipart/form-data

Тело запроса

Название Тип Обязательно Описание
metadata Object Да Объект, представляющий тип действия пользователя.
content Binary Да Фотография документа.

Поля элемента metadata

Название Тип Обязательно Описание
idDocType String Да Тип документа.
country String Да Трехбуквенный код страны Альфа-3 (например RUS).

Ответ

Если запрос отправлен и обработан правильно, в ответе вы получите JSON-файл с информацией об изображении.

Название Тип Описание
id String Идентификатор объекта изображения.
addedDate Date Дата и время загрузки изображения (UTC).
imageHash String Контрольная сумма файла с изображением.
imageFileName String Название файла с изображением.
resizedImageId String Идентификатор измененного изображения.
mimeType String Медиа-тип изображения.
sigHash String Подписанный хэш изображения.
imageId String Идентификатор изображения.
actualResolution Object Фактическая ширина и высота изображения в пикселях.
answer String Результат проверки изображения. Доступные значения GREEN/YELLOW/RED/ERROR.
idDocDef Object Дополнительная информация о документе/селфи.
reviewResult Object Дополнительная информация о результатах проверки изображения. Пуст, пока не будет завершена проверка действия пользователя.
attemptId String Идентификатор попытки загрузить изображение.

Поля элемента idDocDef

Название Тип Описание
country String Трехбуквенный код страны Альфа-3 (например RUS).
idDocType String Тип документа.
idDocSubType String FRONT_SIDE, BACK_SIDE или null.

Пример

# POST Отправка действия пользователя на проверку

Используйте этот эндпоинт для запроса проверки действий пользователя. Статус проверки действия устанавливается как pending, после чего действие готово к обработке.

POST /resources/applicantActions/{actionId}/review/status/pending

Параметры запроса

Название Тип Обязательно Описание
actionId String Да Идентификатор действия пользователя.

Вы можете получить идентификатор действия пользователя при создании нового действия или при использовании запроса «GET Получение действий пользователя конкретной анкеты».

Пример

# GET Получение результата проверки действий пользователя

GET /resources/applicantActions/{actionId}/one

Параметры запроса

Название Тип Обязательно Описание
actionId String Да Идентификатор действия пользователя.

Вы можете получить идентификатор действия пользователя при создании нового действия или при использовании запроса «GET Получение действий пользователя конкретной анкеты».

Ответ

Название Тип Обязательно Описание
review Object Да Информация о результатах проверки.
checks Array Нет Список проверок, выполненных в рамках этого действия.
images Array Нет Список изображений, относящихся к действию пользователя.

Поля элемента review

Название Тип Обязательно Описание
reviewStatus String Да Статус проверки действия.
reviewResult String Да, по завершении Результат проверки.

Поля элемента reviewResult

Название Тип Обязательно Описание
reviewAnswer String Да Результат проверки GREEN, RED или ERROR.
rejectLabels Array Нет Теги отказа, если есть.

Пример

# GET Получение действий пользователя конкретной анкеты

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

GET /resources/applicantActions/-;applicantId={applicantId}?limit={limit}&offset={offset}&order=-createdAt

Параметры запроса

Название Тип Обязательно Описание
applicantId String Да Идентификатор пользователя.

Query-параметры

Название Тип Обязательно Описание
limit Integer Нет Максимальное число действий пользователя, которые будут в ответе (по умолчанию — 1000).
offset Integer Нет Смещение списка действий пользователя, подлежащих выдаче (по умолчанию — 10).

Ответ

Ответ представляет собой список действий пользователей и их общее количество. В элементе list содержится список действий пользователя, структура которых описана в разделе «GET Получение результата проверки действий пользователя».

Пример

# GET Получение оригинального изображения

GET /resources/applicantActions/{actionId}/images/{imageId}?preview={isPreview}

Тело запроса

Название Тип Обязательно Описание
actionId String Да Идентификатор действия пользователя.
imageId String Да Идентификатор изображения из images[].imageId.

Query-параметры

Название Тип Обязательно Описание
isPreview Boolean Нет Возвращать ли превью изображения (по умолчанию — false).

# Действия пользователя в WebSDK

Инициализируйте WebSDK с externalActionId как это описано в разделах WebSDK и Начало работы.

Генерация токена доступа для действий пользователя:
POST /resources/accessTokens?userId={externalUserId}&externalActionId={externalActionId}&levelName={levelName}

Пример

# Действия пользователя в Android SDK

Инициализируйте Android SDK с externalActionId как это описано в разделах Android SDK и Начало работы.

Совет:

Используйте дополнительное состояние для обработки результата действия пользователя.

При обработке действия «Авторизация по лицу» пользователь сразу попадает на экран FaceScan (Liveness), а после завершения проверки SDK автоматически закрывается.

# Уведомление о результате действий (actions)

Для получения результата действия (actions) и управления процессом действия можно использовать этот обработчик.

Обработчик принимает два параметра:

  • actionId : String — ID действия.
  • answer : String — ответ модуля проверки живости. Возможные значения:
    • GREEN
    • YELLOW
    • RED
    • ERROR
    • null

Обработчик должен вернуть CBRActionResult. Поддерживаются следующие значения:

  • CBRActionResult.Continue — продолжить сценарий действия по умолчанию (показать экран результата и т. д.).
  • CBRActionResult.Cancel — отменить сценарий действия по умолчанию (закрыть SDK без экрана результата).

# Действия пользователя в iOS SDK

Инициализируйте iOS SDK с externalActionId как это описано в разделах iOS SDK и Начало работы.

Действия «Авторизация по лицу» обрабатываются следующим образом:

  • При обработке действия «Авторизация по лицу» пользователь сразу попадает на экран FaceScan (Liveness), а после завершения проверки SDK автоматически закрывается.
  • После завершения процесса свойство sdk.status устанавливается в значение .actionCompleted, а в sdk.actionResult содержится результат последнего выполненного действия.
  • Чтобы определить статус SDK и получить результат действия, можно использовать один из следующих коллбэков: onDidDismiss, dismissHandler или onStatusDidChange.
sdk.onDidDismiss { (sdk) in
			switch sdk.status {
			case .failed:
					print("failReason: [\(sdk.description(for: sdk.failReason))] - \(sdk.verboseStatus)")
			case .actionCompleted:
			// the Face authentication action was performed or cancelled
					if let result = sdk.actionResult {
							print("Face Auth action result: actionId=\(result.actionId) answer=\(result.answer ?? "<none>")")
					} else {
							print("Face Auth action was cancelled")
					}
			default:
					// in case of Face authentication action, the other statuses are not used for now,
					// but you could see them if the user closes the sdk before the level is loaded
					break
			}
}

# Уведомление о результате действий (actions)

Результат действия «Авторизация по лицу» представлен свойством sdk.actionResult, которое включает следующие поля:

Поле Тип Описание
actionId String Идентификатор действия.
answer String Результат проверки действия. Возможные значения: GREEN, RED или ERROR.

Отсутствие sdk.actionResult означает, что пользователь отменил процесс прохождения проверки.

# Обработка результата проверки действия

Для действий «Авторизация по лицу» доступен необязательный обработчик actionResultHandler, который позволяет обработать результат после его получения с сервера. В этот момент пользователь видит экран обработки (Processing).

sdk.actionResultHandler { (sdk, result, onComplete) in
			print("Face Auth action result handler: actionId=\(result.actionId) answer=\(result.answer ?? "<none>")")
			// you are allowed to process the result asynchronously, just don't forget to call `onComplete` when you finish,
			// you could pass `.cancel` to force the user interface to close, or `.continue` to proceed as usual
			onComplete(.continue)
}

# Вебхуки

Типы вебхуков, которые мы отправляем, зависят от настроек в разделе «Панель разработчика».

Название Описание
applicantActionPending Пользователь выполнил всё необходимое, и действие было отправлено в статус ожидания проверки.
applicantActionReviewed Проверка действий пользователя завершена.
applicantActionOnHold Обработка действия пользователя приостановлена по согласованной причине.

Больше информации о вебхуках см. здесь.

Пример полезной нагрузки вебхуков