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

Создать процесс

MarkdownChatGPTClaude

Это точка входа любой интеграции с Unico API. Ваш бэкенд вызывает её для создания процесса; фронтенд использует полученные токены, чтобы отрендерить iFrame, перенаправить пользователя или инициализировать нативный SDK.

Полный сценарий интеграции см. в разделе Потоки.

Эндпоинт​

СредаURL
ProductionPOST https://api.idcloud.unico.app/client/v1/process
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

Запрос​

Заголовки
ЗаголовокЗначение
AuthorizationBearer <access_token> (см. Аутентификация)
Content-Typeapplication/json
Параметры тела запроса
Требования к полю зависят от потока

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

ПолеТипОписание
callbackUristringURL, на который перенаправляется пользователь после завершения сценария. Используйте / для потоков нативного SDK, где callback обрабатывается внутри приложения.
flowstringИдентификатор потока — определяет, какие возможности выполняются. Примеры: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart. См. Доступные потоки.
purposestringБизнес-цель. Допустимые значения: creditprocess, biometryonboarding, carpurchase, ageverification.
person.duiTypeenumТип документа. См. значения duiType ниже.
person.duiValuestringНомер документа, без форматирования.
person.friendlyNamestringОтображаемое имя пользователя, показываемое в интерфейсе сценария. Максимум 50 символов.
person.phonestringНомер телефона в формате DDI + DDD + номер, без разделителей. Обязателен при отправке уведомлений по SMS или WhatsApp.
person.emailstringАдрес электронной почты. Обязателен для потоков с электронной подписью.
person.​notificationsarrayКаналы уведомлений для отправки ссылки на сценарий. Каждый элемент содержит notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS или NOTIFICATION_CHANNEL_EMAIL.
referencesarrayРеференсные данные для потоков валидации 1:1 и умной ревалидации. Каждый элемент содержит referenceType (REFERENCE_TYPE_IMAGE_BASE64 или REFERENCE_TYPE_PROCESS_ID) и referenceContent (изображение в base64 или UUID процесса). Отправляйте не более одного элемента — более длинный массив отклоняется с кодом 400, а referenceContent не должен быть пустым.
useCasestringСценарий умной ревалидации. Обязателен для 🇧🇷 idsmart, idsmart_r2, idsmart_tp1. Примеры: USE_CASE_LOGIN, USE_CASE_FIN_TRANSACTIONS.
clientReferencestringУникальный идентификатор пользователя в вашей системе. Обязателен для возможности Мультиаккаунт. Уникален в вашей базе, максимум 256 символов, без пробелов.
companyBranchIdstring (UUID)ID филиала. Обязателен только если с сервисным аккаунтом связано более одного филиала.
expiresInstringОкно действительности процесса с момента создания. Формат: "3600s". По умолчанию — 7 дней, если не указано.
flowConfigobjectПереопределения конфигурации для конкретного потока.
flowConfig.​biometryCapture.​enabledBackCamerabooleanИспользовать заднюю камеру устройства. Несовместимо с потоками захвата документов или электронной подписи.
contextualizationobjectКонтекст транзакции, показываемый пользователю во время сценария, чтобы объяснить захват. Доступно клиентам в любом регионе — не ограничено конкретной страной.
contextualization.​company_namestringНазвание компании, отображаемое во время сценария. Максимум 20 символов.
contextualization.​currencystringКод валюты, показываемый пользователю. Допустимые значения: BRL, MXN, USD.
contextualization.​pricenumberСумма транзакции, показываемая пользователю.
contextualization.​localeobjectЛокализованный текст, показываемый во время сценария. Ключи: ptBr, enUs, esMx — это единственные поддерживаемые языки для текста, независимо от региона клиента.
contextualization.locale.{ptBr|enUs|esMx}.reasonstringКраткая причина захвата, показываемая во время сценария. Максимум 50 символов.
contextualization.locale.{ptBr|enUs|esMx}.titlestringЗаголовок уведомления для клиента, показываемого во время сценария. Максимум 100 символов. Должен передаваться совместно с text. HTML-теги удаляются.
contextualization.locale.{ptBr|enUs|esMx}.textstringТекст уведомления для клиента, показываемого во время сценария. Максимум 210 символов. Должен передаваться совместно с title. HTML-теги удаляются.
imageBase64stringСелфи, отправленное напрямую. Принимает JWT захвата от SDK.
document.purposeenumНазначение документа. Фиксированный словарь: DOCUMENT_PURPOSE_ONBOARDING, DOCUMENT_PURPOSE_CREDIT_PROCESS, DOCUMENT_PURPOSE_CAR_PURCHASE, DOCUMENT_PURPOSE_PAY_BY_PAYCHECK, DOCUMENT_PURPOSE_FGTS. Используется только в потоках сопоставления лица с документом.
document.​files[].​databytesНовый захват документа, в кодировке base64. Доступно по всему миру, не ограничено Бразилией. Взаимоисключает с document.documentId.
document.documentIdstring (UUID)Повторно использует документ, уже захваченный тем же лицом, вместо нового захвата. Взаимоисключает с document.files[].
expectedResultobjectИмитирует результат возможности в тестовой среде/песочнице и помечает ответ как simulated: true. См. Симуляция результатов (тестовый режим).
Значения duiType
СтранаЗначениеОписание
ARDUI_TYPE_AR_PASSPORTАргентинский паспорт
ARDUI_TYPE_AR_DNIАргентинский DNI
ARDUI_TYPE_AR_LNCАргентинское водительское удостоверение (Licencia Nacional de Conducir)
ATDUI_TYPE_AT_STNRАвстрийский налоговый номер (STNR)
BEDUI_TYPE_BE_NNБельгийский национальный номер (NN)
BRDUI_TYPE_BR_CPFБразильский CPF
BRDUI_TYPE_BR_PASSPORTБразильский паспорт
BRDUI_TYPE_BR_CNPJБразильский CNPJ
CADUI_TYPE_CA_SINКанадский SIN
CHDUI_TYPE_CH_AHVШвейцарский номер AHV/AVS
CLDUI_TYPE_CL_RUNЧилийский RUN
CLDUI_TYPE_CL_PASSPORTЧилийский паспорт
CLDUI_TYPE_CL_LICENCIA_CONDUCIRЧилийское водительское удостоверение (Licencia de Conducir)
CODUI_TYPE_CO_NITКолумбийский NIT
CODUI_TYPE_CO_PASSPORTКолумбийский паспорт
CODUI_TYPE_CO_LICENCIA_CONDUCCIONКолумбийское водительское удостоверение (Licencia de Conducción)
CODUI_TYPE_CO_CCКолумбийское удостоверение личности гражданина (Cédula de Ciudadanía)
DEDUI_TYPE_DE_IDNRНемецкий налоговый идентификационный номер (IdNr)
DKDUI_TYPE_DK_CPRДатский CPR
ECDUI_TYPE_EC_NIЭквадорский NI
ESDUI_TYPE_ES_NIEИспанский номер иностранца (NIE)
ESDUI_TYPE_ES_DNIИспанский национальный документ, удостоверяющий личность (DNI)
FIDUI_TYPE_FI_HETUФинский код личной идентификации (HETU)
FRDUI_TYPE_FR_SPIФранцузский налоговый справочный номер (SPI)
GBDUI_TYPE_GB_NINOБританский номер национального страхования (NINO)
GTDUI_TYPE_GT_CUIГватемальский CUI
IDDUI_TYPE_ID_NIKИндонезийский NIK
IEDUI_TYPE_IE_PPSNИрландский номер социального страхования (PPSN)
ITDUI_TYPE_IT_CFИтальянский налоговый код (Codice Fiscale, CF)
LKDUI_TYPE_LK_NICШри-ланкийский NIC
LUDUI_TYPE_LU_MATRICULEЛюксембургский национальный идентификационный номер (Matricule)
MXDUI_TYPE_MX_CURPМексиканский CURP
MXDUI_TYPE_MX_RFC_PERSONA_FISICAМексиканский RFC (физическое лицо)
MXDUI_TYPE_MX_LICENCIA_CONDUCIRМексиканское водительское удостоверение (Licencia de Conducir)
NGDUI_TYPE_NG_NINНигерийский NIN
NGDUI_TYPE_NG_BVNНигерийский номер верификации банковского счёта (BVN)
NGDUI_TYPE_NG_BVN_TOKENТокен BVN Нигерии (хешированный)
NGDUI_TYPE_NG_NIN_TOKENТокен NIN Нигерии (хешированный)
NLDUI_TYPE_NL_BSNГолландский идентификационный номер гражданина (BSN)
NODUI_TYPE_NO_FNRНорвежский национальный идентификационный номер (Fødselsnummer)
PEDUI_TYPE_PE_RUCПеруанский RUC
PEDUI_TYPE_PE_DNIПеруанский DNI
PEDUI_TYPE_PE_PASSPORTПеруанский паспорт
PLDUI_TYPE_PL_PESELПольский PESEL
PTDUI_TYPE_PT_NIFПортугальский налоговый идентификационный номер (NIF)
SEDUI_TYPE_SE_PNRШведский личный номер (PNR)
SEDUI_TYPE_SE_SAMORDNINGSNUMMERШведский координационный номер (Samordningsnummer)
TRDUI_TYPE_TR_TCKNТурецкий идентификационный номер (TCKN)
USDUI_TYPE_US_SSNSSN США
USDUI_TYPE_US_PASSPORTПаспорт США
USDUI_TYPE_US_DRIVER_LICENSEВодительское удостоверение США
USDUI_TYPE_US_PASSPORT_CARDПаспортная карта США
USDUI_TYPE_US_POLYCARBONATE_PASSPORTПоликарбонатный паспорт США
USDUI_TYPE_US_ID_CARDИдентификационная карта США
UYDUI_TYPE_UY_CIУругвайский CI
ZZDUI_TYPE_ZZ_EMAILАдрес электронной почты
ZZDUI_TYPE_ZZ_PHONE_NUMBERНомер телефона
Создание процесса без документа

