Перейти к основному содержимому

Создание процесса

Этот эндпоинт обрабатывает два варианта использования, которые имеют один и тот же путь, но отличаются параметрами тела запроса, возможностями и полями ответа:

  • Онбординг -- проверяет, кто является пользователем, сравнивая его лицо с базой идентификации Unico (требуются subject.duiType + subject.code).
  • Транзакционный -- проверяет, что это тот же человек из предыдущего процесса, сравнивая лицо с лицом (требуется referenceProcessId ИЛИ массив references с селфи / ID процесса).

Активный вариант использования определяется APIKEY, отправленным в заголовке запроса.

Полный поток интеграции см. в Обзор API.

Эндпоинт

ОкружениеURL
ProductionPOST https://api.id.unico.app/processes/v1
SandboxPOST https://api.id.uat.unico.app/processes/v1

Запрос

Заголовки
ЗаголовокЗначение
AuthorizationBearer <access_token> (см. Аутентификация)
APIKEYПредоставленный API-ключ -- определяет активный вариант использования и включённые возможности.
Content-Typeapplication/json
Параметры тела запроса
ПолеТипОбязательныйОписание
subject.duiTypeintegerдаИдентификатор типа документа. См. значения duiType ниже.
subject.codestringдаЗначение идентификатора в соответствии с subject.duiType. Без точек и дефисов.
subject.namestringнетПолное имя.
subject.genderstringнетM или F.
subject.birthDatestring (ISO 8601)нетДата рождения (YYYY-MM-DD).
subject.emailstringнетАдрес электронной почты.
subject.phonestringнетНомер телефона в формате E.164.
useCasestringнетКонтекст операции, например Onboarding.
subsidiaryIdstringнетИдентификатор филиала — требуется только при наличии нескольких филиалов.
imageBase64stringдаСелфи, захваченное вашим фронтендом, в формате base64.
Значения duiType
СтранаКодОписание
BR1Бразильский CPF
BR5Бразильский паспорт
MX2Мексиканский CURP
AR6Аргентинский паспорт
AR7Аргентинский DNI
US4SSN США
US11Паспорт США
US18Водительское удостоверение США
ID16Индонезийский NIK
NG8Нигерийский NIN
CL9Чилийский RUN
EC10Эквадорский NI
GT12Гватемальский CUI
UY13Уругвайский CI
ZZ15Адрес электронной почты
ZZ17Номер телефона
MX25Мексиканский RFC (физическое лицо)
CO26Колумбийский NIT
PE27Перуанский RUC
CA28Канадский SIN
DK29Датский CPR
GB30Британский номер национального страхования (NINO)
PL31Польский PESEL
SE32Шведский личный номер (PNR)
AT34Австрийский налоговый номер (STNR)
FI35Финский код личной идентификации (HETU)
0Не указано
3Внутренний идентификатор Unico
Требования к изображению
  • Минимальное разрешение: 640 x 480 (стандарт HD)
  • Максимальный размер файла: 800 КБ (рекомендуется сжатие JPEG92)
  • Допустимые форматы: PNG, JPEG, WebP
  • JWT-токены из SDK истекают через 10 минут и могут быть использованы только один раз

Пример

curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"imageBase64": "/9j/4AAQSkZJR..."
}'

Ответы

200 OK
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"unicoId": { "result": "yes" },
"riskLevel": { "result": "inconclusive" },
"idFace": {
"personId": "a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890",
"result": "FOUND"
},
"government": { "serpro": 87 },
"liveness": 1
}
Поля ответа зависят от вашего APIKey

Приведённый выше пример содержит все возможные поля возможностей. В реальном ответе будут только поля для возможностей, включённых в конфигурации вашего APIKey — поля для отключённых возможностей полностью отсутствуют. Свяжитесь с вашим менеджером проекта Unico для включения или изменения возможностей.

ПолеТипОписание
idstring (UUID)Идентификатор процесса. Используйте с Получением процесса для повторных запросов.
statusinteger1 (обработка), 3 (завершён успешно), 5 (ошибка).
unicoId.resultstringyes, no, inconclusive -- см. Проверка личности.
riskLevel.resultstringapproved, reproved, risk-critical, risk-high, inconclusive -- см. возможные значения ниже или Классификация рисков мошенничества.
idFace.resultstringFOUND, NOT_FOUND — см. Идентификатор лица.
idFace.personIdstringСтабильный непрозрачный идентификатор лица. Присутствует только при idFace.result = FOUND.
identityFraudsters.resultstringУстарело. Используйте вместо него riskLevel. Клиенты с текущими интеграциями могут продолжать использовать это поле, согласовывая миграцию с командой проекта.
government.serprointegerОценка сходства Serpro (0--100, -1, -2). Доступно только в Бразилии. См. Результат проверки сходства Serpro.
livenessinteger1 (пройдено), 2 (не пройдено) -- см. Проверка живости.
riskLevel.result — возможные значения
ЗначениеОписание
approvedЭто лицо владельца удостоверения личности, и никаких признаков мошенничества не обнаружено.
reprovedРекомендуется отказ, поскольку обнаружено несколько индикаторов мошенничества.
risk-criticalРекомендуется отказ, однако окончательное решение остаётся за вами. Критический риск означает, что обнаружено не менее 2 веских признаков мошенничества.
risk-highОтказ также рекомендуется, однако решение остаётся за вами. Высокий риск означает, что обнаружен как минимум один весомый признак мошенничества.
inconclusiveВеских признаков мошенничества не обнаружено. Поэтому невозможно сделать однозначный вывод о наличии существенного риска.
информация

