Saltar al contenido principal

Crear Proceso

Este es el punto de entrada de toda integración Web y SDK. Su back-end lo llama para crear un proceso; su front-end utiliza los tokens devueltos para renderizar el iFrame, redirigir al usuario o inicializar un SDK nativo.

Para el flujo de integración completo, consulte Descripción general de Web y SDK.

Endpoint

EntornoURL
ProducciónPOST https://api.idcloud.unico.app/client/v1/process
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

Solicitud

Cabeceras
CabeceraValor
AuthorizationBearer <access_token> (ver Autenticación)
Content-Typeapplication/json
Parámetros del cuerpo
CampoTipoRequeridoDescripción
callbackUristringURL a la que se redirige al usuario una vez que termina la jornada. Use / para flujos de SDK nativo donde el callback se maneja dentro de la aplicación.
flowstringIdentificador del flujo — determina qué capacidades se ejecutan. Ejemplos: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart. Ver Flujos disponibles.
purposestringPropósito de negocio. Valores aceptados: creditprocess, biometryonboarding, carpurchase, ageverification.
person.duiTypeenumTipo de documento. Valores aceptados: DUI_TYPE_BR_CPF, DUI_TYPE_MX_CURP, DUI_TYPE_US_SSN, DUI_TYPE_BR_PASSPORT, DUI_TYPE_AR_PASSPORT, DUI_TYPE_AR_DNI, DUI_TYPE_NG_NIN, DUI_TYPE_CL_RUN, DUI_TYPE_EC_NI, DUI_TYPE_US_PASSPORT, DUI_TYPE_GT_CUI, DUI_TYPE_UY_CI, DUI_TYPE_ZZ_EMAIL, DUI_TYPE_ID_NIK, DUI_TYPE_ZZ_PHONE_NUMBER, DUI_TYPE_US_DRIVER_LICENSE, DUI_TYPE_NG_BVN.
person.duiValuestringNúmero de documento, sin formato.
person.friendlyNamestringnoNombre visible del usuario mostrado en la interfaz de la jornada. Máximo 50 caracteres.
person.phonestringnoNúmero de teléfono en formato DDI + DDD + número, sin separadores. Requerido cuando se envían notificaciones por SMS o WhatsApp.
person.emailstringnoDirección de correo electrónico. Requerida para flujos con Firma Electrónica.
person.notificationsarraynoCanales de notificación para enviar el enlace de la jornada. Cada elemento tiene notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS o NOTIFICATION_CHANNEL_EMAIL.
bioTokenIdstring (UUID)condicionalObsoleto. Use references en su lugar. ID del proceso biométrico de referencia. Requerido para flujos de validación 1:1 (idtoken, idtokentrust, idtokensign) y Smart Revalidation (idsmart).
referencesarraycondicionalEntradas de referencia para flujos de validación 1:1 y Smart Revalidation, reemplazando bioTokenId. Cada elemento contiene referenceType (REFERENCE_TYPE_IMAGE_BASE64 o REFERENCE_TYPE_PROCESS_ID) y referenceContent (imagen codificada en base64 o UUID del proceso).
useCasestringcondicionalCaso de uso de Smart Revalidation. Requerido para idsmart. Ejemplos: USE_CASE_LOGIN, USE_CASE_IDENTITY_REVALIDATION_7_DAYS, USE_CASE_FIN_TRANSACTIONS.
clientReferencestringnoSu identificador interno para este proceso (clave foránea para referencias cruzadas en el portal).
companyBranchIdstring (UUID)noID de sucursal. Requerido solo si la cuenta de servicio tiene más de una sucursal asociada.
expiresInstringnoVentana de validez del proceso desde su creación. Formato: "3600s". Por defecto es 7 días si se omite.
flow_configobjectnoConfiguraciones de sobrescritura por flujo.
flow_config.biometry_capture.enabled_back_camerabooleannoUsa la cámara trasera del dispositivo. No compatible con flujos de captura de documentos o Firma Electrónica.
contextualizationobjectnoContexto de transacción mostrado al usuario durante la jornada para explicar la captura.
contextualization.currencystringnoCódigo de moneda mostrado al usuario. Valores aceptados: BRL, MXN, USD.
contextualization.pricenumbernoMonto de transacción mostrado al usuario.
contextualization.localeobjectnoTexto de motivo localizado. Claves: ptBr, enUs, esMx — cada una con una cadena reason que se muestra durante la jornada.

