Ga naar inhoud
getnextpdf.com

Enterprise editie

Factuur

NextPDF Enterprise produceert gestructureerde hybride facturen volgens ZUGFeRD / Factur-X / Peppol-UBL en valideert factuur-XML tegen het EN 16931-datamodel en Schematron-regelsets. Het produceert gestructureerde facturen die voldoen aan het datamodel uit EN 16931; het is geen validator van de belastingautoriteit en certificeert geen enkel document.

Deze mogelijkheid wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop op Enterprise-niveau. Een implementatie zonder die rechten laadt de klassen van de mogelijkheid niet. Vergelijk edities en verkrijg een licentie.

Terminal window
composer require nextpdf/enterprise:^3

De Schematron-engine gebruikt de PHP-extensie ext-xsl. Installeer en activeer deze voordat je Schematron-validatie uitvoert.

De Invoice-module heeft drie onafhankelijke oppervlakken: embedding van gestructureerde facturen, EN 16931 XML-validatie en uitvoering van Schematron-regels.

Embedding. ZugferdEmbedder koppelt een door de caller aangeleverde ZUGFeRD 2.4 / Factur-X 1.08 UN/CEFACT CII XML-payload aan een PDF/A-carrier en produceert een hybride factuur. Twee carrierformaten worden ondersteund: PDF/A-4f (ISO 19005-4:2020), de voorkeurs-moderne carrier, en PDF/A-3b (ISO 19005-3:2012) voor achterwaartse compatibiliteit. ZugferdXmpSchema injecteert de declaratie van het Factur-X XMP-uitbreidingsschema die de carrier nodig heeft. PeppolEmbedder vervult dezelfde rol voor door de caller aangeleverde Peppol BIS Billing 3.0 UBL 2.1 factuur- of creditnota-XML en koppelt deze met de correcte associated-file-relatie en het juiste MIME-type. NextPDF synthetiseert geen factuur-XML; de caller levert geldige XML en blijft de uitgever van de factuur.

Validatie. InvoiceXmlValidator controleert factuur-XML tegen het semantische datamodel van EN 16931 en de container-verwachtingen van ZUGFeRD / Factur-X, inclusief de BT-24-specificatie-identificatie die EN 16931-businessrule BR-1 voorschrijft. Hij draait in een van twee modi: COMPAT (de standaard; grensgevallen van EN 16931-kardinaliteit worden als waarschuwingen gerapporteerd om de achterwaartse compatibiliteit voor bestaande fixtures te behouden) en STRICT (BT-24-kardinaliteit is een harde fout, wat de semantiek van een externe validator weerspiegelt). De modus is selecteerbaar per aanroep, via een omgevingsoverride of via conformiteitsbeleid.

Schematron. SchematronValidator voert vooraf gecompileerde Schematron-regelsets uit (de CEN EN 16931 .sch-regels die bij de build naar XSLT zijn gecompileerd) tegen factuur-XML met behulp van de in-process PHP-XSLT-processor, en parseert het SVRL-rapport tot gestructureerde bevindingen. De enum ZugferdProfile modelleert de conformiteitsprofielen — MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED en het Duitse XRechnung B2G CIUS over EN 16931.

Deze module produceert en controleert gestructureerde factuurgegevens. Ze claimt niet dat een document een juridisch conforme factuur is, dat het is goedgekeurd door de belastingautoriteit of dat het gegarandeerd door enige autoriteit wordt aanvaard.

  • De validator controleert uitsluitend het semantische model van EN 16931 en de container van ZUGFeRD / Factur-X / UBL. Het is geen validator van de belastingautoriteit. Nationale uitbreidingen en clearance-platforms — bijvoorbeeld het Italiaanse SDI, het Franse Chorus Pro, het Duitse XRechnung-transport — vallen op transportniveau buiten de scope.
  • Zoals EN 16931-1 zelf stelt, draagt het kernsemantische model de essentiële informatie die een elektronische factuur nodig heeft om juridische en fiscale compliance te ondersteunen; de uitgever van de factuur is verantwoordelijk voor het naleven van de regels van de relevante wetgeving. Dit is geen validator van de belastingautoriteit.
  • Ondersteuning van een standaard is niet hetzelfde als conformiteit ermee. Raadpleeg je belasting- en complianceadviseurs om de toereikendheid voor de regelgeving in jouw jurisdictie te beoordelen.

