Revalidación silenciosa
| Atributo | Tipo | Requerido | Descripción |
|---|---|---|---|
externalUserId | String | ✅ | Identificador del usuario en tu sistema. Se aplica automáticamente un hash SHA-256 antes de la transmisión, nunca se envía en texto plano. |
Paso 1 — Implementar initializeSDK
Crea una nueva clase u objeto UnicoSDK, con un método estático initializeSDK que devuelve la instancia de UnicoSDK, recibiendo el context y un UnicoSDKConfig con tu sdkKey, bundleId y environment. Guarda la instancia devuelta — la necesitarás más adelante para llamar a startSilentValidation desde Java.
UnicoSDK.initializeSDK debe llamarse lo antes posible al iniciar la app (por ejemplo, en Application.onCreate). Llamarlo más tarde reduce el tiempo de procesamiento en segundo plano y aumenta la probabilidad de respuestas de autenticación no concluyentes.
- Kotlin
- Java
UnicoSDK.initializeSDK(
context,
UnicoSDKConfig(
sdkKey = "your_sdk_key",
bundleId = "your_bundle_id",
environment = Environment.UAT
)
)
UnicoSDK sdk = UnicoSDK.initializeSDK(
context,
new UnicoSDKConfig("your_sdk_key", "your_bundle_id", Environment.UAT)
);
Paso 2 — Implementar startSilentValidation
Después de initializeSDK, asocia la recolección que ya está en curso con el usuario identificado llamando a startSilentValidation con un PrepareInfo que contenga el externalUserId.
- Kotlin
- Java
val prepareInfo = PrepareInfo(
externalUserId = "external_user_id"
)
UnicoSDK.startSilentValidation(prepareInfo)
.onSuccess { result -> /* ... */ }
.onFailure { error -> /* ... */ }
startSilentValidation es una función suspendida (suspend) de Kotlin y no puede llamarse directamente desde Java. Agrega un pequeño puente de Kotlin a tu proyecto que inicie la corrutina y exponga una interfaz de callback simple.
interface SilentAuthCallback {
fun onSuccess(success: Boolean)
fun onFailure(message: String?)
}
object SilentAuthBridge {
@JvmStatic
fun startSilentValidation(
owner: LifecycleOwner,
sdk: UnicoSDK,
externalUserId: String,
callback: SilentAuthCallback
) {
owner.lifecycleScope.launch {
val result = sdk.startSilentValidation(PrepareInfo(externalUserId, null))
result.onSuccess { callback.onSuccess(it.success) }
.onFailure { callback.onFailure(it.message) }
}
}
}
SilentAuthBridge.startSilentValidation(this, sdk, externalUserId, new SilentAuthCallback() {
@Override
public void onSuccess(boolean success) {
/* ... */
}
@Override
public void onFailure(String message) {
/* ... */
}
});
Si la validación ocurre al inicio del flujo, por ejemplo durante el inicio de sesión, espera el callback onSuccess antes de continuar con el Paso 3.
Paso 3 — Crear el proceso y autenticar
Con la validación en curso, crea el proceso de verificación para completar la autenticación. Consulta Referencia de API ▸ API ▸ Crear proceso.
Incluye el mismo externalUserId enviado en el PrepareInfo del Paso 2 en el cuerpo de la solicitud — esto es lo que permite al backend correlacionar la creación del proceso con la validación que ya está en curso.
curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"externalUserId": "external_user_id",
"imageBase64": "/9j/4AAQSkZJR..."
}'
La respuesta incluye el campo silentAuth.result con el resultado de la autenticación:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| Campo | Tipo | Descripción |
|---|---|---|
silentAuth.result | string | yes o no — consulta los valores posibles a continuación. |
silentAuth.result — valores posibles
| Valor | Significado |
|---|---|
yes | Autenticación aprobada, usuario reconocido con suficiente confianza, no se necesita captura adicional. |
no | Datos insuficientes para aprobar de forma silenciosa. Se recomienda autenticar mediante biometría (selfie) u otro método alternativo. |