Recupere un proceso existente por su identificador. Según el contrato de la API, el resultado ya se devuelve de forma sincrónica al crear el proceso — utilice este endpoint para reconsultas, auditoría y soporte.
Antes de recuperar el proceso, revise la configuración de nuestro webhook y las estrategias de fallback — haga clic aquí.
Endpoint
| Entorno | URL |
|---|---|
| Producción | GET https://api.id.unico.app/processes/v1/{processId} |
| Sandbox | GET https://api.id.uat.unico.app/processes/v1/{processId} |
Solicitud
| Encabezado | Valor |
|---|---|
Authorization | Bearer <access_token> |
APIKEY | Clave API provisionada. |
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
processId | string (UUID) | sí | Identificador del proceso devuelto por Crear proceso. |
Ejemplo
- cURL
- Node.js
curl -X GET https://api.id.unico.app/processes/v1/$PROCESS_ID \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY"
import fetch from 'node-fetch';
const res = await fetch(
`https://api.id.unico.app/processes/v1/${processId}`,
{
headers: {
Authorization: `Bearer ${accessToken}`,
APIKEY: apiKey
}
}
);
const result = await res.json();
Respuestas
El contrato es único — el campo idCloud.result contiene el veredicto consolidado de las capacidades utilizadas.
Unico consolida los resultados de las capacidades ejecutadas en un único idCloud.result, listo para decidir el siguiente paso de su flujo — sin necesidad de orquestar resultados individuales.
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"idCloud": {
"result": "approved"
}
}
| Campo | Tipo | Descripción |
|---|---|---|
id | string (UUID) | Identificador del proceso. |
status | integer | 1 (procesando), 2 (divergencia), 3 (finalizado con éxito), 4 (cancelado), 5 (error). |
| idCloud.result | Significado | Acción recomendada |
|---|---|---|
| approved | Persona real e identidad validada. | Continuar con el flujo. |
| denied | Identidad no validada, falló la verificación de vida o se identificó un riesgo extremo. | Finalizar el flujo o redirigir a un flujo alternativo. |
| critical-risk | Se identificó un nivel de riesgo crítico. | Finalizar el flujo o enviar a revisión manual. |
| high-risk | Se identificó un nivel de riesgo alto. | Enviar a revisión manual o a un flujo alternativo. |
| retry | Captura o score insuficiente para evaluar. | Solicitar al usuario una nueva captura. |
| inconclusive | Evidencia insuficiente para un veredicto. | Enviar a revisión manual o a un flujo alternativo. |
Los valores devueltos dependen de la receta configurada en su APIKey. Consulte Flujos para conocer los valores de resultado que puede devolver cada receta.
Los clientes en Brasil pueden recibir la respuesta por capacidadLa estructura general de la respuesta se mantiene igual — el resultado único es el valor predeterminado.

La estructura general de la respuesta se mantiene igual — el resultado único es el valor predeterminado.
Las integraciones en Brasil pueden recibir los resultados abiertos por capacidad. Cada capacidad habilitada en la APIKey agrega su propio bloque a la respuesta — los campos de las capacidades deshabilitadas se omiten.
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"unicoId": {
"result": "yes"
},
"riskLevel": {
"result": "inconclusive"
},
"idFace": {
"personId": "a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890",
"result": "FOUND"
},
"identityFraudsters": {
"result": "inconclusive"
},
"government": {
"serpro": 87
},
"liveness": 1,
"idAge": {
"result": "yes"
},
"cardholderVerification": {
"result": "approved"
}
}
| Campo | Tipo | Descripción |
|---|---|---|
unicoId.result | string | yes, no, inconclusive — consulte Verificación de Identidad. |
riskLevel.result | string | not_approved, critical_risk, high_risk, inconclusive — consulte Clasificación de Riesgo de Fraude. |
idFace.result | string | FOUND — consulte Identificador Facial. |
idFace.personId | string | Identificador opaco estable para el rostro, devuelto junto con idFace.result = FOUND. Cuando no se puede identificar ningún rostro en la imagen, el proceso devuelve el error 20532 en lugar de un bloque idFace. |
identityFraudsters.result | string | Obsoleto. Utilice riskLevel en su lugar. Los clientes con integraciones en curso pueden seguir utilizándolo mientras coordinan la migración con el equipo de su proyecto. |
government.serpro | integer | Puntuación de similitud Serpro (0–100, -1, -2). Disponible solo en Brasil. Consulte Retorno de Similitud Serpro. |
liveness | integer | 1 (aprobado), 2 (fallido) — consulte Detección de Vida. |
idAge.result | string | yes, no, inconclusive — consulte Verificación de Edad. Disponible solo en Brasil. |
score | integer | Puntuación de riesgo probabilística. Presente cuando unicoId.result = inconclusive y la orquestación del score de riesgo está activa. Los valores positivos indican mayor probabilidad de ser el titular; los valores negativos indican mayor riesgo. Disponible solo en Brasil. |
cardholderVerification.result | string | approved, unsure — consulte Cardholder Verification. Ausente mientras status aún no sea 3 (finalizado). Disponible solo en Brasil. |
Los clientes en México pueden recibir el bloque de Verificación RENAPOLa respuesta mantiene la misma estructura y agrega el bloque idGov.