De module synthetiseert bewust nooit factuur-XML. Embedding, EN 16931-validatie en Schematron-uitvoering zijn drie onafhankelijke oppervlakken over XML die de caller aanlevert en bezit. Zo blijft NextPDF een producent en controleur, nooit de uitgever, omdat juridische verantwoordelijkheid niet aan een library kan worden gedelegeerd. Validatie valt standaard terug op COMPAT, zodat een grensgeval-kardinaliteitsbevinding een waarschuwing is in plaats van een regressie. STRICT is opt-in wanneer je de semantiek van een externe validator nodig hebt. Het resultaat is een schone scheiding: NextPDF rapporteert wat het waarneemt, en de uitgever bepaalt of het document aan de wet voldoet. Ontwerpachtergrond: Facturen en e-facturatie.

KlasseVerantwoordelijkheid
ZugferdEmbedderKoppel ZUGFeRD / Factur-X CII XML aan een PDF/A-4f- of PDF/A-3b-carrier.
ZugferdXmpSchemaInjecteer de declaratie van het Factur-X XMP-uitbreidingsschema.
ZugferdProfileEnum voor conformiteitsprofielen (MINIMUM … EXTENDED, XRECHNUNG).
PeppolEmbedderKoppel Peppol BIS 3.0 UBL factuur-/creditnota-XML aan een PDF/A-carrier.
InvoiceXmlValidatorControleer XML tegen het EN 16931-datamodel; modus COMPAT of STRICT.
InvoiceValidatorModeEnum voor validatiemodus: COMPAT (standaard) of STRICT.
SchematronValidatorVoer vooraf gecompileerde Schematron-regelsets uit; parseer SVRL-bevindingen.
InvoiceValidationResult / SchematronResultGestructureerde resultaten: profiel, bevindingen, ernst.
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.
  • Een welgevormde PDF die geen herkenbare factuurpayload draagt, levert een “not an invoice”-resultaat op in plaats van een exceptie te gooien.
  • COMPAT is de standaard validatiemodus: een ontbrekende BT-24-specificatie-identificatie wordt als een waarschuwing gerapporteerd, zodat aanroepsites die op een booleaanse geldigheidsvlag afgaan niet regressen. Gebruik STRICT om van BT-24 een harde fout te maken die overeenkomt met de semantiek van externe KoSIT / Mustang.
  • De caller levert de factuur-XML. NextPDF genereert of corrigeert deze niet; een lege bevindingenlijst maakt een niet-conforme payload niet conform.
  • De Schematron-engine vereist ext-xsl. Regelsets worden bij de build gecompileerd; de runtime voert uitsluitend de vooraf gecompileerde XSLT uit.

De kosten van validatie schalen mee met de grootte van de ingebedde XML en het aantal Schematron-regels. De kosten van embedding schalen mee met de carriergrootte en worden gedomineerd door de PDF/A-serialisatie. Het prestatiebudget van de pagina weerspiegelt het renderen van documentatie, niet de factuurdoorvoer.

Alle XML-parsing verloopt via de geharde XML-guard: resolutie van externe entiteiten is uitgeschakeld (XXE-veilig), DOCTYPE wordt geweigerd en decompressie is begrensd. De XSLT-processor draait met netwerk- en bestandssysteembronladen uitgeschakeld en registreert nooit PHP-functies, zodat document(), xsl:include, xsl:import en result-document het netwerk of de schijf niet kunnen bereiken. Behandel factuur-XML uit niet-vertrouwde bronnen als vijandig.

Factuur-XML kan persoonlijke, commerciële en financiële gegevens bevatten. De verwerking is in-process en lokaal; de module doet tijdens embedding of validatie geen uitgaande netwerkoproepen. Pas je eigen bewaar- en minimalisatiecontroles toe op geëxtraheerde XML en bevindingen.

Bevindingen en validatielogs kunnen regel-identificaties en tagwaarden bevatten. Ze bevatten geen volledige factuurpayloads. Schoon veldwaarden op of redigeer ze voordat je logs doorstuurt naar gedeelde bestemmingen als die waarden gevoelig zijn.

