Revalidación Silenciosa
Utiliza el motor de Revalidación Silenciosa, que analiza el contexto de comportamiento del usuario dentro del efecto de red de Unico y ofrece la señal de confianza para la transacción actual. En otras palabras, ofrecemos el nivel de confianza de que se trata del usuario esperado en la transacción.
Versión mínima: 3.3.0
| Atributo | Tipo | Requerido | Descripción |
|---|---|---|---|
externalUserId | String | ✅ | Identificador del usuario en su sistema. Se aplica hash automáticamente con SHA-256 antes de la transmisión, nunca se envía en texto plano. |
Paso 1 — Implementar initializeSDK
Llame al método estático UnicoSDK.initializeSDK, pasando su AcessoBioConfigDataSource y el environment.
UnicoSDK.initializeSDK debe llamarse lo antes posible al iniciar la aplicación (por ejemplo, en application(_:didFinishLaunchingWithOptions:)). Llamarlo más tarde reduce el tiempo de procesamiento en segundo plano y aumenta la probabilidad de respuestas de autenticación no concluyentes.
- Swift
- Objective-C
UnicoSDK.initializeSDK(
config: YourUnicoConfig(),
environment: .UAT
)
[UnicoSDK initializeSDKWithConfig:[YourUnicoConfig new] environment:UAT];
El config es el mismo AcessoBioConfigDataSource que ya implementa para la captura — el sdkKey proviene de getHostKey() y el bundle de getBundleIdentifier():
final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
func getBundleIdentifier() -> String { "your_bundle_id" }
func getHostKey() -> String { "your_sdk_key" }
}
Si se omite environment, el valor predeterminado es .PROD.
Paso 2 — Implementar startSilentValidation
Después de initializeSDK, asocie la recolección ya en curso con el usuario identificado llamando a startSilentValidation con un PrepareInfo que contenga el externalUserId.
- Swift
- Objective-C
let prepareInfo = PrepareInfo(externalUserId: "external_user_id")
UnicoSDK.startSilentValidation(prepareInfo: prepareInfo) { result in
switch result {
case .success:
break
case .failure(let error):
print(error.code, error.desc, error.info)
}
}
PrepareInfo *prepareInfo = [[PrepareInfo alloc] initWithExternalUserId:@"external_user_id"
useCase:nil];
[UnicoSDK startSilentValidationWithPrepareInfo:prepareInfo
errorCompletion:^(ErrorBio * _Nullable error) {
if (error == nil) {
// ...
} else {
// error.code, error.desc, error.info
}
}];
Si la validación ocurre al inicio del flujo, por ejemplo en el inicio de sesión, espere el callback de éxito antes de continuar con el Paso 3.
| Código | Significado |
|---|---|
75001 | SDK no inicializado. No se llamó a initializeSDK, aún no ha terminado o falló. |
75000 | Fallo genérico de captura. |
Paso 3 — Crear el proceso y autenticar
Con la validación en curso, cree el proceso de verificación para completar la autenticación. Consulte Referencia de la API ▸ API ▸ Crear Proceso.
Incluya el mismo externalUserId enviado en el PrepareInfo del Paso 2 en el cuerpo de la solicitud — esto es lo que permite que el backend correlacione la creación del proceso con la validación ya 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"
}'
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 — consulte los valores posibles a continuación. |
silentAuth.result — valores posibles
| Valor | Significado |
|---|---|
yes | Autenticación aprobada, usuario reconocido con confianza suficiente, 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. |