Visión general
La verificación de comprobantes de domicilio (POA) emite advertencias enpoa_verifications[].warnings[] por cada problema de calidad, autenticidad o coincidencia detectado durante la extracción y el análisis forense. Cada advertencia es un objeto Warning con feature establecido en "PROOF_OF_ADDRESS". Unos pocos riesgos siempre fuerzan Declined; el resto sigue la acción configurada para cada riesgo (DECLINE / REVIEW / NO_ACTION) configurada en tu flujo.
Cada riesgo de la lista siguiente se ha verificado en el pipeline de decisiones en producción; las cadenas exactas de las descripciones corta y larga se reproducen literalmente en las tablas.
La extracción de POA añade una latencia de 5–15 segundos por documento. Las advertencias se escriben solo cuando se completa el paso del flujo; no consultes con una frecuencia mayor de una vez cada 5 s.
Dos rutas de producción
Las advertencias de POA se generan en dos rutas distintas, y el conjunto de riesgos difiere entre ellas:- Sesiones de flujo de trabajo (el paso de POA dentro de una sesión de verificación): el endpoint de carga ejecuta primero una validación bloqueante con un bucle de reintentos (consulta Comportamiento de reintentos) y, después, las advertencias finales almacenadas se calculan con
check_poa_risksmás la comprobación de nombres entre varios documentos. - API independiente (
POST /v3/poa/): las advertencias provienen únicamente decheck_poa_risks. No hay bucle de reintentos, ni contexto de documento de identidad verificado, y solo hay un documento, por lo que la API independiente nunca generaNAME_MISMATCH_ID_VERIFICATION,POA_NAME_MISMATCH_BETWEEN_DOCUMENTS,POA_MAX_ATTEMPTS_EXCEEDEDniFUTURE_ISSUE_DATE. En esta ruta se descartan los errores de validación previos a la extracción.
POOR_DOCUMENT_QUALITY está definido en el enum de riesgos y reservado en el mapeo de acciones, pero ninguna ruta de código del pipeline de POA lo genera: nunca aparece en warnings[] en ninguna de las dos rutas. No bases tu lógica en él.
Advertencias de rechazo automático (siempre fuerzan Declined)
Estos riesgos están en AUTO_DECLINE_RISKS; cuando se registran, el estado de la POA es Declined independientemente de la configuración, y log_type es siempre error.
FUTURE_ISSUE_DATE también figura en AUTO_DECLINE_RISKS, pero tiene un único origen en la validación previa a la extracción (una fecha de emisión más de 7 días en el futuro), cuyos errores solo alimentan el bucle de reintentos del flujo: allí aparece como un error de subida bloqueante, la API independiente nunca lo genera y no se escribe en warnings[]. Consulta Comportamiento de reintentos.
Advertencias configurables
Cada una de estas advertencias sigue un ajuste de acción del nodo POA del flujo (DECLINE / REVIEW / NO_ACTION). El log_type de la advertencia refleja la acción configurada: error para Rechazar, warning para Revisar y information para Sin acción.
Hay una única acción compartida para todas las discrepancias de nombre y dirección:
poa_name_or_address_mismatch_action abarca ambos riesgos de nombre, ambos riesgos de dirección y la comprobación de nombre entre documentos, por lo que no puedes configurar por separado el comportamiento ante discrepancias de nombre y de dirección. En la API independiente, ese mismo grupo sigue la opción de solicitud poa_address_mismatch_action (la opción poa_name_mismatch_action se acepta, pero nunca se lee).Diferencias de la API independiente (POST /v3/poa/)
El endpoint independiente construye la misma correspondencia entre riesgos y acciones, pero con opciones a nivel de solicitud que solo aceptan DECLINE o NO_ACTION (todas con DECLINE como valor predeterminado):
UNABLE_TO_EXTRACT_ISSUE_DATEyPOA_NAME_NOT_DETECTEDestán fijadas en Rechazar en este endpoint.POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATIONyUNPARSABLE_OR_INVALID_ADDRESSson informativas aquí: sus acciones son Sin acción por defecto y no se pueden configurar por solicitud.FUTURE_ISSUE_DATE,POOR_DOCUMENT_QUALITY,NAME_MISMATCH_ID_VERIFICATION,POA_NAME_MISMATCH_BETWEEN_DOCUMENTSyPOA_MAX_ATTEMPTS_EXCEEDEDnunca se generan: un documento con fecha futura no se rechaza automáticamente en este endpoint.
Comportamiento de reintento (sesiones de flujo)
En una sesión de verificación, el paso de carga de POA ejecuta una validación bloqueante antes de aceptar el documento. Cuando encuentra un error bloqueante (INVALID_DOCUMENT_TYPE, UNABLE_TO_EXTRACT_ISSUE_DATE, FUTURE_ISSUE_DATE, POA_NAME_NOT_DETECTED, MISSING_ADDRESS_INFORMATION, POA_COUNTRY_MISMATCH_WITH_PROVIDED, POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION, UNSUPPORTED_DOCUMENT_LANGUAGE o POA_DOCUMENT_EXPIRED), la carga se rechaza con 400 y el código de riesgo como mensaje, y el usuario puede volver a intentarlo con un documento mejor.
Para POA_DOCUMENT_EXPIRED, el cuerpo del 400 también incluye expiration_reason (printed_expiration o age_window) para que tu interfaz pueda mostrar el motivo exacto; en el caso de age_window incluye además max_age_months. En el caso de printed_expiration, max_age_months se omite intencionadamente, porque el documento se rechazó por su fecha de caducidad impresa y no por una ventana de antigüedad.
Una vez que el usuario ha agotado los poa_max_retry_attempts intentos (2 por defecto, configurable entre 2 y 5), el envío se acepta de todos modos: las advertencias almacenadas se vuelven a calcular a partir del documento guardado, se añade POA_MAX_ATTEMPTS_EXCEEDED y el estado se resuelve a partir del conjunto completo de riesgos. Por eso FUTURE_ISSUE_DATE puede bloquear una carga y, aun así, nunca aparecer en warnings[].
Ajustes configurables
El nodo POA del flujo expone estos ajustes (que corresponden a los campos deVerificationSettings):
Lógica de coincidencia de nombres
La coincidencia de nombres de POA tolera las variaciones habituales:- Segundos nombres e iniciales: se comparan con flexibilidad (se permite que estén presentes o ausentes).
- Nombres candidatos: se puntúa cada nombre detectado en el documento (
name_on_documentmásadditional_names) y se conserva el candidato con la mejor puntuación. - Umbral de coincidencia: el valor predeterminado de
poa_name_match_score_thresholdes 86; una puntuación inferior activa la advertenciaNAME_MISMATCH*correspondiente.
name_match_score_expected_details y name_match_score_id_verification (0–100). Los valores de puntuación son útiles para una revisión detallada incluso cuando no se ha generado ninguna advertencia.
Ejemplos
Manipulación mediante superposición (rechazo por defecto)
Documento expirado + dirección ausente (rechazo automático)
Nombre que no coincide (revisión por defecto)
Relacionado
- Informe de prueba de domicilio: estructura completa de la respuesta, análisis forense de manipulación por superposición y significado de los estados
- Visión general de la prueba de domicilio: tipos de documento aceptados
- Modelos de datos: prueba de domicilio: esquema canónico y objeto Warning
- Webhooks:
status.updatedincluye las advertencias de POA