Verificar que una selfie y la foto del documento corresponden a la misma persona en una sola llamada a la API
POST /api/kyc/validations): Flujo completo con URL alojada, selfie en vivo, liveness y captura de documento. Ideal para onboarding y flujos regulados.POST /api/kyc/face-match): Enviás dos imágenes en Base64 y recibís coincidencia + puntuación. Ideal cuando ya tenés documento y selfie (por ejemplo desde tu propia app).data:image/...;base64,. Formatos: JPEG, PNG, WebP, TIFF. Máx. 5MB por imagen.documentImage.| Campo | Tipo | Descripción |
|---|---|---|
match | boolean | Si las caras se consideraron coincidentes (puntuación ≥ umbral). |
score | number | Puntuación de similitud 0–100. |
status | string | "approved" | "declined" | "in_review". |
verificationId | string | ID del registro de auditoría en face_match_verifications (soporte y listado). |
scoreDeclineThreshold | number | El umbral (0–100) que se usó en esta verificación (configuración de la org). |
requestId | string (opcional) | ID interno de la solicitud (soporte). |
warnings | string[] (opcional) | Advertencias de la verificación. |
| Código | HTTP | Significado |
|---|---|---|
NOT_CONFIGURED | 403 | Credenciales de Face Match no configuradas en la organización. |
NOT_ENABLED | 403 | La integración Face Match no está activada para esta organización. |
INVALID_REQUEST | 400 | Imágenes inválidas o faltantes (formato/tamaño). |
UNAUTHORIZED | 401 | Credenciales de API/verificación inválidas o faltantes. |
QUOTA_EXCEEDED | 403 | No se pudo completar la verificación (cuota/créditos). |
SERVICE_UNAVAILABLE | 503 | Servicio de verificación no disponible temporalmente. |
VERIFICATION_FAILED | 500 | Fallo genérico; reintentar o usar otras imágenes. |
face_match_verifications para auditoría y cumplimiento. La respuesta incluye verificationId (ID del registro de auditoría). En cada registro se guarda también el umbral usado en ese momento (para poder mostrarlo en el historial aunque luego se cambie el umbral de la organización).
| Parámetro | Tipo | Descripción |
|---|---|---|
entityId | string (UUID) | Opcional. Filtrar por entidad persona. |
status | string | Opcional. Filtrar por estado (approved, declined, in_review, failed). |
limit | number | Cantidad máxima (por defecto 50, máx. 100). |
offset | number | Desplazamiento para paginación. |
{ "verifications": [ ... ], "scoreDeclineThreshold": 30, "pagination": { "limit", "offset", "total" } }. Cada verificación incluye id, entityId, status, match, score, threshold (valor usado en esa ejecución), createdAt y opcionalmente rutas de imágenes para auditoría.
verificationId (devuelto en la respuesta del POST o en el listado).
id — UUID de la verificación (el mismo que verificationId del POST o del listado).
Respuesta (200): Un objeto de verificación con los mismos campos que cada ítem del listado: id, organizationId, entityId, status, match, score, requestId, vendorData, errorMessage, triggeredByUserId, createdAt, documentStoragePath, selfieStoragePath, storageProvider, threshold.
Errores: 404 NOT_FOUND si el ID no existe o pertenece a otra organización; 401 UNAUTHORIZED si no hay autenticación.
kyc_validations, envía al usuario a una URL alojada y actualiza el estado vía webhooks. La decisión almacenada incluye documento, liveness y coincidencia facial de la sesión en vivo.face_match_verifications y devuelve el resultado en la misma respuesta. No crea un registro en kyc_validations. Úsalo cuando necesites una verificación puntual (por ejemplo “¿estas dos imágenes son la misma persona?”) sin sesión alojada.