Pro edición
Cumplimiento
De un vistazo
Sección titulada «De un vistazo»NextPDF Pro genera informes sobre eventos de etiqueta de idioma de PDF/UA-2, valida e incrusta XML de factura electrónica Factur-X / ZUGFeRD, e incrusta o lee almacenes de manifiesto C2PA. Estas funciones producen informes y resultados estructurados. No certifican un documento ni garantizan su suficiencia regulatoria.
Disponibilidad y licencias
Sección titulada «Disponibilidad y licencias»Esta capacidad se distribuye en NextPDF Pro (nextpdf/pro) y se activa con un envoltorio de licencia de nivel Pro. Un despliegue sin ese derecho no carga las clases de la capacidad. Compliance forma parte de la edición Pro; no hay un indicador de licencia por función independiente. Compare ediciones y obtenga una licencia.
Instalación
Sección titulada «Instalación»composer require nextpdf/pro:^3Descripción conceptual
Sección titulada «Descripción conceptual»El módulo Compliance tiene tres superficies independientes.
Informe de etiquetas de idioma. LangComplianceReporter emite un registro JSON estructurado por cada evento de etiqueta de idioma de PDF/UA-2. Cada registro lleva la etiqueta infractora, una razón legible por máquina, los componentes de la etiqueta analizados, una referencia a la cláusula ISO 14289-2 §8.4.4 y una marca de tiempo. ConformancePolicy es una fachada Premium cuyo valor predeterminado es el tratamiento estricto del idioma de UA-2: falla de forma cerrada cuando una etiqueta BCP-47 malformada o no registrada llega a la entrada /Lang. Una exclusión laxa (ConformancePolicy::withStrictUa2(false)) revierte al comportamiento permisivo heredado y registra un aviso. NextPDF marca esa exclusión como obsoleta; use en su lugar el valor predeterminado estricto. La exclusión existe desde v5.0 y desaparece en la próxima versión mayor. Para migrar, audite su corpus en busca de valores /Lang malformados, corríjalos y luego elimine la llamada de exclusión para que se aplique el valor predeterminado estricto.
Tratamiento de facturas electrónicas. EInvoiceValidator comprueba un PDF híbrido frente al modelo de datos semántico EN 16931 y la especificación de contenedor Factur-X 1.08 / ZUGFeRD 2.4. Detecta el perfil, ejecuta el motor de reglas de negocio de EN 16931 y ejecuta una pasada Schematron. Antes de validar, extrae el XML de factura incrustado del PDF —incluso de PDF con flujo de objetos, que son la salida predeterminada de productores habituales como Ghostscript, Gotenberg y Antenna House y que una extracción anterior no podía leer—. El extractor acepta subtipos MIME parametrizados de RFC 7303 (por ejemplo text/xml; charset=UTF-8) y nombres de archivo incrustado de cadena literal de ISO 32000-2, incluidos los escapes. FacturXEmbedder produce un documento híbrido PDF/A-3 con el XML Factur-X adjunto. EInvoiceValidationResult informa del perfil, la sintaxis, las violaciones de reglas y las comprobaciones del contenedor.
Procedencia. C2paManifestEmbedder incrusta un almacén de manifiesto C2PA suministrado por el llamante en una cadena de bytes PDF, o lo extrae de nuevo. ManifestStore es el objeto de valor inmutable que cruza el límite. La junta no sintetiza declaraciones ni resuelve vinculaciones de hash.
Qué significa «compliance» aquí
Sección titulada «Qué significa «compliance» aquí»Este módulo informa de lo que comprueba. No afirma que un documento sea legalmente conforme, esté certificado o sea jurídicamente vinculante, ni garantiza que ninguna salida satisfaga una regulación o jurisdicción.
- El validador de facturas electrónicas comprueba el modelo semántico EN 16931 y la especificación de contenedor Factur-X / ZUGFeRD únicamente. No es un validador de la autoridad tributaria. Las extensiones nacionales —por ejemplo el SDI italiano, el Chorus Pro francés o el XRechnung alemán— quedan fuera del alcance. Como indica la propia EN 16931-1, el emisor de la factura es responsable de cumplir las reglas de la legislación pertinente.
- El generador de informes de etiquetas de idioma produce un informe de eventos de etiqueta. No hace que un documento sea conforme.
- La incrustación C2PA escribe un manifiesto suministrado por el llamante. No produce ni firma las declaraciones que contiene.
La compatibilidad con un estándar no es lo mismo que la conformidad con él. Consulte a su equipo de cumplimiento para juzgar la suficiencia regulatoria para su uso.
Por qué funciona así
Sección titulada «Por qué funciona así»La decisión determinante es una línea nítida entre comprobar y certificar. Cada superficie devuelve evidencia —un informe, un resultado de validación, un manifiesto incrustado—, nunca la afirmación de que un documento sea legalmente conforme. Eso mantiene la junta honesta entre ediciones. ConformancePolicy falla de forma cerrada ante una etiqueta /Lang malformada, y C2paManifestEmbedder nunca firma las declaraciones que transporta. EInvoiceValidator::validate() devuelve un EInvoiceValidationResult; un isValid() en verde es una entrada de su decisión, no un veredicto que pueda entregar a un regulador sin comprobar. La evidencia se compone con sus propios controles en lugar de sustituirlos, de modo que sigue siendo veraz incluso cuando la entrada es hostil.
Contexto de diseño: Cumplimiento que puede entregar a un auditor.
Superficie de la API
Sección titulada «Superficie de la API»| Clase | Responsabilidad |
|---|---|
LangComplianceReporter | Emitir registros estructurados de eventos de etiqueta de idioma. |
ConformancePolicy | Fachada de política Premium de idioma estricta para UA-2. |
EInvoiceValidator | Comprobar EN 16931 / Factur-X / ZUGFeRD; devolver un resultado. |
EInvoiceValidationResult | Perfil, sintaxis, violaciones de reglas, comprobaciones del contenedor. |
FacturXEmbedder | Producir un documento híbrido PDF/A-3 + XML Factur-X. |
C2paManifestEmbedder | Incrustar o extraer un almacén de manifiesto C2PA. |
ManifestStore | Objeto de valor inmutable del almacén de manifiesto C2PA. |
Ejemplo de código — Inicio rápido
Sección titulada «Ejemplo de código — Inicio rápido»use NextPDF\Pro\Compliance\EInvoice\EInvoiceValidator;
$result = $validator->validate('/path/to/invoice.pdf');$ok = $result->isValid(); // true only if wrapper, attachment, profile, and no fatal BREjemplo de código — Producción
Sección titulada «Ejemplo de código — Producción»$result = $validator->validate($pdfPath);
foreach ($result->businessRuleViolations as $violation) { $logger->warning('einvoice.br_violation', [ 'rule' => $violation->ruleId, 'severity' => $violation->severity->value, ]);}// A green result is one input to your decision, not a compliance verdict.Casos límite y trampas
Sección titulada «Casos límite y trampas»- Un PDF bien formado que no es Factur-X devuelve un resultado de «no es una factura electrónica» en lugar de lanzar una excepción.
- El extractor de XML lee PDF con flujo de objetos (la salida predeterminada de Ghostscript, Gotenberg y Antenna House) y acepta subtipos MIME parametrizados de RFC 7303 y nombres de archivo de cadena literal de ISO 32000-2. Esto es extracción de compatibilidad para la salida de productores conformes, no una validación autoritativa de adjuntos frente a entradas hostiles —la activación completa de xref para puntos de conexión públicos adversarios es un límite diferido documentado—. Trate la extracción desde fuentes no confiables en consecuencia.
- Una lista de violaciones de reglas de negocio vacía no significa por sí sola que el documento sea válido; también se aplican las comprobaciones del contenedor y de los adjuntos.
- NextPDF marca como obsoleta la exclusión laxa del modo estricto de UA-2; migre al valor predeterminado estricto (consulte la Descripción conceptual). Desaparece en la próxima versión mayor.
Rendimiento
Sección titulada «Rendimiento»El coste de validación escala con el tamaño del XML incrustado y el número de reglas. El informe de etiquetas de idioma es constante por evento.
Notas de seguridad
Sección titulada «Notas de seguridad»Todo el análisis de XML deshabilita la resolución de entidades externas (seguro frente a XXE) y acota la descompresión. Trate el XML de factura electrónica y los bytes C2PA de fuentes no confiables como hostiles.
Residencia de datos y mitigaciones de PII
Sección titulada «Residencia de datos y mitigaciones de PII»El XML de factura electrónica puede contener datos personales y financieros. El procesamiento es en el mismo proceso y local; el módulo no realiza llamadas de red salientes para la validación. Aplique sus propios controles de retención y minimización al XML extraído y a los informes.
Telemetría segura y depuración de registros
Sección titulada «Telemetría segura y depuración de registros»Los registros del generador de informes y los registros de validación pueden incluir valores de etiqueta e identificadores de reglas. No incluyen las cargas útiles completas de las facturas. Depure u oculte los valores de etiqueta antes de reenviar los registros a destinos compartidos si esos valores son sensibles.
Conformidad
Sección titulada «Conformidad»| Comportamiento | Referencia | Estado |
|---|---|---|
Declaración de idioma natural (/Lang) | ISO 14289-2:2024 §8.4.4 | Comprobado / informado |
| Modelo semántico de factura base | EN 16931-1:2026 | Comprobado (el emisor sigue siendo responsable) |
| Almacén de manifiesto C2PA / JUMBF | C2PA 2.1 §11.1 | Incrustación / extracción admitidas |
Esta tabla registra las especificaciones frente a las que está construido NextPDF Pro y lo que comprueba. No es una declaración de certificación ni de suficiencia regulatoria.
Comportamiento en modo FIPS
Sección titulada «Comportamiento en modo FIPS»Este módulo no realiza firma criptográfica. La firma de declaraciones C2PA y la custodia de claves quedan fuera de su alcance; consulte el módulo Security para conocer el comportamiento de firma en modo FIPS.
Modelo de amenazas
Sección titulada «Modelo de amenazas»El XML de factura electrónica y los bytes C2PA no confiables son las entradas principales. Mitigaciones: análisis seguro frente a XXE, descompresión acotada, ausencia de síntesis de declaraciones a través de la junta C2PA y ausencia de E/S de red durante la validación.
Contrato de comportamiento
Sección titulada «Contrato de comportamiento»LangComplianceReporteremite un registro JSON estructurado por cada evento de etiqueta de idioma de PDF/UA-2 con la etiqueta infractora, una razón legible por máquina, los componentes de la etiqueta analizados, una referencia ISO 14289-2 §8.4.4 y una marca de tiempo.ConformancePolicytiene como valor predeterminado el tratamiento estricto del idioma de UA-2 y falla de forma cerrada cuando una etiqueta BCP-47 malformada o no registrada llega a/Lang. La exclusión laxa está obsoleta y se elimina en la próxima versión mayor.EInvoiceValidatordetecta el perfil, ejecuta el motor de reglas de negocio de EN 16931 y una pasada Schematron, y devuelve unEInvoiceValidationResult. No es un validador de la autoridad tributaria; las extensiones nacionales quedan fuera del alcance y el emisor sigue siendo responsable conforme a EN 16931-1.FacturXEmbedderproduce un documento híbrido PDF/A-3 con el XML Factur-X adjunto.C2paManifestEmbedderincrusta o extrae unManifestStoresuministrado por el llamante; no sintetiza ni firma declaraciones.- Este módulo informa de lo que comprueba. No certifica un documento ni garantiza su suficiencia regulatoria.
Nota sobre el límite de Enterprise
Sección titulada «Nota sobre el límite de Enterprise»Compliance en Pro cubre el informe de etiquetas de idioma, la comprobación de EN 16931 / Factur-X / ZUGFeRD y la incrustación/extracción de manifiestos C2PA. Los perfiles ampliados de archivo y firma, y la firma de declaraciones C2PA con custodia de claves, son cuestiones del nivel Enterprise documentadas por separado y no las proporciona este módulo.
Alternativa / respaldo de Core
Sección titulada «Alternativa / respaldo de Core»No existe ningún equivalente en Core para el informe de etiquetas de idioma, el tratamiento de facturas electrónicas ni la incrustación de manifiestos C2PA. Son adiciones de Pro.
Límite de publicación
Sección titulada «Límite de publicación»Esta página documenta únicamente el comportamiento observable externamente y la superficie pública admitida de la API. Las rutas de espacio de nombres internas, las clases auxiliares, las tablas de mecanismos, los nombres de archivo de runbook y los prefijos de tickets quedan fuera del alcance.
Véase también
Sección titulada «Véase también»- Security — firma y redacción.
- Ediciones Enterprise — perfiles ampliados de archivo y firma.
- Especificaciones — índice de estándares referenciados.
- Compliance — Referencia profunda — superficie completa de clases y métodos.