Ir al contenido
getnextpdf.com

Enterprise edición

Factura

NextPDF Enterprise produce facturas híbridas estructuradas ZUGFeRD / Factur-X / Peppol-UBL y valida el XML de factura frente al modelo de datos EN 16931 y a conjuntos de reglas Schematron. Produce facturas estructuradas conformes con el modelo de datos definido en EN 16931; no es un validador de la autoridad tributaria y no certifica ningún documento.

Esta capacidad se incluye en NextPDF Enterprise (nextpdf/enterprise) y se activa con un sobre de licencia de nivel Enterprise. Un despliegue sin esa habilitación no carga las clases de la capacidad. Comparar ediciones y obtener una licencia.

Ventana de terminal
composer require nextpdf/enterprise:^3

El motor de Schematron utiliza la extensión ext-xsl de PHP. Instálela y habilítela antes de ejecutar la validación de Schematron.

El módulo Invoice tiene tres superficies independientes: la incrustación de la factura estructurada, la validación de XML de EN 16931 y la ejecución de reglas Schematron.

Incrustación. ZugferdEmbedder adjunta una carga útil XML UN/CEFACT CII de ZUGFeRD 2.4 / Factur-X 1.08 suministrada por el llamante a un portador PDF/A, produciendo una factura híbrida. Se admiten dos formatos de portador: PDF/A-4f (ISO 19005-4:2020), el portador moderno preferido, y PDF/A-3b (ISO 19005-3:2012) por compatibilidad con versiones anteriores. ZugferdXmpSchema inyecta la declaración de esquema de extensión XMP de Factur-X que el portador necesita. PeppolEmbedder cumple la misma función para el XML de factura o nota de crédito UBL 2.1 de Peppol BIS Billing 3.0 suministrado por el llamante, adjuntándolo con la relación de archivo asociado y el tipo MIME correctos. NextPDF no sintetiza el XML de la factura; el llamante proporciona un XML válido y sigue siendo el emisor de la factura.

Validación. InvoiceXmlValidator comprueba el XML de factura frente al modelo de datos semántico de EN 16931 y las expectativas del contenedor ZUGFeRD / Factur-X, incluido el identificador de especificación BT-24 que exige la regla de negocio BR-1 de EN 16931. Se ejecuta en uno de dos modos: COMPAT (el predeterminado; los hallazgos de cardinalidad límite de EN 16931 se notifican como advertencias para preservar la compatibilidad con las fixtures existentes) y STRICT (la cardinalidad de BT-24 es un error grave, reflejando la semántica de los validadores externos). El modo se puede seleccionar por llamada, por anulación de entorno o por directiva de conformidad.

Schematron. SchematronValidator ejecuta conjuntos de reglas Schematron precompilados (las reglas .sch de CEN EN 16931 compiladas a XSLT en tiempo de compilación) frente al XML de factura mediante el procesador XSLT de PHP en proceso, y analiza el informe SVRL en hallazgos estructurados. La enumeración ZugferdProfile modela los perfiles de conformidad: MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED y el alemán XRechnung B2G CIUS sobre EN 16931.

Este módulo produce y comprueba datos de factura estructurados. No afirma que ningún documento sea una factura legalmente conforme, que esté aprobado por la autoridad tributaria ni que se garantice su aceptación por ninguna autoridad.

  • El validador comprueba únicamente el modelo semántico de EN 16931 y el contenedor ZUGFeRD / Factur-X / UBL. No es un validador de la autoridad tributaria. Las extensiones nacionales y las plataformas de clearance —por ejemplo, el SDI italiano, el francés Chorus Pro o el transporte alemán XRechnung— quedan fuera de alcance en el nivel de transporte.
  • Como la propia EN 16931-1 indica, el modelo semántico básico contiene la información esencial que necesita una factura electrónica para respaldar el cumplimiento legal y fiscal; el emisor de la factura es responsable de cumplir las reglas de la legislación aplicable. Esto no es un validador de la autoridad tributaria.
  • La compatibilidad con un estándar no es lo mismo que la conformidad con él. Consulte a sus asesores fiscales y de cumplimiento para juzgar la suficiencia normativa en su jurisdicción.

