Saltar al contenido principal

Obtener proceso

advertencia

Antes de recuperar el proceso, revisa la configuración de nuestro webhook y las estrategias de fallback — haz clic aquí.

Endpoint

EntornoURL
ProducciónGET https://api.idcloud.unico.app/client/v1/process/{processId}
SandboxGET https://api.idcloud.uat.unico.app/client/v1/process/{processId}

Solicitud

Encabezados
EncabezadoValor
AuthorizationBearer <access_token>
Parámetros de ruta
ParámetroTipoRequeridoDescripción
processIdstring (UUID)Identificador del proceso devuelto por Crear proceso.

Ejemplo

curl -X GET https://api.idcloud.unico.app/client/v1/process/$PROCESS_ID \
-H "Authorization: Bearer $TOKEN"

Respuestas

200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"flow": "idchecktrust",
"callbackUri": "https://example.com/callback",
"userRedirectUrl": "https://example.com/redirect",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"createdAt": "2024-01-01T10:00:00Z",
"finishedAt": "2024-01-01T10:15:00Z",
"expiresAt": "2024-01-08T10:00:00Z",
"purpose": "VERIFICATION",
"clientReference": "client-ref-abc",
"useCase": "smart_revalidation",
"capacities": ["liveness", "face_match"],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"notifications": [
{
"notificationChannel": "email"
}
]
},
"authenticationInfo": {
"authenticationId": "auth-123",
"livenessResult": "LIVENESS_RESULT_LIVE",
"authenticationResult": "AUTHENTICATION_RESULT_INCONCLUSIVE",
"identityFraudstersResult": "TRUST_RESULT_INCONCLUSIVE",
"bioTokenEngineResult": "BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED",
"smartRevalidationResult": "SMART_REVALIDATION_RESULT_UNSPECIFIED",
"idAgeResult": "ID_AGE_RESULT_UNSPECIFIED",
"scoreEngineResult": {
"scoreEnabled": "SCORE_ENABLED_TRUE",
"score": 85.5
}
},
"companyData": {
"branchId": "branch-123",
"countryCode": "BR"
},
"bioTokenData": {
"referenceProcessId": "ref-proc-123",
"authenticationId": "auth-ref-123"
},
"services": [
{
"envelopeId": "4d4f3d90-04a3-4259-b63b-930ab10d2e47",
"documentIds": ["doc-abc-123"],
"consent_granted": true,
"documents": [
{
"doc_id": "doc-abc-123",
"typified": true,
"cpf_match": true,
"face_match": true,
"validate_doc": true,
"reused_doc": false,
"signed_url": "https://example.com/doc?token=xyz",
"doc": {
"version": 1,
"code": "CNH",
"data": {
"numero": "044589731564",
"cpfNumero": "12345678909",
"nomeCivil": "Luke Skywalker",
"dataNascimento": "1990-05-12T00:00:00Z",
"dataExpiracao": "2027-12-07T00:00:00Z",
"categoria": "B"
}
}
}
]
}
]
}
}
Campos de nivel superior
CampoTipoDescripción
process.idstring (UUID)Identificador del proceso.
process.flowstringIdentificador del flujo enviado en la creación.
process.callbackUristringURL de callback configurada para eventos del proceso.
process.userRedirectUrlstringURL para redirigir al usuario después de completar el recorrido.
process.stateenumEstado actual del proceso. Consulte los valores a continuación.
process.resultenumResultado de la verificación. Presente solo cuando state = PROCESS_STATE_FINISHED.
process.createdAtstring (datetime)Marca de tiempo ISO 8601 de cuando se creó el proceso.
process.finishedAtstring (datetime)Marca de tiempo ISO 8601 de cuando finalizó el proceso. Presente solo cuando state = PROCESS_STATE_FINISHED.
process.expiresAtstring (datetime)Marca de tiempo ISO 8601 de cuando expira el proceso.
process.purposestringPropósito del proceso según lo configurado en el flujo.
process.clientReferencestringReferencia opcional del lado del cliente para indexación en el portal.
process.useCasestringIdentificador del caso de uso asociado al flujo.
process.capacitiesarray of stringsLista de capacidades activadas en este proceso.
process.tokenstringJWT firmado para integración con SDK.
process.personobjectIdentificación proporcionada en la creación.
process.person.notificationsarrayCanales de notificación configurados para el recorrido (por ejemplo, email).
process.authenticationInfoobjectResultados por capacidad. Consulte a continuación.
process.companyDataobjectContexto de empresa y sucursal.
process.companyData.branchIdstringIdentificador de sucursal.
process.companyData.countryCodestringCódigo de país ISO 3166-1 alfa-2.
process.bioTokenDataobjectInformación del proceso de referencia, presente solo en flujos de Validación 1:1 y Revalidación Inteligente.
process.servicesarraySobres firmados, documentos capturados y otras salidas de servicio. Consulte a continuación.
Valores de process.state
ValorSignificado
PROCESS_STATE_CREATEDProceso creado; el usuario aún no ha completado el recorrido.
AWAITING_FOR_DOCUMENTProceso creado sin documento de identificación; esperando que se establezca mediante Establecer documento del proceso. Solo presente cuando el flujo personalizado permite documento opcional.
PROCESS_STATE_FINISHEDRecorrido completado. Verifique result y authenticationInfo.
PROCESS_STATE_FAILEDError de procesamiento.
Inconsistencia en el nombre del estado

