Ir al contenido

Umbrales de biometría (V3)

Ver como Markdown Lee esta página como texto plano Abrir en ChatGPT Haz preguntas sobre esta página Abrir en Claude Haz preguntas sobre esta página Abrir en Perplexity Haz preguntas sobre esta página

Solo disponible en V3

Durante la verificación comparamos el rostro de la credencial con la selfie del usuario y revisamos que la persona esté realmente frente a la cámara (prueba de vida). Cada comprobación da un porcentaje, y la sesión la aprueba solo si ese porcentaje alcanza un umbral: el porcentaje mínimo de aceptación.

Al crear la sesión puedes fijar tus propios umbrales para que la verificación sea más estricta o más flexible según tu caso de uso. Si no envías ninguno, se aplican los valores por defecto.

ParámetroQué comparaRango permitidoPor defectoAprueba cuando
face_match_thresholdEl rostro de la credencial contra la selfie.70 a 10090La similitud es mayor o igual al umbral.
liveness_thresholdLa confianza de la prueba de vida.50 a menos de 10080La confianza es mayor al umbral.
qr_face_match_thresholdLa fotografía del QR del reverso contra el rostro de la credencial. Solo aplica si la sesión se creó con qr_validation: true.70 a 10080La similitud es mayor o igual al umbral.

Todos son porcentajes y aceptan decimales, por ejemplo 87.5.

Envía los umbrales en el cuerpo de la solicitud al crear la sesión. Puedes mandar uno, dos o los tres: los que omitas toman su valor por defecto.

{
"validations": ["INE", "CURP"],
"face_match_threshold": 92,
"liveness_threshold": 85
}

La respuesta de creación confirma los umbrales de la sesión en la raíz del objeto, incluidos los que tomaron su valor por defecto:

{
"uuid": "870c7eee-3604-4995-aa98-bc8fa6aa1112",
"status": "OPEN",
"verification_url": "https://kyc.verificamex.com/verify/870c7eee-3604-4995-aa98-bc8fa6aa1112?t=...",
"liveness_threshold": 85,
"face_match_threshold": 92,
"qr_face_match_threshold": 80,
"result": null
}

El detalle de la sesión y el webhook los incluyen en el objeto thresholds, junto a coincidence (la similitud facial que obtuvo el usuario). Así puedes ver contra qué valor se calificó cada sesión:

{
"data": {
"id": "870c7eee-3604-4995-aa98-bc8fa6aa1112",
"status": "FINISHED",
"result": 100,
"coincidence": 95.1,
"thresholds": {
"liveness": 85,
"face_match": 92,
"qr_face_match": 80
}
}
}
CampoTipoDescripción
thresholds.face_matchNumberUmbral de comparación facial con el que se calificó la sesión. Siempre trae un valor.
thresholds.livenessNumber o nullUmbral de la prueba de vida: el que enviaste o el valor por defecto (80).
thresholds.qr_face_matchNumber o nullUmbral de la fotografía del QR: el que enviaste o el valor por defecto (80).

Si una comprobación no alcanza su umbral, se agrega una entrada al arreglo errors y el result de la sesión pasa a 0, sin importar que Lista Nominal o RENAPO hayan pasado.

KeySe agrega cuando
FACE-MATCH-KYC-001La similitud entre la credencial y la selfie es menor que face_match_threshold.
LIVENESS-KYC-001La prueba de vida no se completó, o su confianza no superó liveness_threshold.
QR-KYC-003La fotografía del QR no alcanzó qr_face_match_threshold. Solo cuando el QR se leyó con éxito: ver Cómo afecta el resultado.

La entrada de FACE-MATCH-KYC-001 indica en Output el umbral con que se comparó. La similitud llega en 0 porque, como se explica arriba, no se informa cuando queda por debajo del umbral:

{
"Key": "FACE-MATCH-KYC-001",
"Name": "Comprobación facial",
"Category": "KycBiometryValidation",
"Result": false,
"Output": "face_match_confidence=0; umbral=92",
"Message": "La comprobación facial de kyc.verificamex.com no alcanzó el umbral requerido"
}

Por ejemplo, con face_match_threshold: 92:

  1. Similitud de 95.1: aprueba la comparación facial y coincidence es 95.1.
  2. Similitud de 92: aprueba, porque es igual al umbral, y coincidence es 92.
  3. Similitud menor que 92: coincidence llega en 0, se agrega FACE-MATCH-KYC-001 a errors y el result pasa a 0.
  • Subir un umbral hace la verificación más estricta: baja el riesgo de suplantación, pero rechaza a más personas legítimas, por ejemplo cuando la foto de la credencial es antigua, hay poca luz o la cámara es de baja calidad.
  • Bajar un umbral reduce los rechazos, pero aumenta el riesgo de aprobar a alguien que no es el titular de la credencial.

Te recomendamos empezar con los valores por defecto, revisar cuántas sesiones se rechazan con FACE-MATCH-KYC-001 o LIVENESS-KYC-001 y qué coincidence obtienen las aprobadas, y ajustar en pasos pequeños.

Si un umbral está fuera de su rango o no es un número, la sesión no se crea y recibes un 422 que indica el campo con el problema:

{
"message": "face_match_threshold debe ser de al menos 70.",
"errors": {
"face_match_threshold": [
"face_match_threshold debe ser de al menos 70."
]
}
}
Valor enviadoMensaje
face_match_threshold o qr_face_match_threshold menor que 70… debe ser de al menos 70.
face_match_threshold o qr_face_match_threshold mayor que 100… no puede ser mayor que 100.
liveness_threshold menor que 50liveness_threshold debe ser de al menos 50.
liveness_threshold de 100 o másliveness_threshold debe ser menor que 100.
Un valor que no es número… debe ser un número.

Por sesión

Cada sesión puede llevar sus propios umbrales.

Sin costo adicional

Configurarlos no consume tokens extra.

Rostro: 90 por defecto

Si no envías nada, se mantiene el criterio de siempre.

Visibles en la respuesta

El detalle y el webhook indican contra qué valor se calificó.