El módulo, de forma deliberada, nunca sintetiza el XML de la factura. La incrustación, la validación de EN 16931 y la ejecución de Schematron son tres superficies independientes sobre el XML que el llamante suministra y posee. Esto mantiene a NextPDF como productor y verificador, nunca como emisor, porque la responsabilidad legal no se puede delegar en una biblioteca. La validación toma COMPAT por defecto, de modo que un hallazgo de cardinalidad límite es una advertencia y no una regresión. STRICT es opcional para cuando se necesita la semántica de los validadores externos. El resultado es una separación limpia: NextPDF informa de lo que observa y el emisor decide si el documento cumple la ley. Contexto de diseño: Facturas y facturación electrónica.

ClassResponsibility
ZugferdEmbedderAdjuntar XML CII de ZUGFeRD / Factur-X a un portador PDF/A-4f o PDF/A-3b.
ZugferdXmpSchemaInyectar la declaración de esquema de extensión XMP de Factur-X.
ZugferdProfileEnumeración de perfil de conformidad (MINIMUM … EXTENDED, XRECHNUNG).
PeppolEmbedderAdjuntar XML de factura / nota de crédito UBL de Peppol BIS 3.0 a un portador PDF/A.
InvoiceXmlValidatorComprobar el XML frente al modelo de datos EN 16931; modo COMPAT o STRICT.
InvoiceValidatorModeEnumeración de modo de validación: COMPAT (predeterminado) o STRICT.
SchematronValidatorEjecutar conjuntos de reglas Schematron precompilados; analizar hallazgos SVRL.
InvoiceValidationResult / SchematronResultResultados estructurados: perfil, hallazgos, gravedades.
use NextPDF\Enterprise\Invoice\ZugferdEmbedder;
use NextPDF\Enterprise\Invoice\ZugferdProfile;
$pdf = ZugferdEmbedder::basic($pdfAManager, $fileAttachment, $ciiXml)
->embed(ZugferdProfile::EN16931);
use NextPDF\Enterprise\Invoice\InvoiceXmlValidator;
use NextPDF\Enterprise\Invoice\InvoiceValidatorMode;
$result = $validator->validate($ciiXml, InvoiceValidatorMode::STRICT);
foreach ($result->findings as $finding) {
$logger->warning('invoice.finding', [
'rule' => $finding->ruleId,
'severity' => $finding->severity->value,
]);
}
// A clean result is one input to your decision, not a compliance verdict.
// The invoice issuer remains responsible for relevant legislation.
  • Un PDF bien formado que no lleva ninguna carga útil de factura reconocible produce un resultado de «no es una factura» en lugar de lanzar una excepción.
  • COMPAT es el modo de validación predeterminado: un identificador de especificación BT-24 ausente se notifica como una advertencia, de modo que los puntos de llamada que se basan en un indicador booleano de validez no sufren regresiones. Use STRICT para que BT-24 sea un error grave que coincida con la semántica de KoSIT / Mustang externos.
  • El llamante suministra el XML de la factura. NextPDF no lo genera ni lo corrige; una lista de hallazgos vacía no convierte en conforme una carga útil no conforme.
  • El motor de Schematron requiere ext-xsl. Los conjuntos de reglas se compilan en tiempo de compilación; el tiempo de ejecución solo ejecuta el XSLT precompilado.

El coste de la validación escala con el tamaño del XML incrustado y el número de reglas Schematron. El coste de la incrustación escala con el tamaño del portador y está dominado por la serialización de PDF/A. El presupuesto de rendimiento de la página refleja el renderizado de la documentación, no el rendimiento de procesamiento de facturas.

Todo el análisis de XML pasa por el guard de XML reforzado: la resolución de entidades externas está deshabilitada (a prueba de XXE), se rechaza DOCTYPE y la descompresión está acotada. El procesador XSLT se ejecuta con la carga de recursos de red y del sistema de archivos deshabilitada y nunca registra funciones de PHP, de modo que document(), xsl:include, xsl:import y result-document no pueden alcanzar la red ni el disco. Trate el XML de factura procedente de fuentes no confiables como hostil.

El XML de factura puede contener datos personales, comerciales y financieros. El procesamiento es en proceso y local; el módulo no realiza llamadas de red salientes durante la incrustación ni la validación. Aplique sus propios controles de conservación y minimización al XML extraído y a los hallazgos.

Telemetría segura y depuración de registros

Sección titulada «Telemetría segura y depuración de registros»

Los hallazgos y los registros de validación pueden incluir identificadores de regla y valores de etiqueta. No incluyen las cargas útiles completas de la factura. Depure o redacte los valores de campo antes de reenviar los registros a destinos compartidos si esos valores son sensibles.

