Skip to main content

Comparación Facial

Endpoint

POST https://api.verifik.co/v2/face-recognition/compare

Compara una imagen de prueba contra una o más imágenes de galería y retorna un puntaje de similitud. Usa search_mode para balancear velocidad y precisión.

Headers

NameValue
Content-Typeapplication/json
AuthorizationBearer <token>

Parámetros

NameTypeRequiredDescription
probestring[]Array con al menos una cadena de imagen base64.
gallerystring[]Array de cadenas de imagen base64 para comparar.
search_modestringUno de FAST o ACCURATE.
compare_min_scorenumberNoUmbral de aprobación del score de comparación (0.670.95). Por defecto: 0.85.

Solicitud

const fetch = require("node-fetch");

async function run() {
const res = await fetch("https://api.verifik.co/v2/face-recognition/compare", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
probe: ["<base64>"];
gallery: ["<base64>", "<base64>"];
search_mode: "ACCURATE"
}),
});
console.log(await res.json());
}

run();

Respuesta

{
"id": "AB12C",
"data": {
"score": 0.91
},
"signature": {
"message": "Certified by Verifik.co",
"dateTime": "January 16, 2024 3:44 PM"
}
}

Umbrales de comparación facial

ContextoValores típicos / permitidos
SmartEnroll hospedado / project flow (por defecto)0.85 (compareMinScore)
SmartEnroll hospedado / project flow (rango permitido)0.650.95
API directa (compare_min_score)0.670.95 (por defecto 0.85 si se omite)

Los retratos impresos en documentos suelen estar desgastados, rayados o a baja resolución. Algunas cédulas colombianas son especialmente pobres, y el mismo problema de calidad puede aparecer en otros países. Un selfie en vivo vs una foto impresa puntúa más bajo que en vivo vs en vivo. Un score alrededor de 0.65–0.75 puede ser una coincidencia válida para galerías de documentos impresos. Bajar el umbral hospedado hacia 0.65 aumenta la aceptación de coincidencias genuinas y puede subir falsos aceptados. Conserva 0.85 salvo que veas fallos reales. Prefiere imágenes enfocadas en el rostro; cropFace en servidor no está soportado en los endpoints de face-recognition compare (omite el campo; prepara recortes en el cliente si hace falta).

Notas

  • probe y gallery deben ser cadenas base64; las imágenes más cortas que ~100 caracteres son rechazadas con 412:only_images_in_base64.
  • search_mode debe ser FAST o ACCURATE (requerido por validación).
  • La respuesta está envuelta con id, data, y signature según el middleware estándar.
  • No existe GET /v2/face-verifications/:id. Para leer el resultado de comparación en SmartEnroll, usa GET /v2/app-registrations/:id?populates[]=compareFaceVerification. Los registros FaceVerification expiran en unos 90 días en producción (menos en desarrollo).