Ejemplo

curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"callbackUri": "https://app.client.com/callback",
"flow": "idunicodocs",
"purpose": "biometryonboarding",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]"
}
}'

Respuestas

200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_CREATED",
"flow": "idunicosign",
"purpose": "biometryonboarding",
"callbackUri": "https://app.client.com/callback",
"clientReference": "your-internal-id-123",
"companyBranchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"userRedirectUrl": "https://cadastro.unico.app/process/53060f52-f146-4c12-a234-5bb5031f6f5b",
"token": "eyJhbGciOiJSUzI1NiIs...",
"webAppToken": "eyJhbGciOiJSUzI1NiIs...",
"createdAt": "2023-10-09T09:15:25.417105Z",
"expiresAt": "2023-10-09T16:15:25.417105Z",
"capacities": [],
"authenticationInfo": {},
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]",
"notifications": []
},
"companyData": {
"branchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"countryCode": "BR"
}
}
}
CampoTipoDescripción
process.idstring (UUID)Identificador del proceso. Úselo para obtener el resultado mediante Obtener Proceso.
process.stateenumPROCESS_STATE_CREATED — proceso creado, jornada aún no iniciada. PROCESS_STATE_FAILED — falló la creación del proceso.
process.flowstringIdentificador del flujo enviado en la creación.
process.purposestringPropósito de negocio enviado en la creación.
process.callbackUristringURI de callback enviada en la creación.
process.clientReferencestringSu identificador interno enviado en la creación. Solo presente si se proporcionó en la solicitud.
process.companyBranchIdstring (UUID)ID de sucursal. Solo presente si se proporcionó en la solicitud.
process.userRedirectUrlstringURL para redirigir al usuario (integraciones Web Redirect e iFrame). No modifique esta URL.
process.tokenstringJWT para inicializar el iFrame del Web SDK.
process.webAppTokenstringJWT para inicializar SDKs nativos (Android, iOS, Flutter).
process.createdAtstring (date-time)Timestamp de cuándo se creó el proceso.
process.expiresAtstring (date-time)Timestamp a partir del cual el proceso expira y ya no puede completarse.
process.capacitiesarrayCapacidades configuradas para este proceso.
process.authenticationInfoobjectInformación de autenticación del proceso (vacía en el momento de la creación).
process.personobjectReflejo del objeto person enviado en la creación.
process.companyData.branchIdstring (UUID)ID de sucursal asociado al proceso.
process.companyData.countryCodestringCódigo de país asociado a la sucursal (por ejemplo, BR, MX).
400 Bad Request

Se devuelve cuando el payload de la solicitud está mal formado, faltan campos requeridos o el valor de flow es desconocido.

401 Unauthorized

Token Bearer ausente, expirado o inválido. Ver Autenticación.

429 Too Many Requests

Límite de tasa alcanzado. Reintente después del intervalo indicado en los encabezados de respuesta.

Códigos de Error

CódigoMensajeDescripción
3invalid flowCuando el flujo especificado no existe.
3invalid person: friendly name exceeds 50 characters.Cuando el nombre visible supera los 50 caracteres.
3invalid purposeCuando el propósito proporcionado es inválido.
3invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:Cuando el callbackUri proporcionado es inválido.
3invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAILCuando el correo electrónico proporcionado es inválido y la notificación por correo electrónico está configurada.
3invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPPCuando el número de teléfono proporcionado es inválido y la notificación por SMS o WhatsApp está configurada.
3idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui valueCuando el identificador proporcionado (duiValue) es inválido.
3invalid expiresIn argumentCuando el valor de expiresIn es inválido.
9XX ID Apikeys are not setCuando la API Key no está correctamente configurada.

Próximos pasos

  • Después de que el usuario finalice la jornada, llame a Obtener Proceso para obtener el resultado, o espere el webhook.