Когда unicoId.result = inconclusive и оркестрация Риск-скора активна, процесс может вернуть status: 1 (обработка). Опрашивайте Получение процесса или используйте вебхуки для получения финального результата.

400 Bad Request

Тело запроса содержит ошибки, изображение недействительно или обязательные поля отсутствуют. См. Коды ошибок ниже.

403 Forbidden

Bearer-токен или APIKEY отсутствует, истёк или недействителен. См. Аутентификация.

409 Conflict

Указанный processId уже существует для данного тенанта. См. Коды ошибок ниже.

429 Too Many Requests

Достигнут лимит запросов. Когда ваша система получает ошибку HTTP 429, необходимо реализовать механизмы для предотвращения каскадных сбоев и ухудшения ограничения.

Лучшие практики:

  • Период ожидания (backoff): Немедленно остановите или ограничьте последующие запросы из вашей системы. Не повторяйте неудачные запросы непрерывно в плотном цикле.
  • Очередь и ограничение: Буферизуйте или ставьте в очередь исходящие запросы на вашей стороне для управления потоком трафика перед повторной отправкой.
  • Экспоненциальный backoff с jitter: При повторных попытках увеличивайте время ожидания экспоненциально между попытками (например, 1 с, 2 с, 4 с, 8 с) и добавляйте небольшую случайную задержку ("jitter"), чтобы предотвратить эффект стада, когда все поставленные в очередь запросы повторяются в один и тот же момент.
предупреждение

Непрерывные запросы к эндпоинту с ограничением без отступления могут продлить период ограничения и серьёзно повлиять на операционную пропускную способность вашей системы. Правильное ограничение запросов на вашей стороне обеспечивает более плавную и устойчивую интеграцию.

Для получения информации о лимитах по умолчанию, увеличении запросов и дополнительных деталях см. Лимиты запросов.

Коды ошибок

КодСообщениеОписание
20900O base64 informado não é válido.Параметр base64 недействителен. Возможные причины: это не изображение или попытка инъекции.
20807A imagem precisa estar no padrão HD ou possuir uma resolução superior a 640 x 480.Разрешение загруженного изображения слишком низкое.
20513The referenced process was not found.referenceProcessId указывает на процесс, который не существует или более недоступен.
20512The referenced process is not available for reuse.Ссылочный процесс существует, но недоступен для повторного использования.
20509The subject.name field is invalid.subject.name содержит недопустимые символы.
20508The subject.gender field is invalid.subject.gender должен быть M или F.
20507O parâmetro subject.code é inválido.Нестандартный или несуществующий CPF.
20506O base64 informado é muito grande. O tamanho máximo suportado é até 800kb.Размер изображения превышает 800 КБ; сожмите до JPEG92.
20505O base64 informado não é suportado. Os formatos aceitos são png, jpeg e webp.Формат base64 недействителен или не поддерживается.
20065The referenceProcessId field is invalid.referenceProcessId не является действительным UUID.
20062The useCase field is invalid.Нераспознанное значение в поле useCase.
20024The referenceProcessId field is missing.Параметр referenceProcessId не указан, и references не отправлен в качестве альтернативы.
20021The subject.phone field is invalid.Формат subject.phone недействителен (IDD + код региона + номер, 13 символов).
20019The subject.birthDate field is invalid.subject.birthDate не соответствует формату ISO 8601 (YYYY-MM-DD).
20009O parâmetro imagebase64 não foi informado.Отсутствует параметр изображения селфи.
20008The subject.email field is invalid.Недействительный формат email в subject.email.
20006O parâmetro subject.name não foi informado.Отсутствует параметр subject.name.
20005O parâmetro subject.code não foi informado.Отсутствует параметр subject.code.
20004O parâmetro subject não foi informado.Отсутствует параметр subject.
20003The request body is missing or invalid.Пустое или некорректное тело запроса.
20002O parâmetro APIKey não foi informado.Параметр APIKEY отсутствует в заголовке запроса.
20001O parâmetro authtoken não foi informado.Параметр токена интеграции отсутствует в заголовке запроса.
10508The JWT with the captured face has already been used.JWT может быть использован только один раз.
10507The JWT with the captured face is expired.JWT истёк; должен быть отправлен в течение 10 минут.
10506The imageBase64 field is not a valid JWT from SDK.imageBase64 не является действительным JWT, сгенерированным SDK.

Что дальше

  • Для запроса результата процесса онбординга см. Получение процесса.
  • Для операций с документами и проверкой возраста см. соответствующие страницы в этом разделе.