Ir al contenido
getnextpdf.com

Pro edición

Cumplimiento

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.

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.

Ventana de terminal
composer require nextpdf/pro:^3

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.

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.

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.

ClaseResponsabilidad
LangComplianceReporterEmitir registros estructurados de eventos de etiqueta de idioma.
ConformancePolicyFachada de política Premium de idioma estricta para UA-2.
EInvoiceValidatorComprobar EN 16931 / Factur-X / ZUGFeRD; devolver un resultado.
EInvoiceValidationResultPerfil, sintaxis, violaciones de reglas, comprobaciones del contenedor.
FacturXEmbedderProducir un documento híbrido PDF/A-3 + XML Factur-X.
C2paManifestEmbedderIncrustar o extraer un almacén de manifiesto C2PA.
ManifestStoreObjeto de valor inmutable del almacén de manifiesto C2PA.
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 BR
$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.
  • 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.

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.

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.

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.

ComportamientoReferenciaEstado
Declaración de idioma natural (/Lang)ISO 14289-2:2024 §8.4.4Comprobado / informado
Modelo semántico de factura baseEN 16931-1:2026Comprobado (el emisor sigue siendo responsable)
Almacén de manifiesto C2PA / JUMBFC2PA 2.1 §11.1Incrustació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.

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.

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.

  • LangComplianceReporter emite 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.
  • ConformancePolicy tiene 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.
  • EInvoiceValidator detecta el perfil, ejecuta el motor de reglas de negocio de EN 16931 y una pasada Schematron, y devuelve un EInvoiceValidationResult. 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.
  • FacturXEmbedder produce un documento híbrido PDF/A-3 con el XML Factur-X adjunto. C2paManifestEmbedder incrusta o extrae un ManifestStore suministrado 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.

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.

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.

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.