BehaviorReferenceStatus
Modelo semántico básico de facturaEN 16931-1:2026 §4Construido frente a; el emisor sigue siendo responsable de la legislación aplicable
Identificador de especificación (BT-24)EN 16931-1:2026 BR-1Comprobado (advertencia en COMPAT, error en STRICT)
Vinculación de sintaxis UN/CEFACT CIICEN/TS 16931-3-3:2020Incrustación admitida
Vinculación de sintaxis UBL 2.1CEN/TS 16931-3-2:2020Incrustación admitida
Archivo asociado PDF/A-3ISO 19005-3:2012 §6.7.8Portador admitido
Archivo incrustado PDF/A-4fISO 19005-4:2020 Annex APortador admitido

Esta tabla registra las especificaciones frente a las que se ha construido NextPDF Enterprise y lo que comprueba. No es una declaración de certificación, de aprobación por la autoridad tributaria ni de suficiencia normativa. El emisor de la factura es responsable de cumplir las reglas de la legislación aplicable; esto no es un validador de la autoridad tributaria.

Este módulo no realiza ninguna firma criptográfica. La firma de una factura híbrida y la custodia de claves en modo FIPS quedan fuera de alcance aquí; consulte el módulo Signature.

La entrada principal es XML de factura no confiable. Mitigaciones: análisis a prueba de XXE, rechazo de DOCTYPE, descompresión acotada, un procesador XSLT con la carga de recursos de red y de archivos deshabilitada y ninguna síntesis de afirmaciones: el llamante suministra y es dueño del contenido de la factura.

  • ZugferdEmbedder / PeppolEmbedder adjuntan el XML de factura suministrado por el llamante a un portador PDF/A-4f o PDF/A-3b; NextPDF nunca sintetiza el XML de la factura.
  • InvoiceXmlValidator se ejecuta en COMPAT (predeterminado; la cardinalidad límite de EN 16931 es una advertencia) o STRICT (la cardinalidad de BT-24 es un error grave).
  • SchematronValidator ejecuta conjuntos de reglas precompilados a través del procesador XSLT en proceso y analiza los hallazgos SVRL; una lista de hallazgos vacía no convierte en conforme una carga útil no conforme.
  • Todo el análisis de XML es a prueba de XXE: resolución de entidades externas deshabilitada, DOCTYPE rechazado, descompresión acotada.

Esta página documenta únicamente el comportamiento observable desde fuera y la superficie de API pública admitida. Las rutas internas de espacio de nombres, las clases auxiliares, las tablas de mecanismos, los nombres de archivo de runbook y los prefijos de ticket quedan fuera de alcance.

NextPDF Core no genera ni valida facturas estructuradas. Un despliegue solo con Core puede producir un PDF, pero no tiene incrustación de ZUGFeRD / Factur-X / Peppol, ni validador de EN 16931, ni motor de Schematron.

En un despliegue solo con Pro, la superficie admitida es la detección y validación de factura electrónica del nivel Pro para cargas útiles Factur-X / ZUGFeRD. Pro no genera portadores híbridos ZUGFeRD / Factur-X ni Peppol-UBL, no añade el perfil XRechnung CIUS y no ejecuta el motor de Schematron en proceso; una configuración que solicite generación, el perfil XRechnung CIUS o Schematron en un despliegue solo con Pro no tiene ningún componente de Enterprise que la satisfaga. Consulte Pro Compliance para conocer la superficie de detección y validación de Pro.

El detalle interno de los mecanismos permanece en la documentación interna del repositorio de origen y queda fuera del alcance de este manual.

El motor de Schematron requiere la extensión ext-xsl de PHP; aprovisionarla y habilitarla es responsabilidad del operador. El procesamiento es en proceso y local; el módulo no realiza llamadas de red salientes durante la incrustación ni la validación. El transporte nacional de facturación electrónica, las plataformas de clearance y los sistemas de archivado son externos a este módulo y son responsabilidad del operador.

NextPDF produce facturas estructuradas conformes con el modelo de datos definido en EN 16931 e informa de los hallazgos de las reglas. No produce «facturas legalmente conformes», no proporciona salida «aprobada por la autoridad tributaria» y no garantiza que ninguna factura sea aceptada por una autoridad tributaria, un tribunal o un registro. El emisor de la factura es responsable de cumplir las reglas de la legislación aplicable; esto no es un validador de la autoridad tributaria. Las plataformas nacionales de facturación electrónica, los modelos de clearance, los mandatos de archivado y los requisitos de firma digital varían según la jurisdicción y son responsabilidad del emisor. Consulte a sus asesores fiscales y legales.