Saltar al contenido principal

Simulación de Resultados (Test Mock)

MarkdownChatGPTClaude

En sandbox, puedes simular un resultado de proceso sin depender de una captura biométrica real. Agrega el campo expected_result al cuerpo de la solicitud de Crear Proceso — el resto de la integración (renderizado del SDK, captura biométrica, Obtener Proceso) permanece exactamente igual que en un flujo real.

El mock no omite el paso de captura biométrica. El usuario (o tu script de prueba) aún necesita completar el flujo normal — lo que cambia es que, una vez finalizado, el proceso devuelve los valores definidos en expected_result en lugar del resultado de la evaluación real.

Cada flow solo acepta uno de los dos formatos siguientes, según cómo esté configurado:

FormatoCuándo usarlo
id_cloud_one_resultFlows que devuelven un único resultado (aprobado, denegado, alto riesgo, etc.)
authentication_infoFlows que devuelven señales individuales (UnicoId, Trust, Liveness, IdAge, IdFace...)

Enviar el formato que no corresponde a tu flow, o enviar ambos a la vez, resulta en un error — ver Errores.

Endpoint​

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

El mock solo está disponible en sandbox. En producción, el campo expected_result es rechazado.

Resultado único — id_cloud_one_result

Usa esto cuando tu flow devuelve un único resultado de tipo aprobación.

Parámetros del cuerpo

CampoTipoRequeridoDescripción
expected_result.​id_cloud_one_resultstringsíEl resultado único a simular. Debe ser un resultado que tu flow realmente produzca — verifica la configuración de tu flow para conocer los resultados que reconoce.

Ejemplo​

curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"id_cloud_one_result": "PROCESS_RESULT_APPROVED"
}
// ... los parámetros restantes son los mismos que usas en una llamada real a Crear Proceso
}'

Respuesta (200 OK)​

{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDCHECK"],
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}

simulated: true marca este proceso como si tuviera un resultado simulado, no una evaluación real.

Los valores posibles de id_cloud_one_result son los mismos valores de resultado de proceso documentados en Interpretación de los resultados — solo envía un resultado que tu flow realmente reconozca.

BrazilSeñales individuales — authentication_info

Usa esto cuando tu flow devuelve señales separadas en lugar de un único resultado.

Cada señal que tu flow normalmente devuelve debe estar presente en authentication_info. Enviar solo algunas de ellas es rechazado — no puedes simular una señal y dejar el resto a la evaluación real.

trust_result vs. identity_fraudsters_result

trust_result y identity_fraudsters_result representan la misma señal (indicación de fraude de identidad): trust_result cubre el lado negativo, identity_fraudsters_result el lado positivo. Usa el que corresponda al resultado que quieres simular.

Para los valores posibles de cada campo, ver Resultados por capacidad en authenticationInfo.

Los flows sin fricción no son compatibles con este formato — ver Señales no compatibles.

Ejemplo​

curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"authentication_info": {
"authentication_result": "AUTHENTICATION_RESULT_POSITIVE",
"liveness_result": "LIVENESS_RESULT_LIVE",
"id_age_result": "ID_AGE_RESULT_POSITIVE"
}
}
// ... los parámetros restantes son los mismos que usas en una llamada real a Crear Proceso
}'

Respuesta (200 OK)​

{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDUNICO", "PROCESS_CAPACITY_IDAGE"],
"authenticationInfo": {
"authenticationResult": "AUTHENTICATION_RESULT_POSITIVE",
"livenessResult": "LIVENESS_RESULT_LIVE",
"idAgeResult": "ID_AGE_RESULT_POSITIVE"
},
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}

Señales no compatibles​

Las siguientes señales no son compatibles con el mock, en ningún formato:

  • multi_accounts
  • data_mismatch
  • serial_fraudster
  • smart_revalidation_result
  • passkey_result (obsoleto)

Los flows sin fricción (autenticación sin captura biométrica) solo son compatibles con el formato id_cloud_one_result — no funcionan con authentication_info.

Notas sobre la respuesta​

El score solo se devuelve cuando el resultado de identidad es inconcluso. El campo score_engine_result solo refleja un valor cuando authentication_result es AUTHENTICATION_RESULT_INCONCLUSIVE. Si simulas authentication_result como POSITIVE o NEGATIVE junto con un score_engine_result distinto de cero, la respuesta final devuelve score_enabled: SCORE_ENABLED_FALSE y score: 0, sin importar el valor enviado.

Este es el comportamiento normal de la API — la misma regla se aplica a procesos reales, no es específico del mock. Si el escenario que quieres probar depende de que el score aparezca en la respuesta, usa authentication_result: AUTHENTICATION_RESULT_INCONCLUSIVE.

Errores​

SituaciónError
expected_result fuera de sandboxPERMISSION_DENIED
id_cloud_one_result y authentication_info enviados juntosINVALID_ARGUMENT
authentication_info: {} vacíoINVALID_ARGUMENT
A authentication_info le falta una señal que el flow devuelveError de validación — incluye todas las señales
Valor de id_cloud_one_result que el flow no reconoceError de validación
El flow no admite mockingError de validación

Próximos pasos​

Después de crear el proceso simulado, completa la captura biométrica normalmente y usa Obtener Proceso para recuperar el resultado simulado.