Ga naar inhoud
getnextpdf.com

Pro editie

Naleving

NextPDF Pro rapporteert over PDF/UA-2-taaltaggebeurtenissen, valideert en bedt Factur-X / ZUGFeRD e-factuur-XML in, en bedt C2PA-manifeststores in of leest ze uit. Deze functies produceren rapporten en gestructureerde resultaten. Ze certificeren een document niet en garanderen geen regelgevingstoereikendheid.

Deze mogelijkheid wordt geleverd in NextPDF Pro (nextpdf/pro) en wordt geactiveerd met een licentie-envelop op Pro-niveau. Een deployment zonder die aanspraak laadt de klassen van de mogelijkheid niet. Compliance maakt deel uit van de Pro-editie; er is geen aparte licentievlag per functie. Vergelijk edities en verkrijg een licentie.

Terminal window
composer require nextpdf/pro:^3

De Compliance-module heeft drie onafhankelijke oppervlakken.

Taaltagrapportage. LangComplianceReporter zendt een gestructureerd JSON-record uit voor elke PDF/UA-2-taaltaggebeurtenis. Elk record bevat de problematische tag, een machineleesbare reden, de geparseerde tagcomponenten, een clausuleverwijzing naar ISO 14289-2 §8.4.4 en een tijdstempel. ConformancePolicy is een Premium-facade die standaard strikte UA-2-taalverwerking toepast: deze faalt gesloten wanneer een misvormde of niet-geregistreerde BCP-47-tag de /Lang-vermelding bereikt. Een lakse opt-out (ConformancePolicy::withStrictUa2(false)) keert terug naar het oude permissieve gedrag en logt een melding. NextPDF markeert die opt-out als deprecated; gebruik in plaats daarvan de strikte standaard. De opt-out bestaat sinds v5.0 en verdwijnt in de volgende grote release. Om te migreren, controleer je corpus op misvormde /Lang-waarden, corrigeer ze en verwijder vervolgens de opt-out-aanroep zodat de strikte standaard van toepassing is.

E-factuurverwerking. EInvoiceValidator controleert een hybride PDF tegen het semantische datamodel van EN 16931 en de containerspecificatie van Factur-X 1.08 / ZUGFeRD 2.4. Deze detecteert het profiel, voert de EN 16931-bedrijfsregelengine uit en voert een Schematron-pass uit. Vóór de validatie extraheert deze de ingebedde factuur-XML uit de PDF — ook uit object-stream-PDF’s, die de standaarduitvoer zijn van veelgebruikte producers zoals Ghostscript, Gotenberg en Antenna House en die eerdere extractie niet kon lezen. De extractor accepteert RFC 7303-geparameteriseerde MIME-subtypen (bijvoorbeeld text/xml; charset=UTF-8) en ISO 32000-2-namen voor ingebedde bestanden als letterlijke strings, inclusief escapes. FacturXEmbedder produceert een hybride PDF/A-3-document met de Factur-X-XML eraan gekoppeld. EInvoiceValidationResult rapporteert profiel, syntaxis, regelovertredingen en wrappercontroles.

Herkomst. C2paManifestEmbedder bedt een door de caller aangeleverde C2PA-manifeststore in een PDF-bytestring in, of extraheert er een uit. ManifestStore is het immutable waarde-object dat de grens passeert. De naad synthetiseert geen claims en lost geen hash-bindingen op.

Deze module rapporteert wat deze controleert. Deze stelt niet dat een document juridisch conform, gecertificeerd of juridisch bindend is, en garandeert niet dat enige uitvoer aan een regelgeving of jurisdictie voldoet.

  • De e-factuurvalidator controleert uitsluitend het semantische model van EN 16931 en de containerspecificatie van Factur-X / ZUGFeRD. Het is geen belastingdienstvalidator. Nationale uitbreidingen — bijvoorbeeld het Italiaanse SDI, het Franse Chorus Pro, het Duitse XRechnung — vallen buiten het bereik. Zoals EN 16931-1 zelf aangeeft, is de factuuruitgever verantwoordelijk voor het naleven van de regels van de relevante wetgeving.
  • De taaltagrapporteur produceert een rapport van taggebeurtenissen. Deze maakt een document niet conform.
  • C2PA-inbedding schrijft een door de caller aangeleverd manifest. Deze produceert of ondertekent de claims daarin niet.

Ondersteuning van een standaard is niet hetzelfde als conformiteit ermee. Raadpleeg je complianceteam om de regelgevingstoereikendheid voor jouw gebruik te beoordelen.

De dragende beslissing is een harde grens tussen controleren en certificeren. Elk oppervlak retourneert bewijs — een rapport, een validatieresultaat, een ingebed manifest — nooit een bewering dat een document juridisch conform is. Dat houdt de naad eerlijk over edities heen. ConformancePolicy faalt gesloten bij een misvormde /Lang-tag, en C2paManifestEmbedder ondertekent nooit de claims die deze meedraagt. EInvoiceValidator::validate() retourneert een EInvoiceValidationResult; een groene isValid() is één input voor jouw beslissing, geen oordeel dat je ongecontroleerd aan een toezichthouder kunt overhandigen. Het bewijs combineert met je eigen controles in plaats van ze te vervangen, zodat het waarheidsgetrouw blijft, zelfs wanneer de invoer vijandig is.

Ontwerpachtergrond: Compliance die je aan een auditor kunt overhandigen.