La respuesta mantiene la misma estructura y agrega el bloque idGov.
Las integraciones en México con Verificación RENAPO habilitada reciben un bloque adicional idGov con el registro que RENAPO tiene para la CURP del usuario. Es una respuesta independiente del resultado de identidad.
{
"id": "11111111-2222-3333-4444-555555555555",
"status": 3,
"idCloud": { "result": "approved" },
"idGov": {
"government_valid": true,
"curp": "PUEA880304MDFRJN04",
"government_name": "ANA PRUEBA EJEMPLO",
"date_of_birth": "1988-03-04",
"age": 38,
"gender": "F",
"deceased": false,
"is_mexican": true,
"citizenship": "MEXICO",
"state_of_birth": "Ciudad de México",
"state_iso": "MX-CMX",
"issuing_entity_code": "DF",
"municipality_registration": ""
}
}
| Campo | Tipo | Descripción |
|---|---|---|
idGov | object | Registro de RENAPO para la CURP. Ausente cuando la capacidad no está habilitada. {} cuando RENAPO no respondió. Solo México. Consulte Verificación RENAPO. |
Cuándo usar este endpoint
El contrato de la API devuelve los resultados de forma sincrónica, por lo que la mayoría de las integraciones no necesitan este endpoint. Utilícelo cuando:
- Solo persistió el
processIdy necesita recuperar el resultado completo más adelante (auditoría, soporte). - Sospecha que la respuesta original se perdió en tránsito (error de red después de que la plataforma completó el trabajo).
- Está creando una herramienta de back-office que revisa procesos históricos.
Códigos de error
- 400 Bad Request
- 404 Not Found
- 403 Forbidden
- 410 Gone
- 429 Too Many Requests
- 500 Internal Server Error
| Código | Mensaje | Descripción |
|---|---|---|
20023 | O parâmetro processId não foi informado. | Falta el parámetro de ID del proceso. |
20002 | O parâmetro APIKey não foi informado. | Falta el parámetro APIKEY en el encabezado de la solicitud. |
20001 | O parâmetro authtoken não foi informado. | Falta el parámetro del token de integración en el encabezado de la solicitud. |
| Código | Mensaje | Descripción |
|---|---|---|
50001 | O processo informado não foi encontrado. | El proceso no existe en la base de datos. |
| Código | Mensaje | Descripción |
|---|---|---|
30017 | User does not have permission to perform this action. | JWT malformado o usuario sin permiso para realizar esta operación. |
10502 | O token informado está expirado. | Cuando el token de acceso utilizado ha expirado. |
10501 | O token informado é inválido. | El token de autenticación es inválido. |
10201 | O AppKey informado é inválido. | El parámetro APIKEY no fue ingresado o no existe. |
El proceso existe pero resultó en un error. Devuelve solo id y status: 5.
Se alcanzó el límite de tasa. Cuando su sistema recibe un error HTTP 429, debe implementar mecanismos para prevenir fallos en cascada y evitar empeorar la restricción.
Mejores prácticas:
- Período de enfriamiento (backoff): Detenga o reduzca inmediatamente las solicitudes posteriores de su sistema. No reintente continuamente las solicitudes fallidas en un bucle cerrado.
- Cola y limitación (Queueing & throttling): Almacene en búfer o ponga en cola las solicitudes salientes de su lado para controlar el flujo de tráfico antes de reenviarlas.
- Backoff exponencial con jitter: Al reintentar, aumente el tiempo de espera exponencialmente entre intentos (por ejemplo, 1 s, 2 s, 4 s, 8 s) y agregue un pequeño retraso aleatorio ("jitter") para evitar un efecto de manada donde todas las solicitudes en cola reintentan en el mismo milisegundo exacto.
Enviar solicitudes continuamente a un endpoint con límite de tasa sin aplicar backoff puede prolongar el período de restricción e impactar gravemente el rendimiento operativo de su sistema. Limitar adecuadamente las solicitudes de su lado garantiza una integración más fluida y resiliente.
Para conocer los límites predeterminados, aumentar solicitudes y obtener detalles adicionales, consulte Límites de tasa.
| Código | Mensaje | Descripción |
|---|---|---|
99999 | Internal failure! Try again later | Cuando hay un error interno. |
Flujos
Una receta es la combinación de capacidades (detección de vida, verificación de identidad, señales de riesgo, documentos...) configurada en la APIKey de su proyecto. Define lo que Unico ejecuta en cada proceso y cómo los resultados se consolidan en el único result — no necesita orquestar nada de su lado.
Unico mantiene un catálogo de recetas preestablecidas, nombradas y versionadas (por ejemplo, byunico-idlive-idunico-oneresponse-std). Algunas son exclusivas de Brasil, como las que incluyen Score, Serpro o verificación de edad.
La combinación de capacidades — el flujo de su proyecto — se define en la configuración de su APIKey. Consulte las recetas preestablecidas o hable con su contacto de proyecto de Unico para personalizarla.