---
title: Создать процесс
description: Создание процесса верификации. Возвращает URL сценария и токены SDK, передающие пользователя в захват, размещённый на стороне Unico.
canonical: https://developer.unico.io/ru/developers/api-reference/post-processes
locale: ru
generated_by: markdown-export
---

- [/ru/](/ru/)
- Справочник API
- Создать процесс

**На этой странице# Создать процесс

Это точка входа любой интеграции с Unico API. Ваш бэкенд вызывает её для создания процесса; фронтенд использует полученные токены, чтобы отрендерить iFrame, перенаправить пользователя или инициализировать нативный SDK.
Полный сценарий интеграции см. в разделе [Потоки](/ru/developers/start/flows).
### Эндпоинт​

СредаURL**Production**`POST https://api.idcloud.unico.app/client/v1/process`**Sandbox**`POST https://api.idcloud.uat.unico.app/client/v1/process`
### Запрос​

Заголовки
ЗаголовокЗначение`Authorization``Bearer <access_token>` (см. [Аутентификация](/ru/developers/start/authentication))`Content-Type``application/json`
Параметры тела запроса
Требования к полю зависят от потокаЯвляется ли поле обязательным, опциональным или неприменимым, зависит от того, с каким `flow` вы интегрируетесь — прежде чем делать выводы об обязательности поля только по этой таблице, проверьте [Потоки](/ru/developers/start/flows) для конкретного используемого рецепта.
ПолеТипОписание`callbackUri`stringURL, на который перенаправляется пользователь после завершения сценария. Используйте `/` для потоков нативного SDK, где callback обрабатывается внутри приложения.`flow`stringИдентификатор потока — определяет, какие возможности выполняются. Примеры: `idunicodocs`, `idunicosign`, `idchecktrust`, `idtoken`, `idsmart`. См. [Доступные потоки](/ru/developers/start/flows).`purpose`stringБизнес-цель. Допустимые значения: `creditprocess`, `biometryonboarding`, `carpurchase`, `ageverification`.`person.duiType`enumТип документа. См. [значения `duiType`](#duitype-values) ниже.`person.duiValue`stringНомер документа, без форматирования.`person.friendlyName`stringОтображаемое имя пользователя, показываемое в интерфейсе сценария. Максимум 50 символов.`person.phone`stringНомер телефона в формате DDI + DDD + номер, без разделителей. Обязателен при отправке уведомлений по SMS или WhatsApp.`person.email`stringАдрес электронной почты. Обязателен для потоков с электронной подписью.`person.​notifications`arrayКаналы уведомлений для отправки ссылки на сценарий. Каждый элемент содержит `notificationChannel`: `NOTIFICATION_CHANNEL_WHATSAPP`, `NOTIFICATION_CHANNEL_SMS` или `NOTIFICATION_CHANNEL_EMAIL`.`references`arrayРеференсные данные для потоков  валидации 1:1 и умной ревалидации. Каждый элемент содержит `referenceType` (`REFERENCE_TYPE_IMAGE_BASE64` или `REFERENCE_TYPE_PROCESS_ID`) и `referenceContent` (изображение в base64 или UUID процесса). Отправляйте не более одного элемента — более длинный массив отклоняется с кодом `400`, а `referenceContent` не должен быть пустым.`useCase`stringСценарий умной ревалидации. Обязателен для 🇧🇷 `idsmart`, `idsmart_r2`, `idsmart_tp1`. Примеры: `USE_CASE_LOGIN`, `USE_CASE_FIN_TRANSACTIONS`.`clientReference`stringУникальный идентификатор пользователя в вашей системе. **Обязателен для возможности [Мультиаккаунт](/ru/capabilities/multi-accounts).** Уникален в вашей базе, максимум 256 символов, без пробелов.`companyBranchId`string (UUID)ID филиала. Обязателен только если с сервисным аккаунтом связано более одного филиала.`expiresIn`stringОкно действительности процесса с момента создания. Формат: `"3600s"`. По умолчанию — 7 дней, если не указано.`flowConfig`objectПереопределения конфигурации для конкретного потока.`flowConfig.​biometryCapture.​enabledBackCamera`booleanИспользовать заднюю камеру устройства. Несовместимо с потоками захвата документов или электронной подписи.`contextualization`objectКонтекст транзакции, показываемый пользователю во время сценария, чтобы объяснить захват. Доступно клиентам в любом регионе — не ограничено конкретной страной.`contextualization.​company_name`stringНазвание компании, отображаемое во время сценария. Максимум 20 символов.`contextualization.​currency`stringКод валюты, показываемый пользователю. Допустимые значения: `BRL`, `MXN`, `USD`.`contextualization.​price`numberСумма транзакции, показываемая пользователю.`contextualization.​locale`objectЛокализованный текст, показываемый во время сценария. Ключи: `ptBr`, `enUs`, `esMx` — это единственные поддерживаемые языки для текста, независимо от региона клиента.`contextualization.locale.{ptBr|enUs|esMx}.reason`stringКраткая причина захвата, показываемая во время сценария. Максимум 50 символов.`contextualization.locale.{ptBr|enUs|esMx}.title`stringЗаголовок уведомления для клиента, пока зываемого во время сценария. Максимум 100 символов. Должен передаваться совместно с `text`. HTML-теги удаляются.`contextualization.locale.{ptBr|enUs|esMx}.text`stringТекст уведомления для клиента, показываемого во время сценария. Максимум 210 символов. Должен передаваться совместно с `title`. HTML-теги удаляются.`imageBase64`stringСелфи, отправленное напрямую. Принимает JWT захвата от SDK.`document.purpose`enumНазначение документа. Фиксированный словарь: `DOCUMENT_PURPOSE_ONBOARDING`, `DOCUMENT_PURPOSE_CREDIT_PROCESS`, `DOCUMENT_PURPOSE_CAR_PURCHASE`, `DOCUMENT_PURPOSE_PAY_BY_PAYCHECK`, `DOCUMENT_PURPOSE_FGTS`. Используется только в потоках сопоставления лица с документом.`document.​files[].​data`bytesНовый захват документа, в кодировке base64. Доступно по всему миру, не ограничено Бразилией. Взаимоисключает с `document.documentId`.`document.documentId`string (UUID)Повторно использует документ, уже захваченный тем же лицом, вместо нового захвата. Взаимоисключает с `document.files[]`.`expectedResult`objectИмитирует результат возможности в тестовой среде/песочнице и помечает ответ как `simulated: true`. См. [Симуляция результатов (тестовый режим)](/ru/developers/start/test-mock).
**Значения `duiType`**СтранаЗначениеОписаниеAR`DUI_TYPE_AR_PASSPORT`Аргентинский паспортAR`DUI_TYPE_AR_DNI`Аргентинский DNIAR`DUI_TYPE_AR_LNC`Аргентинское водительское удостоверение (Licencia Nacional de Conducir)AT`DUI_TYPE_AT_STNR`Австрийский налоговый номер (STNR)BE`DUI_TYPE_BE_NN`Бельгийский национальный номер (NN)BR`DUI_TYPE_BR_CPF`Бразильский CPFBR`DUI_TYPE_BR_PASSPORT`Бразильский паспортBR`DUI_TYPE_BR_CNPJ`Бразильский CNPJCA`DUI_TYPE_CA_SIN`Канадский SINCH`DUI_TYPE_CH_AHV`Швейцарский номер AHV/AVSCL`DUI_TYPE_CL_RUN`Чилийский RUNCL`DUI_TYPE_CL_PASSPORT`Чилийский паспортCL`DUI_TYPE_CL_LICENCIA_CONDUCIR`Чилийское водительское удостоверение (Licencia de Conducir)CO`DUI_TYPE_CO_NIT`Колумбийский NITCO`DUI_TYPE_CO_PASSPORT`Колумбийский паспортCO`DUI_TYPE_CO_LICENCIA_CONDUCCION`Колумбийское водительское удостоверение (Licencia de Conducción)CO`DUI_TYPE_CO_CC`Колумбийское удостоверение личности гражданина (Cédula de Ciudadanía)DE`DUI_TYPE_DE_IDNR`Немецкий налоговый идентификационный номер (IdNr)DK`DUI_TYPE_DK_CPR`Датский CPREC`DUI_TYPE_EC_NI`Эквадорский NIES`DUI_TYPE_ES_NIE`Испанский номер иностранца (NIE)ES`DUI_TYPE_ES_DNI`Испанский национальный документ, удостоверяющий личность (DNI)FI`DUI_TYPE_FI_HETU`Финский код личной идентификации (HETU)FR`DUI_TYPE_FR_SPI`Французский налоговый справочный номер (SPI)GB`DUI_TYPE_GB_NINO`Британский номер национального страхования (NINO)GT`DUI_TYPE_GT_CUI`Гватемальский CUIID`DUI_TYPE_ID_NIK`Индонезийский NIKIE`DUI_TYPE_IE_PPSN`Ирландский номер социального страхования (PPSN)IT`DUI_TYPE_IT_CF`Итальянский налоговый код (Codice Fiscale, CF)LK`DUI_TYPE_LK_NIC`Шри-ланкийский NICLU`DUI_TYPE_LU_MATRICULE`Люксембургский национальный идентификационный номер (Matricule)MX`DUI_TYPE_MX_CURP`Мексиканский CURPMX`DUI_TYPE_MX_RFC_PERSONA_FISICA`Мексиканский RFC (физическое лицо)MX`DUI_TYPE_MX_LICENCIA_CONDUCIR`Мексиканское водительское удостоверение (Licencia de Conducir)NG`DUI_TYPE_NG_NIN`Нигерийский NINNG`DUI_TYPE_NG_BVN`Нигерийский номер верификации банковского счёта (BVN)NG`DUI_TYPE_NG_BVN_TOKEN`Токен BVN Нигерии (хешированный)NG`DUI_TYPE_NG_NIN_TOKEN`Токен NIN Н игерии (хешированный)NL`DUI_TYPE_NL_BSN`Голландский идентификационный номер гражданина (BSN)NO`DUI_TYPE_NO_FNR`Норвежский национальный идентификационный номер (Fødselsnummer)PE`DUI_TYPE_PE_RUC`Перуанский RUCPE`DUI_TYPE_PE_DNI`Перуанский DNIPE`DUI_TYPE_PE_PASSPORT`Перуанский паспортPL`DUI_TYPE_PL_PESEL`Польский PESELPT`DUI_TYPE_PT_NIF`Португальский налоговый идентификационный номер (NIF)SE`DUI_TYPE_SE_PNR`Шведский личный номер (PNR)SE`DUI_TYPE_SE_SAMORDNINGSNUMMER`Шведский координационный номер (Samordningsnummer)TR`DUI_TYPE_TR_TCKN`Турецкий идентификационный номер (TCKN)US`DUI_TYPE_US_SSN`SSN СШАUS`DUI_TYPE_US_PASSPORT`Паспорт СШАUS`DUI_TYPE_US_DRIVER_LICENSE`Водительское удостоверение СШАUS`DUI_TYPE_US_PASSPORT_CARD`Паспортная карта СШАUS`DUI_TYPE_US_POLYCARBONATE_PASSPORT`Поликарбонатный паспорт СШАUS`DUI_TYPE_US_ID_CARD`Идентификационная карта СШАUY`DUI_TYPE_UY_CI`Уругвайский CIZZ`DUI_TYPE_ZZ_EMAIL`Адрес электронной почтыZZ`DUI_TYPE_ZZ_PHONE_NUMBER`Номер телефона
Создание процесса без документаЕсли поток допуска ет опциональный документ, можно не передавать `person.duiType` и `person.duiValue`. После захвата процесс ожидает в состоянии `AWAITING_FOR_DOCUMENT`, пока ваш бэкенд не отправит документ через [Передача документа процесса](/ru/developers/api-reference/set-process-document).
### Пример​

cURLNode.js```
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"    }  }'
```

```
import fetch from 'node-fetch';const res = await fetch('https://api.idcloud.unico.app/client/v1/process', {  method: 'POST',  headers: {    Authorization: `Bearer ${process.env.UNICO_ACCESS_TOKEN}`,    'Content-Type': 'application/json',  },  body: JSON.stringify({    flow: 'idunicodocs_r2',    purpose: 'biometryonboarding',    clientReference: 'pedido-88216',    callbackUri: 'https://your-app.example.com/onboarding/callback',    person: {      duiType: 'DUI_TYPE_BR_CPF',      duiValue: '12345678909',    },  }),});const { process: proc } = await res.json();// proc.userRedirectUrl, proc.token, proc.webAppToken
```

### Ответы​

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.id`string (UUID)Идентификатор процесса. Используйте его, чтобы получить результат через [Получение процесса](/ru/developers/api-reference/get-process).`process.state`enum`PROCESS_STATE_CREATED` — процесс создан, сценарий ещё не начат. `PROCESS_STATE_FAILED` — создание процесса завершилось ошибкой.`process.result`enumРезультат верификации. Присутствует только когда `state = PROCESS_STATE_FINISHED` — значения результата, которые может возвращать конкретный поток, см. в [Потоках](/ru/developers/start/flows).`process.flow`stringИдентификатор потока, отправленный при создании.`process.purpose`stringБизнес-цель, отправленная при создании.`process.callbackUri`stringCallback URI, отправленный при создании.`process.​clientReference`stringВаш внутренний идентификатор, отправленный при создании. Присутствует только если был указан в запросе.`process.​companyBranchId`string (UUID)ID филиала. Присутствует только если был указан в запросе.`process.​userRedirectUrl`stringURL для перенаправления пользователя (интеграции Web Redirect и iFrame). Не изменяйте этот URL.`process.token`stringJWT для инициализации **iFrame Web SDK**.`process.webAppToken`stringJWT для инициализации **нативных SDK** (Android, iOS, Flutter).`process.createdAt`string (date-time)Метка времени создания процесса.`process.expiresAt`string (date-time)Метка времени, после которой процесс истекает и не может быть завер шён.`process.capacities`arrayВозможности, настроенные для этого процесса.`process.​authenticationInfo`objectИнформация об аутентификации процесса (пуста в момент создания).`process.person`objectКопия объекта `person`, отправленного при создании.`process.​companyData.​branchId`string (UUID)ID филиала, связанного с процессом.`process.​companyData.​countryCode`stringКод страны, связанной с филиалом (например, `BR`, `MX`).
### Коды ошибок​

400 Bad Request401 Unauthorized403 Forbidden404 Not Found429 Too Many Requests500 Internal Server ErrorКодСообщениеОписание`3`invalid flowКогда указанный поток не существует.`3`invalid person: friendly name exceeds 50 characters.Когда отображаемое имя превышает 50 символов.`3`invalid purposeКогда указанная цель недействительна.`3`invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:Когда указанный callbackUri недействителен.`3`invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAILКогда указанный email недействителен, а настроено уведомление по email.`3`invalid 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.`3`idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui valueКогда указанный идентификатор (duiValue) недействителен.`3`invalid expiresIn argumentКогда значение `expiresIn` недействительно.`3`invalid company_name argument in process contextualization, max length is 20Когда `contextualization.​company_name` превышает 20 символов.`3`title and text must be provided together in process contextsКогда в локали указано только одно из значений `title` или `text`.`3`invalid title argument in process contexts, max length is 100Когда `title` локали превышает 100 символов.`3`invalid text argument in process contexts, max length is 210Когда `text` локали превышает 210 символов.`3`invalid reason argument in process contexts, max length is 50Когда `reason` локали превышает 50 символов.`3`The references array must contain at most one element.Когда в `references` отправлено более одного элемента.`3`The references[].referenceContent field is missing.Когда `referenceContent` пуст.`3`The references[].referenceType field must be IMAGE_BASE64 or PROCESS_ID.Когда `referenceType` не входит в число поддерживаемых значений.`3`A reference is required for this flow.Когда поток требует референс, а он не был отправлен. Отправьте `references[0]` с `referenceType` `PROCESS_ID` или `IMAGE_BASE64`.`9`The referenceProcessId field is invalid.Когда референсный процесс не существует или не может быть повторно ис пользован. Указывает поле, которое вы отправили — `bioTokenId`, если вы отправили его.`3`INVALID_IMAGEКогда изображение не является корректным base64 или похоже на попытку инъекции.`3`INVALID_DUIКогда номер документа нестандартный или не существует.`3`IMAGE_TOO_LARGEКогда изображение превышает максимальный размер 800 КБ.`3`UNSUPPORTED_IMAGE_FORMATКогда формат изображения не PNG, JPEG или WebP.`3`MISSING_IMAGEКогда изображение обязательно для этого потока, но не было отправлено.`3`MISSING_NAMEКогда имя обязательно для этого потока, но не было отправлено.`3`MISSING_DUIКогда номер документа обязателен для этого потока, но не был отправлен.`3`MISSING_PERSONКогда объект `person` обязателен для этого потока, но не был отправлен.`3`INVALID_REQUESTКогда тело запроса пустое (null) или не может быть интерпретировано.`3`TOKEN_ALREADY_USEDКогда токен захвата уже был использован. Он одноразовый.`3`TOKEN_EXPIREDКогда токен захвата  истёк. Он должен быть использован в течение 10 минут.`3`INVALID_BUNDLEКогда запрос не соответствует требованиям безопасности.`3`INVALID_NAMEКогда имя длиннее максимально допустимого.`3`INVALID_EMAILКогда адрес электронной почты некорректен или слишком длинный.`3`INVALID_PHONEКогда номер телефона длиннее 20 символов.`3`INVALID_DUI_TYPEКогда тип документа не входит в число поддерживаемых значений.`3`INVALID_CLIENT_REFERENCEКогда `clientReference` слишком длинный или содержит пробел либо `#`.`3`INVALID_CONSENT_TYPEКогда `consentType` не является `NONE`, `DIRECT` или `INDIRECT`.`3`INVALID_USE_CASEКогда `useCase` не распознан или слишком длинный.`3`INVALID_DEVICE_TRUST_TOKENКогда токен доверия устройства недействителен или уже был использован.`3`TOO_MANY_REFERENCESКогда в `references` отправлено более одного элемента.`3`INVALID_REFERENCE_TYPEКогда `referenceType` не равен `IMAGE_BASE64` или `PROCESS_ID`.`3`INVALID_REFERENCE_PROCESSКогда ID референсного процесса не является допустимым идентификатором.`3`REFERENCE_PROCESS_NOT_FOUNDКогда референсный процесс не существует.`3`REFERENCE_PROCESS_NOT_READYКогда у референсного процесса нет результата, доступного для повторного использования, либо он уже был использован.`3`REFERENCE_SELFIE_NOT_FOUNDКогда референсный процесс не содержит селфи для повторного использования.`3`INVALID_CAPTURE_TOKENКогда захваченное изображение не является допустимым токеном, созданным SDK захвата.`3`INVALID_CAPTURE_SIGNATUREКогда подпись токена захвата не проходит проверку.`3`PRIOR_CAPTURE_NOT_FOUNDКогда предыдущий захват, на котором строится этот запрос, не может быть найден. Начните процесс заново.`3`PRIOR_CAPTURE_IN_PROGRESSКогда предыдущий захват ещё не завершён. Повторите попытку позже.`3`PRIOR_CAPTURE_FAILEDКогда предыдущий захват не удалось завершить. Начните процесс заново.`3`INVALID_DOCUMENTКогда файл документа не читается, защищён паролем или им еет неподдерживаемый формат.`3`INVALID_AUTH_PROCESSКогда `document.authProcessId` недействителен, истёк или принадлежит другому лицу.`3`INVALID_DOCUMENT_PURPOSEКогда `document.purpose` не входит в число поддерживаемых значений.`3`PROCESS_REUSE_NOT_ENABLEDКогда поток не разрешает повторное использование предыдущего процесса без изображения. Отправьте изображение.`9`PROCESS_FAILEDКогда процесс достиг финального сбоя во время создания.`9`Tenant API key is not configuredКогда API-ключ не настроен должным образом.Bearer-токен отсутствует, истёк или недействителен. См. [Аутентификация](/ru/developers/start/authentication).СообщениеОписаниеJwt header is an invalid JSONКогда использованный токен доступа содержит некорректные символы.Jwt is expiredКогда использованный токен доступа истёк.КодСообщениеОписание`7`INVALID_API_KEYКогда API-ключ недействителен или отсутствует.`7`INVALID_AUTH_TOKENКогда токен аутентификации недействителен.`7`PERMISSION_DENIEDКогда учётные данные действительны, но не дают права на это действие.`7`TOKEN_TENANT_MISMATCHКогда токен захвата был выпущен для другого тенанта.`7`MISSING_ACCESS_TOKENКогда заголовок авторизации отсутствует.КодСообщениеОписание`5`NO_RESULTS_FOUNDКогда документ, указанный в запросе, не может быть найден.Достигнут лимит запросов. Когда ваша система получает ошибку HTTP 429, необходимо реализовать механизмы для предотвращения каскадных сбоев и избежания усугубления ограничения.
**Лучшие практики:**

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

предупреждениеНепрерывная отправка запросов к эндпоинту с ограничением частоты без применения backoff может **продлить период ограничения** и серьезно снизить операционную пропускную способность вашей системы. Правильное ограничение запросов на вашей стороне обеспечивает более плавную и устойчивую интеграцию.
Информацию о лимитах по умолчанию, увеличении запросов и дополнительные сведения см. в разделе [Лимиты запросов](/ru/developers/start/rate-limits).КодСообщениеОписание`13`Internal failure! Try again laterКогда произошла внутренняя ошибка.
### Что дальше​

После того как пользователь завершит сценарий, вызовите [Получение процесса](/ru/developers/api-reference/get-process), чтобы получить результат, либо дождитесь [вебхука](/ru/developers/webhooks-and-events).
Чтобы увидеть все комбинации рецептов и их возможные значения результата, см. [Потоки](/ru/developers/start/flows).
Чтобы протестировать результат без реального биометрического захвата, см. [Симуляция результатов (тестовый режим)](/ru/developers/start/test-mock).
Последнее обновление 8 окт. 2026 г.**