KlasseVerantwoordelijkheid
LangComplianceReporterGestructureerde taaltaggebeurtenisrecords uitzenden.
ConformancePolicyPremium-facade voor strikt UA-2-taalbeleid.
EInvoiceValidatorEN 16931 / Factur-X / ZUGFeRD controleren; een resultaat retourneren.
EInvoiceValidationResultProfiel, syntaxis, regelovertredingen, wrappercontroles.
FacturXEmbedderEen hybride PDF/A-3 + Factur-X-XML-document produceren.
C2paManifestEmbedderEen C2PA-manifeststore inbedden of extraheren.
ManifestStoreImmutable waarde-object voor een C2PA-manifeststore.
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.
  • Een welgevormde, niet-Factur-X-PDF retourneert een “not an e-invoice”-resultaat in plaats van een exceptie te werpen.
  • De XML-extractor leest object-stream-PDF’s (de standaarduitvoer van Ghostscript, Gotenberg en Antenna House) en accepteert RFC 7303-geparameteriseerde MIME-subtypen en ISO 32000-2-bestandsnamen als letterlijke strings. Dit is compatibiliteitsextractie voor conforme produceruitvoer, geen gezaghebbende bijlagevalidatie tegen vijandige invoer — volledige xref-activering voor adversariële openbare endpoints is een gedocumenteerde uitgestelde grens. Behandel extractie uit niet-vertrouwde bronnen dienovereenkomstig.
  • Een lege lijst met bedrijfsregelovertredingen betekent op zichzelf niet dat het document geldig is; wrapper- en bijlagecontroles zijn ook van toepassing.
  • NextPDF markeert de lakse opt-out voor strikt UA-2 als deprecated; migreer naar de strikte standaard (zie Conceptueel overzicht). Deze verdwijnt in de volgende grote release.

De validatiekosten schalen met de grootte van de ingebedde XML en het aantal regels. Taaltagrapportage is constant per gebeurtenis.

Alle XML-parsing schakelt externe-entiteitresolutie uit (XXE-veilig) en begrenst decompressie. Behandel e-factuur-XML en C2PA-bytes uit niet-vertrouwde bronnen als vijandig.

E-factuur-XML kan persoonlijke en financiële gegevens bevatten. De verwerking is in-process en lokaal; de module doet geen uitgaande netwerkoproepen voor validatie. Pas je eigen bewaar- en minimalisatiecontroles toe op geëxtraheerde XML en rapporten.

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

GedragReferentieStatus
Verklaring van natuurlijke taal (/Lang)ISO 14289-2:2024 §8.4.4Gecontroleerd / gerapporteerd
Semantisch model van de kernfactuurEN 16931-1:2026Gecontroleerd (uitgever blijft verantwoordelijk)
C2PA-manifeststore / JUMBFC2PA 2.1 §11.1Inbedden / extraheren ondersteund

Deze tabel legt de specificaties vast waartegen NextPDF Pro is gebouwd en wat deze controleert. Het is geen verklaring van certificering of regelgevingstoereikendheid.

Deze module voert geen cryptografisch ondertekenen uit. C2PA-claimondertekening en sleutelbewaring vallen buiten het bereik; zie de Security-module voor het FIPS-modusondertekeningsgedrag.

Niet-vertrouwde e-factuur-XML en C2PA-bytes zijn de primaire invoer. Mitigaties: XXE-veilige parsing, begrensde decompressie, geen claimsynthese over de C2PA-naad heen en geen netwerk-I/O tijdens validatie.

  • LangComplianceReporter zendt per PDF/UA-2-taaltaggebeurtenis een gestructureerd JSON-record uit met de problematische tag, een machineleesbare reden, geparseerde tagcomponenten, een verwijzing naar ISO 14289-2 §8.4.4 en een tijdstempel.
  • ConformancePolicy past standaard strikte UA-2-taalverwerking toe en faalt gesloten wanneer een misvormde of niet-geregistreerde BCP-47-tag /Lang bereikt. De lakse opt-out is deprecated en wordt verwijderd in de volgende grote release.
  • EInvoiceValidator detecteert het profiel, voert de EN 16931-bedrijfsregelengine en een Schematron-pass uit, en retourneert een EInvoiceValidationResult. Het is geen belastingdienstvalidator; nationale uitbreidingen vallen buiten het bereik en de uitgever blijft verantwoordelijk volgens EN 16931-1.
  • FacturXEmbedder produceert een hybride PDF/A-3-document met de Factur-X-XML eraan gekoppeld. C2paManifestEmbedder bedt een door de caller aangeleverde ManifestStore in of extraheert deze; deze synthetiseert of ondertekent geen claims.
  • Deze module rapporteert wat deze controleert. Deze certificeert een document niet en garandeert geen regelgevingstoereikendheid.

Compliance in Pro dekt taaltagrapportage, EN 16931 / Factur-X / ZUGFeRD-controle en C2PA-manifestinbedding/-extractie. Uitgebreide archiverings- en handtekeningprofielen, en C2PA-claimondertekening met sleutelbewaring, zijn Enterprise-niveau-aangelegenheden die apart worden gedocumenteerd en niet door deze module worden geleverd.

Er is geen Core-equivalent voor taaltagrapportage, e-factuurverwerking of C2PA-manifestinbedding. Dit zijn Pro-toevoegingen.

Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten het bereik.