Если поток допускает опциональный документ, можно не передавать person.duiType и person.duiValue. После захвата процесс ожидает в состоянии AWAITING_FOR_DOCUMENT, пока ваш бэкенд не отправит документ через Передача документа процесса.

Пример​

curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"flow": "idunicodocs_r2",
"purpose": "biometryonboarding",
"clientReference": "pedido-88216",
"callbackUri": "https://your-app.example.com/onboarding/callback",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909"
}
}'

Ответы​

200 OK
{
"process": {
"id": "b7c1f0a2-63d4-4f3e-9a17-2c8e5d41b0aa",
"flow": "idunicodocs_r2",
"state": "PROCESS_STATE_CREATED",
"result": "PROCESS_RESULT_UNSPECIFIED",
"purpose": "biometryonboarding",
"clientReference": "pedido-88216",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909"
},
"capacities": [
"PROCESS_CAPACITY_IDLIVE",
"PROCESS_CAPACITY_IDUNICO",
"PROCESS_CAPACITY_IDDOCS"
],
"authenticationInfo": {
"authenticationId": ""
},
"companyData": {
"branchId": "",
"countryCode": "BRA"
},
"callbackUri": "https://your-app.example.com/onboarding/callback",
"userRedirectUrl": "https://cadastro.unico.app/flow?id=b7c1f0a2-63d4-4f3e-9a17-2c8e5d41b0aa",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…",
"webAppToken": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiZGlyIn0…",
"simulated": false
}
}
ПолеТипОписание
process.idstring (UUID)Идентификатор процесса. Используйте его, чтобы получить результат через Получение процесса.
process.stateenumPROCESS_STATE_CREATED — процесс создан, сценарий ещё не начат. PROCESS_STATE_FAILED — создание процесса завершилось ошибкой.
process.resultenumРезультат верификации. Присутствует только когда state = PROCESS_STATE_FINISHED — значения результата, которые может возвращать конкретный поток, см. в Потоках.
process.flowstringИдентификатор потока, отправленный при создании.
process.purposestringБизнес-цель, отправленная при создании.
process.callbackUristringCallback URI, отправленный при создании.
process.​clientReferencestringВаш внутренний идентификатор, отправленный при создании. Присутствует только если был указан в запросе.
process.​companyBranchIdstring (UUID)ID филиала. Присутствует только если был указан в запросе.
process.​userRedirectUrlstringURL для перенаправления пользователя (интеграции Web Redirect и iFrame). Не изменяйте этот URL.
process.tokenstringJWT для инициализации iFrame Web SDK.
process.webAppTokenstringJWT для инициализации нативных SDK (Android, iOS, Flutter).
process.createdAtstring (date-time)Метка времени создания процесса.
process.expiresAtstring (date-time)Метка времени, после которой процесс истекает и не может быть завершён.
process.capacitiesarrayВозможности, настроенные для этого процесса.
process.​authenticationInfoobjectИнформация об аутентификации процесса (пуста в момент создания).
process.personobjectКопия объекта person, отправленного при создании.
process.​companyData.​branchIdstring (UUID)ID филиала, связанного с процессом.
process.​companyData.​countryCodestringКод страны, связанной с филиалом (например, BR, MX).