AWAITING_FOR_DOCUMENT no sigue la convención de prefijo PROCESS_STATE_* utilizada por los demás estados. Esta es una inconsistencia de nomenclatura conocida en la API actual.

Valores de process.result
ValorSignificado
PROCESS_RESULT_OKTodas las capacidades devolvieron resultados positivos.
PROCESS_RESULT_INVALID_IDENTITYAl menos una capacidad devolvió un negativo definitivo (por ejemplo, detección de vida fallida, identidad no coincidente).
PROCESS_RESULT_ERRORError durante el procesamiento del resultado.
PROCESS_RESULT_EXPIREDEl proceso expiró antes de completar el recorrido.
PROCESS_RESULT_UNSPECIFIEDProceso aún no finalizado.
Resultados de capacidades en authenticationInfo

Todos los campos se devuelven siempre independientemente del flujo. Los campos para capacidades no utilizadas en el flujo devuelven *_UNSPECIFIED.

Valores de enum abreviados

Los valores abreviados (por ejemplo, livenessResult = LIVE, authenticationResult = INCONCLUSIVE) se mapean directamente a los valores de enum completos documentados aquí (LIVENESS_RESULT_LIVE, AUTHENTICATION_RESULT_INCONCLUSIVE, etc.): el prefijo se omite por brevedad.

CampoCapacidadValores posibles
authenticationId-Identificador único para este intento de autenticación.
livenessResultDetección de VidaLIVENESS_RESULT_LIVE, LIVENESS_RESULT_NOT_LIVE, LIVENESS_RESULT_UNSPECIFIED
authenticationResultVerificación de IdentidadAUTHENTICATION_RESULT_POSITIVE, AUTHENTICATION_RESULT_NEGATIVE, AUTHENTICATION_RESULT_INCONCLUSIVE, AUTHENTICATION_RESULT_UNSPECIFIED
identityFraudstersResultClasificación de Riesgo de FraudeTRUST_RESULT_YES, TRUST_RESULT_INCONCLUSIVE, TRUST_RESULT_UNSPECIFIED
bioTokenEngineResultValidación 1:1BIO_TOKEN_ENGINE_RESULT_POSITIVE, BIO_TOKEN_ENGINE_RESULT_NEGATIVE, BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED
smartRevalidationResultRevalidación InteligenteSMART_REVALIDATION_RESULT_POSITIVE, SMART_REVALIDATION_RESULT_NEGATIVE, SMART_REVALIDATION_RESULT_UNSPECIFIED
idAgeResultVerificación de EdadID_AGE_RESULT_POSITIVE, ID_AGE_RESULT_NEGATIVE, ID_AGE_RESULT_INCONCLUSIVE, ID_AGE_RESULT_UNSPECIFIED
scoreEngineResult.scoreEnabledScore de RiesgoSCORE_ENABLED_TRUE, SCORE_ENABLED_FALSE, SCORE_ENABLED_UNSPECIFIED
scoreEngineResult.scoreScore de RiesgoNúmero de -100 a +100. Presente cuando authenticationResult = AUTHENTICATION_RESULT_INCONCLUSIVE y Score de Riesgo está habilitado.
serproResult.scoreRetorno de Similitud Serpro0-100 (similitud); -1 (sin rostro en archivo para este CPF); -2 (error de integración).
Campos de process.services
Convenciones de nomenclatura mixtas en services

