status, message, id y frontBackTemplateValidation. Esta página explica el resto: qué trae cada bloque, cómo leer las validaciones cruzadas y qué particularidades del contrato rompen deserializadores estrictos.
Campos de primer nivel
Dentro de front y back
Las validaciones del dorso
Los dos 200 que no aprueban
Foto sin documento legible
message cambia, mrz.expected es null (template desconocido), y el arreglo events llega aunque no se haya pedido.
Dorso de otro documento
crossMatchConfidence: la consistencia entre fuentes
Hasta tres bloques —mrzVersusViz, barcodeVersusViz, barcodeVersusMrz—, cada uno con porcentajes de similitud 0–100 por campo; las fechas se desglosan en día/mes/año.
El servicio no impone umbral: la política de aceptación es suya. Decida por campo según qué datos alimentan su proceso. Y en un
/front sin nada que cruzar, crossMatchConfidence llega como {} — es normal, no un error.El antispoofing es informativo
ConantiSpoofingDocument: true la respuesta agrega security; con antiSpoofingFaceInDocument: true, face.notSpoofingConfidence y face.isSpoofing:
Particularidades que rompen deserializadores
mrz.expectedes tri-estado (true | false | null). Tipe como opcional/nullable.mrz.extrastrae números y booleanos como cadenas ("100","True"). No los parsee como number/bool sin conversión.barcode.resultes un arreglo de un elemento, igual quefront/backenGET /{templateId}/images.isNativePersonDocumentes tri-estado.null= indeterminado.- Las claves de
vizvarían por template y pueden faltar o llegar vacías. No asuma un esquema fijo: use/{templateId}/detailscomo contrato por documento. - No dependa del orden de las claves JSON — varía entre las dos variantes de
200.
Errores
Códigos de error, el
422 que devuelve su solicitud completa y cuáles se reintentan.