Коды ошибок​

КодСообщениеОписание
3invalid flowКогда указанный поток не существует.
3invalid person: friendly name exceeds 50 characters.Когда отображаемое имя превышает 50 символов.
3invalid purposeКогда указанная цель недействительна.
3invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:Когда указанный callbackUri недействителен.
3invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAILКогда указанный email недействителен, а настроено уведомление по email.
3invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPPКогда указанный номер телефона недействителен, а настроено уведомление по SMS или WhatsApp.
3idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui valueКогда указанный идентификатор (duiValue) недействителен.
3invalid expiresIn argumentКогда значение expiresIn недействительно.
3invalid company_name argument in process contextualization, max length is 20Когда contextualization.​company_name превышает 20 символов.
3title and text must be provided together in process contextsКогда в локали указано только одно из значений title или text.
3invalid title argument in process contexts, max length is 100Когда title локали превышает 100 символов.
3invalid text argument in process contexts, max length is 210Когда text локали превышает 210 символов.
3invalid reason argument in process contexts, max length is 50Когда reason локали превышает 50 символов.
3The references array must contain at most one element.Когда в references отправлено более одного элемента.
3The references[].referenceContent field is missing.Когда referenceContent пуст.
3The references[].referenceType field must be IMAGE_BASE64 or PROCESS_ID.Когда referenceType не входит в число поддерживаемых значений.
3A reference is required for this flow.Когда поток требует референс, а он не был отправлен. Отправьте references[0] с referenceType PROCESS_ID или IMAGE_BASE64.
9The referenceProcessId field is invalid.Когда референсный процесс не существует или не может быть повторно использован. Указывает поле, которое вы отправили — bioTokenId, если вы отправили его.
3INVALID_IMAGEКогда изображение не является корректным base64 или похоже на попытку инъекции.
3INVALID_DUIКогда номер документа нестандартный или не существует.
3IMAGE_TOO_LARGEКогда изображение превышает максимальный размер 800 КБ.
3UNSUPPORTED_IMAGE_FORMATКогда формат изображения не PNG, JPEG или WebP.
3MISSING_IMAGEКогда изображение обязательно для этого потока, но не было отправлено.
3MISSING_NAMEКогда имя обязательно для этого потока, но не было отправлено.
3MISSING_DUIКогда номер документа обязателен для этого потока, но не был отправлен.
3MISSING_PERSONКогда объект person обязателен для этого потока, но не был отправлен.
3INVALID_REQUESTКогда тело запроса пустое (null) или не может быть интерпретировано.
3TOKEN_ALREADY_USEDКогда токен захвата уже был использован. Он одноразовый.
3TOKEN_EXPIREDКогда токен захвата истёк. Он должен быть использован в течение 10 минут.
3INVALID_BUNDLEКогда запрос не соответствует требованиям безопасности.
3INVALID_NAMEКогда имя длиннее максимально допустимого.
3INVALID_EMAILКогда адрес электронной почты некорректен или слишком длинный.
3INVALID_PHONEКогда номер телефона длиннее 20 символов.
3INVALID_DUI_TYPEКогда тип документа не входит в число поддерживаемых значений.
3INVALID_CLIENT_REFERENCEКогда clientReference слишком длинный или содержит пробел либо #.
3INVALID_CONSENT_TYPEКогда consentType не является NONE, DIRECT или INDIRECT.
3INVALID_USE_CASEКогда useCase не распознан или слишком длинный.
3INVALID_DEVICE_TRUST_TOKENКогда токен доверия устройства недействителен или уже был использован.
3TOO_MANY_REFERENCESКогда в references отправлено более одного элемента.
3INVALID_REFERENCE_TYPEКогда referenceType не равен IMAGE_BASE64 или PROCESS_ID.
3INVALID_REFERENCE_PROCESSКогда ID референсного процесса не является допустимым идентификатором.
3REFERENCE_PROCESS_NOT_FOUNDКогда референсный процесс не существует.
3REFERENCE_PROCESS_NOT_READYКогда у референсного процесса нет результата, доступного для повторного использования, либо он уже был использован.
3REFERENCE_SELFIE_NOT_FOUNDКогда референсный процесс не содержит селфи для повторного использования.
3INVALID_CAPTURE_TOKENКогда захваченное изображение не является допустимым токеном, созданным SDK захвата.
3INVALID_CAPTURE_SIGNATUREКогда подпись токена захвата не проходит проверку.
3PRIOR_CAPTURE_NOT_FOUNDКогда предыдущий захват, на котором строится этот запрос, не может быть найден. Начните процесс заново.
3PRIOR_CAPTURE_IN_PROGRESSКогда предыдущий захват ещё не завершён. Повторите попытку позже.
3PRIOR_CAPTURE_FAILEDКогда предыдущий захват не удалось завершить. Начните процесс заново.
3INVALID_DOCUMENTКогда файл документа не читается, защищён паролем или имеет неподдерживаемый формат.
3INVALID_AUTH_PROCESSКогда document.authProcessId недействителен, истёк или принадлежит другому лицу.
3INVALID_DOCUMENT_PURPOSEКогда document.purpose не входит в число поддерживаемых значений.
3PROCESS_REUSE_NOT_ENABLEDКогда поток не разрешает повторное использование предыдущего процесса без изображения. Отправьте изображение.
9PROCESS_FAILEDКогда процесс достиг финального сбоя во время создания.
9Tenant API key is not configuredКогда API-ключ не настроен должным образом.

Что дальше​