El array services utiliza camelCase para los campos a nivel de sobre (envelopeId, documentIds) y snake_case para los campos a nivel de documento (doc_id, consent_granted, face_match, etc.). Esto refleja la respuesta real de la API — ambas convenciones son intencionales y no constituyen un error de documentación.

CampoTipoDescripción
envelopeIdstring (UUID)Identificador del sobre firmado.
documentIdsarray of stringsIDs de documentos capturados en este servicio.
consent_grantedbooleanSi el usuario otorgó consentimiento para compartir datos.
documentsarrayDocumentos capturados con datos OCR y resultados de validación.
documents[].doc_idstringIdentificador del documento.
documents[].typifiedbooleanSi el tipo de documento fue identificado exitosamente.
documents[].cpf_matchbooleanSi el CPF del documento coincide con el CPF proporcionado.
documents[].face_matchbooleanSi el selfie coincide con la foto del documento.
documents[].validate_docbooleanSi el documento pasó la validación de autenticidad.
documents[].reused_docbooleanSi este documento fue reutilizado de un proceso anterior.
documents[].signed_urlstringURL pre-firmada para descargar el PDF del documento (válida por 5 minutos; vuelva a consultar para renovar).
documents[].doc.versionintegerVersión del esquema OCR.
documents[].doc.codestringCódigo del tipo de documento (por ejemplo, CNH, RG).
documents[].doc.dataobjectCampos OCR extraídos. El contenido varía según el tipo de documento y los datos disponibles. Los nombres de campo dentro de doc.data (por ejemplo, nomeCivil, dataNascimento) se devuelven en portugués — estos son los valores reales producidos por el motor OCR.
400 Bad Request

El parámetro de ruta processId falta o está malformado.

401 Unauthorized

Token Bearer ausente, expirado o inválido.

404 Not Found

El processId no existe o no pertenece al tenant autenticado.

429 Too Many Requests

Límite de tasa alcanzado. 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 espera (backoff): Detenga o limite inmediatamente las solicitudes subsecuentes de su sistema. No reintente continuamente solicitudes fallidas en un bucle cerrado.
  • Cola y limitación: Almacene en buffer o encole 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 prevenir un efecto manada donde todas las solicitudes en cola reintentan en el mismo milisegundo.
advertencia

Golpear continuamente un endpoint con límite de tasa sin aplicar backoff puede prolongar el período de restricción e impactar severamente el rendimiento operativo de su sistema. Limitar adecuadamente las solicitudes de su lado asegura una integración más fluida y resiliente.

Para límites predeterminados, solicitudes de aumento y detalles adicionales, consulte Límites de tasa.

Códigos de error

CódigoMensajeDescripción
3process id is invalidCuando el ID del proceso es inválido.

Polling vs webhook

Puede consultar este endpoint para verificar el progreso, pero el patrón recomendado es suscribirse a un webhook y solo llamar a este endpoint como respaldo. Consulte Webhooks y eventos.

Qué sigue