- Objeto FaceAuthSubmission: lo usan la respuesta de creación de POST, los elementos de
items[]de la consulta de lista y la respuesta de la consulta individual. - Respuestas de error: el formato de error común a todos los endpoints.
- Migrar desde la API anterior: los cambios necesarios para pasar una integración de
/v3/faceautha/v3/face-auth.
Objeto FaceAuthSubmission
Objeto que contiene la información de un envío de FaceAuth: el resultado de autenticación, la política usada para la decisión y las puntuaciones de la decisión.Campos de nivel superior
approved o rejected.yyyy-MM-dd'T'HH:mm:ss.SSSZ. (Por ejemplo, 2026-08-11T10:09:14.028Z)form corresponde a la pantalla de Face Auth URL y api a POST /v3/face-auth.null en los envíos que no se han eliminado.null en los envíos approved.null en los envíos approved.policy. El resto de campos es idéntico.Elementos de policy
Instantánea de la configuración del proyecto en el momento del procesamiento. Cambiar después la configuración del proyecto no altera los valores de los envíos ya creados. Los seis elementos (faceSimilarity, occluded, faceCover, headCover, liveness, activeLiveness) tienen los dos campos siguientes.
threshold.null cuando enabled es false o cuando la política no usa un criterio numérico.enabled es un ajuste del proyecto, no un resultado de ejecución.Una política activada puede no ejecutarse según el modo de envío. Si realmente se ejecutó se determina con el campo correspondiente de result: null significa que no se ejecutó. Hoy la única diferencia de este tipo aparece en activeLiveness. Un envío submitType: api devuelve result.activeLivenessScore como null incluso con enabled: true, y es el comportamiento esperado.Campos de result
El campo de resultado de una política que no se ejecutó esnull. Por ejemplo, un envío con policy.liveness.enabled en false tiene livenessScore como null.
null en los envíos submitType: api.value: true significa que se consideró cubierto y el envío se rechazó.value: false significa que se consideró no llevado y el envío se rechazó. Sus propiedades son las mismas que las de occluded.value: false significa que se consideró no llevado y el envío se rechazó. Sus propiedades son las mismas que las de occluded.occluded, faceCover y headCover comparten la misma estructura. Cuando la comprobación no se ejecutó, el objeto completo es null: nunca se devuelve con solo sus propiedades en null.Campos de signals
Información complementaria recopilada en la pantalla de Face Auth URL. Solo los envíossubmitType: form con valores recopilados contienen datos aquí; en los envíos submitType: api y en aquellos sin valores recopilados el objeto completo es null. Es informativa y no se usa para la decisión de autenticación.
null, no un arreglo vacío.rejectComment y failCode
rejectComment es una explicación legible por personas; failCode es el código sobre el que bifurcar.
Los dos arreglos se corresponden índice a índice y tienen siempre la misma longitud. El motivo de failCode[0] es rejectComment[0].
failCode, consulte POST /v3/face-auth.
Notas para el procesamiento de respuestas
- El conjunto de claves de una respuesta es siempre el mismo. Los valores ausentes llegan como
null, así que no hacen falta comprobaciones deundefinedni de existencia de clave. 0es un valor válido parapolicy.*.threshold. No use una comprobación de tipo falsy para decidir si una política está configurada: useenabled.- Los campos de tipo arreglo son
null, no un arreglo vacío, cuando no hay valor. Aplique un valor por defecto con?? []o compruebe!== nullantes de recorrerlos. - Los objetos anidados (
occluded,faceCover,headCover,signals) sonnullen su totalidad cuando no corresponden. Compruebe si el padre esnullantes de leer sus propiedades. - Cuando el umbral y la puntuación son iguales, se considera que el umbral se cumple.
- Las puntuaciones pueden incluir decimales en lugar de ser enteros. Procéselas como números, no como cadenas.
Respuestas de error
Los errores que devuelve la aplicación de ARGOS usan el formato siguiente.code y message.
Errores de la capa de autenticación (401, 403)
- Trate el
401y el403de la capa de autenticación por estado HTTP, no porcode. Ninguna de las dos respuestas tiene campocode. - El
403tiene dos causas con formatos de respuesta distintos. Si hay campocode, lo devolvió la aplicación; si no lo hay, lo bloqueó la capa de autenticación. - El
messagede un error de la capa de autenticación no lo genera ARGOS y puede cambiar sin previo aviso. No lo procese.
Lista de códigos de error
Migrar desde la API anterior
Si su integración usa el endpoint anterior/v3/faceauth, revise los cambios siguientes. Han cambiado las rutas, los nombres de los campos, los sobres de respuesta y el formato de error.
Endpoints
authId pasa a ser un parámetro de ruta en lugar de un parámetro de consulta, y la consulta de lista y la individual son endpoints separados.
Sobres de respuesta
faceAuth_projectId y statusCode se han eliminado de las respuestas.
Nombres de campos
Cambios estructurales
policy: de umbrales planos a objetos anidados
policy: de umbrales planos a objetos anidados
faceSimilarity_threshold: 85, y solo occluded_threshold era un boolean.La API nueva da a cada elemento un objeto { enabled, threshold }. Si una política se aplicó se determina con enabled, no con el valor de threshold. occluded no usa criterio numérico, así que su threshold es siempre null.result: occluded, faceCover y headCover pasan a ser objetos
result: occluded, faceCover y headCover pasan a ser objetos
occluded: false (boolean) o headCover: 0 (number). En la API nueva los tres son objetos { value, confidence }, y el objeto completo es null cuando la comprobación no se ejecutó.Paginación: de una clave compuesta a un único cursor
Paginación: de una clave compuesta a un único cursor
nextPage_key y esperaba de vuelta su authId y su createTime como nextKey_id y nextKey_date, con el tamaño de página en count (1–2.000, valor predeterminado 2.000).La API nueva devuelve una única cadena firmada, nextCursor, que se reenvía tal cual en cursor, con el tamaño de página en limit (10–200, valor predeterminado 100). Un limit fuera de rango ya no se ignora: devuelve 400 REQUEST_INVALID.Descarga de imagen: del cuerpo binario a una redirección 302
Descarga de imagen: del cuerpo binario a una redirección 302
302 Found con una URL de descarga de vida corta en el encabezado Location, así que el cliente HTTP debe estar configurado para seguir redirecciones (curl --location).Formato de error: de tres formatos a uno
Formato de error: de tres formatos a uno
{ message, errorCode, statusCode }, { traceId, errorCode, message } y { message, statusCode } según el endpoint, y el endpoint de imagen devolvía 403 para cualquier fallo de autenticación.La API nueva devuelve todos los errores de aplicación como { code, message }, con los errores de la capa de autenticación como única excepción. Consulte Respuestas de error más arriba.