GedragReferentieStatus
Kernsemantisch model voor facturenEN 16931-1:2026 §4Gebouwd tegen; uitgever blijft verantwoordelijk voor relevante wetgeving
Specificatie-identificatie (BT-24)EN 16931-1:2026 BR-1Gecontroleerd (waarschuwing in COMPAT, fout in STRICT)
UN/CEFACT CII-syntaxbindingCEN/TS 16931-3-3:2020Embed ondersteund
UBL 2.1-syntaxbindingCEN/TS 16931-3-2:2020Embed ondersteund
PDF/A-3 associated fileISO 19005-3:2012 §6.7.8Carrier ondersteund
PDF/A-4f ingebed bestandISO 19005-4:2020 Annex ACarrier ondersteund

Deze tabel legt vast tegen welke specificaties NextPDF Enterprise is gebouwd en wat het controleert. Het is geen verklaring van certificering, goedkeuring door de belastingautoriteit of toereikendheid voor regelgeving. De uitgever van de factuur is verantwoordelijk voor het naleven van de regels van de relevante wetgeving; dit is geen validator van de belastingautoriteit.

Deze module voert geen cryptografische ondertekening uit. Het ondertekenen van een hybride factuur en de bewaring van sleutels in FIPS-modus vallen hier buiten de scope; zie de Signature-module.

Niet-vertrouwde factuur-XML is de primaire invoer. Mitigaties: XXE-veilige parsing, weigering van DOCTYPE, begrensde decompressie, een XSLT-processor met netwerk- en bestandsbronladen uitgeschakeld, en geen claimsynthese — de caller levert en bezit de factuurinhoud.

  • ZugferdEmbedder / PeppolEmbedder koppelen door de caller aangeleverde factuur-XML aan een PDF/A-4f- of PDF/A-3b-carrier; NextPDF synthetiseert nooit factuur-XML.
  • InvoiceXmlValidator draait in COMPAT (standaard; grensgevallen van EN 16931-kardinaliteit zijn een waarschuwing) of STRICT (BT-24-kardinaliteit is een harde fout).
  • SchematronValidator voert vooraf gecompileerde regelsets uit via de in-process XSLT-processor en parseert SVRL-bevindingen; een lege bevindingenlijst maakt een niet-conforme payload niet conform.
  • Alle XML-parsing is XXE-veilig: resolutie van externe entiteiten uitgeschakeld, DOCTYPE geweigerd, decompressie begrensd.

Deze pagina documenteert uitsluitend extern waarneembaar gedrag en het ondersteunde openbare API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.

NextPDF Core genereert of valideert geen gestructureerde facturen. Een Core-only-implementatie kan een PDF produceren, maar heeft geen ZUGFeRD / Factur-X / Peppol-embedding, geen EN 16931-validator en geen Schematron-engine.

In een Pro-only-implementatie is het ondersteunde oppervlak de Pro-e-factuurdetectie en -validatie van Factur-X / ZUGFeRD-payloads. Pro genereert geen hybride ZUGFeRD / Factur-X- of Peppol-UBL-carriers, voegt het XRechnung CIUS-profiel niet toe en draait de in-process Schematron-engine niet; een configuratie die in een Pro-only-implementatie generatie, het XRechnung CIUS-profiel of Schematron aanvraagt, heeft geen Enterprise-component om eraan te voldoen. Zie Pro Compliance voor het Pro-detectie- en -validatieoppervlak.

Interne mechanismedetails blijven in de interne documentatie van de bronrepository en vallen buiten de scope van deze handleiding.

De Schematron-engine vereist de PHP-extensie ext-xsl; het provisioneren en activeren ervan is de verantwoordelijkheid van de operator. De verwerking is in-process en lokaal; de module doet tijdens embedding of validatie geen uitgaande netwerkoproepen. Nationaal e-facturatietransport, clearance-platforms en archiveringssystemen vallen buiten deze module en zijn de verantwoordelijkheid van de operator.

NextPDF produceert gestructureerde facturen die voldoen aan het datamodel uit EN 16931 en rapporteert regelbevindingen. Het produceert geen “juridisch conforme facturen”, levert geen “door de belastingautoriteit goedgekeurde” uitvoer en garandeert niet dat een factuur wordt aanvaard door een belastingautoriteit, rechtbank of register. De uitgever van de factuur is verantwoordelijk voor het naleven van de regels van de relevante wetgeving; dit is geen validator van de belastingautoriteit. Nationale e-facturatieplatforms, clearance-modellen, archiveringsmandaten en vereisten voor digitale handtekeningen verschillen per jurisdictie en zijn de verantwoordelijkheid van de uitgever. Raadpleeg je belasting- en juridische adviseurs.