Skip to main content

Tabla de códigos

200 no significa aprobado. Significa que el análisis se completó. Un intento de suplantación detectado también responde 200, con spoofing: true. La aprobación exige las dos condiciones: status === 200 && spoofing === false.

Los dos 422

El mismo código cubre dos problemas completamente distintos, con dos dueños distintos. Distíngalos por la presencia de detail, no por el código HTTP.
Sin rostro es un problema de captura: pida una foto nueva con instrucciones concretas —rostro centrado, buena luz, sin objetos delante—. No es un bug y no se arregla reintentando la misma imagen. Note que esta respuesta trae spoofing: true: si su código aprueba por descarte, aquí aprueba a alguien de quien ni siquiera vio la cara. Cuerpo inválido es un problema de código. detail[].loc le dice exactamente qué campo está mal; en el ejemplo, info se envió como objeto cuando el contrato pide una cadena. Se arregla en su lado y se reproduce siempre.

400: la imagen no cumple un requisito duro

Valide las dimensiones antes de llamar. Es más rápido, más barato y le permite pedirle al usuario una captura nueva sin esperar el viaje de ida y vuelta.

401: credenciales

Note que este cuerpo usa statusCode, no code, y no trae id: se rechaza antes de crear una transacción. Revise que la cabecera se llame exactamente Api-Key y que la clave corresponda al ambiente de la URL base que está usando. Mezclar la clave de homologación con la URL de producción es la causa más común.

500: no todos son del servicio

Un 500 parece un problema del proveedor, pero en la práctica la mayoría los provoca la solicitud: de los cinco cuerpos 500 observados en pruebas, cuatro se originaban en el pedido —una imagen que el decodificador no podía procesar, un payload malformado—. La prueba confiable es el determinismo:
1

Reintente la misma solicitud una vez

Con el mismo cuerpo, sin modificar nada.
2

Compare el error

Si vuelve el mismo error, el problema está en su solicitud: revise la imagen y el payload. Si vuelve distinto o la llamada tiene éxito, fue transitorio.
3

Si es determinista, no siga reintentando

Abra un ticket con el id y el cuerpo del error. Reintentar solo agrega carga.

Política de reintentos

Nunca reintente una respuesta 200 con spoofing: true. Es un veredicto, no una falla. Un reintento que «arregla» un rechazo está aprobando fraude.

Abrir un ticket

Escriba a customer.support@vusecurity.com con:
No adjunte la imagen original salvo que soporte se la pida explícitamente y por un canal acordado: es un dato biométrico de una persona real.

Volver a la introducción

La regla de decisión, los endpoints y la autenticación.
Última modificación el 9 de septiembre de 2026