Zum Inhalt springen
getnextpdf.com

Pro Edition

Compliance

NextPDF Pro berichtet über PDF/UA-2-Sprach-Tag-Ereignisse, validiert und bettet Factur-X- / ZUGFeRD-E-Rechnungs-XML ein und bettet C2PA-Manifest-Stores ein oder liest sie. Diese Funktionen erzeugen Berichte und strukturierte Ergebnisse. Sie zertifizieren kein Dokument und garantieren keine regulatorische Hinlänglichkeit.

Diese Fähigkeit wird in NextPDF Pro (nextpdf/pro) ausgeliefert und aktiviert sich mit einem Lizenz-Envelope der Pro-Stufe. Eine Bereitstellung ohne diese Berechtigung lädt die Klassen der Fähigkeit nicht. Compliance ist Teil der Pro-Edition; es gibt kein separates Feature-bezogenes Lizenz-Flag. Editionen vergleichen und Lizenz erwerben.

Terminal-Fenster
composer require nextpdf/pro:^3

Das Compliance-Modul hat drei unabhängige Oberflächen.

Sprach-Tag-Berichterstattung. LangComplianceReporter gibt für jedes PDF/UA-2-Sprach-Tag-Ereignis einen strukturierten JSON-Datensatz aus. Jeder Datensatz trägt das beanstandete Tag, einen maschinenlesbaren Grund, die geparsten Tag-Komponenten, einen Klauselverweis auf ISO 14289-2 §8.4.4 und einen Zeitstempel. ConformancePolicy ist eine Premium-Fassade, die standardmäßig auf strikter UA-2-Sprachbehandlung steht: Sie schlägt fehlersicher zu, wenn ein fehlerhaftes oder nicht registriertes BCP-47-Tag in den /Lang-Eintrag gelangt. Ein laxes Opt-out (ConformancePolicy::withStrictUa2(false)) kehrt zum altbekannten permissiven Verhalten zurück und protokolliert einen Hinweis. NextPDF markiert dieses Opt-out als deprecated; nutzen Sie stattdessen den strikten Standard. Das Opt-out besteht seit v5.0 und verschwindet im nächsten Major-Release. Zur Migration prüfen Sie Ihren Korpus auf fehlerhafte /Lang-Werte, korrigieren sie und entfernen dann den Opt-out-Aufruf, damit der strikte Standard greift.

E-Rechnungs-Behandlung. EInvoiceValidator prüft ein hybrides PDF gegen das semantische Datenmodell EN 16931 und die Container-Spezifikation Factur-X 1.08 / ZUGFeRD 2.4. Es erkennt das Profil, führt die EN-16931-Geschäftsregel-Engine aus und führt einen Schematron-Durchlauf aus. Vor der Validierung extrahiert es das eingebettete Rechnungs-XML aus dem PDF — auch aus Objekt-Stream-PDFs, die die Standardausgabe gängiger Erzeuger wie Ghostscript, Gotenberg und Antenna House sind und die eine frühere Extraktion nicht lesen konnte. Der Extraktor akzeptiert RFC-7303-parametrisierte MIME-Subtypen (zum Beispiel text/xml; charset=UTF-8) und Dateinamen eingebetteter Dateien als ISO-32000-2-Literal-Strings, einschließlich Escapes. FacturXEmbedder erzeugt ein hybrides PDF/A-3-Dokument mit angehängtem Factur-X-XML. EInvoiceValidationResult berichtet über Profil, Syntax, Regelverstöße und Wrapper-Prüfungen.

Provenienz. C2paManifestEmbedder bettet einen vom Aufrufer bereitgestellten C2PA-Manifest-Store in einen PDF-Byte-String ein oder extrahiert einen wieder heraus. ManifestStore ist das unveränderliche Wertobjekt, das die Grenze überquert. Die Naht synthetisiert keine Claims und löst keine Hash-Bindungen auf.

Dieses Modul berichtet, was es prüft. Es behauptet nicht, dass ein Dokument rechtlich konform, zertifiziert oder rechtsverbindlich ist, und es garantiert nicht, dass eine Ausgabe einer Regulierung oder Rechtsordnung genügt.

  • Der E-Rechnungs-Validator prüft ausschließlich das semantische Modell EN 16931 und die Container-Spezifikation Factur-X / ZUGFeRD. Er ist kein Validator einer Steuerbehörde. Nationale Erweiterungen — zum Beispiel das italienische SDI, das französische Chorus Pro, die deutsche XRechnung — liegen außerhalb des Geltungsbereichs. Wie EN 16931-1 selbst anmerkt, ist der Rechnungsaussteller dafür verantwortlich, die Regeln der einschlägigen Gesetzgebung zu erfüllen.
  • Der Sprach-Tag-Reporter erzeugt einen Bericht über Tag-Ereignisse. Er macht ein Dokument nicht konform.
  • Das C2PA-Einbetten schreibt ein vom Aufrufer bereitgestelltes Manifest. Es erzeugt oder signiert die darin enthaltenen Claims nicht.

Die Unterstützung eines Standards ist nicht dasselbe wie die Konformität mit ihm. Konsultieren Sie Ihr Compliance-Team, um die regulatorische Hinlänglichkeit für Ihren Einsatz zu beurteilen.

Die tragende Entscheidung ist eine harte Trennlinie zwischen Prüfen und Zertifizieren. Jede Oberfläche liefert Belege — einen Bericht, ein Validierungsergebnis, ein eingebettetes Manifest — niemals die Behauptung, dass ein Dokument rechtlich konform ist. Das hält die Naht über Editionen hinweg ehrlich. ConformancePolicy schlägt bei einem fehlerhaften /Lang-Tag fehlersicher zu, und C2paManifestEmbedder signiert die Claims, die er trägt, niemals. EInvoiceValidator::validate() gibt ein EInvoiceValidationResult zurück; ein grünes isValid() ist eine Eingabe in Ihre Entscheidung, kein Urteil, das Sie einer Aufsichtsbehörde ungeprüft übergeben können. Die Belege fügen sich zu Ihren eigenen Kontrollen hinzu, statt sie zu ersetzen, sodass sie auch bei feindlicher Eingabe wahrheitsgemäß bleiben.

Design-Hintergrund: Compliance, die Sie einem Prüfer übergeben können.

KlasseZuständigkeit
LangComplianceReporterStrukturierte Sprach-Tag-Ereignisdatensätze ausgeben.
ConformancePolicyPremium-Fassade für strikte UA-2-Sprachrichtlinie.
EInvoiceValidatorEN 16931 / Factur-X / ZUGFeRD prüfen; ein Ergebnis zurückgeben.
EInvoiceValidationResultProfil, Syntax, Regelverstöße, Wrapper-Prüfungen.
FacturXEmbedderEin hybrides PDF/A-3-+-Factur-X-XML-Dokument erzeugen.
C2paManifestEmbedderEinen C2PA-Manifest-Store einbetten oder extrahieren.
ManifestStoreUnveränderliches C2PA-Manifest-Store-Wertobjekt.
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.
  • Ein wohlgeformtes, nicht-Factur-X-PDF liefert ein Ergebnis „keine E-Rechnung“, statt eine Ausnahme zu werfen.
  • Der XML-Extraktor liest Objekt-Stream-PDFs (die Standardausgabe von Ghostscript, Gotenberg und Antenna House) und akzeptiert RFC-7303-parametrisierte MIME-Subtypen sowie ISO-32000-2-Literal-String-Dateinamen. Dies ist Kompatibilitätsextraktion für konforme Erzeugerausgabe, keine maßgebliche Anhang-Validierung gegen feindliche Eingaben — die vollständige xref-Aktivierung für gegnerische öffentliche Endpunkte ist eine dokumentierte zurückgestellte Abgrenzung. Behandeln Sie Extraktion aus nicht vertrauenswürdigen Quellen entsprechend.
  • Eine leere Liste an Geschäftsregelverstößen bedeutet für sich genommen nicht, dass das Dokument gültig ist; auch Wrapper- und Anhang-Prüfungen gelten.
  • NextPDF erklärt das laxe Opt-out von strikter UA-2 für deprecated; migrieren Sie auf den strikten Standard (siehe Konzeptioneller Überblick). Es verschwindet im nächsten Major-Release.

Die Validierungskosten skalieren mit der Größe des eingebetteten XML und der Regelanzahl. Die Sprach-Tag-Berichterstattung ist konstant je Ereignis.

Jegliches XML-Parsing deaktiviert die Auflösung externer Entitäten (XXE-sicher) und begrenzt die Dekomprimierung. Behandeln Sie E-Rechnungs-XML und C2PA-Bytes aus nicht vertrauenswürdigen Quellen als feindlich.

E-Rechnungs-XML kann personenbezogene und finanzielle Daten enthalten. Die Verarbeitung erfolgt prozessintern und lokal; das Modul führt zur Validierung keine ausgehenden Netzwerkaufrufe durch. Wenden Sie auf extrahiertes XML und Berichte Ihre eigenen Aufbewahrungs- und Minimierungskontrollen an.

Reporter-Datensätze und Validierungslogs können Tag-Werte und Regelbezeichner enthalten. Sie enthalten keine vollständigen Rechnungs-Nutzlasten. Bereinigen oder schwärzen Sie Tag-Werte, bevor Sie Logs an gemeinsam genutzte Senken weiterleiten, falls diese Werte sensibel sind.

VerhaltenReferenzStatus
Deklaration der natürlichen Sprache (/Lang)ISO 14289-2:2024 §8.4.4Geprüft / berichtet
Semantisches Kernmodell der RechnungEN 16931-1:2026Geprüft (Aussteller bleibt verantwortlich)
C2PA-Manifest-Store / JUMBFC2PA 2.1 §11.1Einbetten / Extrahieren unterstützt

Diese Tabelle hält die Spezifikationen fest, gegen die NextPDF Pro gebaut ist und was es prüft. Sie ist keine Aussage über Zertifizierung oder regulatorische Hinlänglichkeit.

Dieses Modul führt keine kryptografische Signierung durch. C2PA-Claim-Signierung und Schlüsselverwahrung liegen außerhalb seines Geltungsbereichs; das FIPS-Modus-Signierverhalten finden Sie im Security-Modul.

Nicht vertrauenswürdiges E-Rechnungs-XML und C2PA-Bytes sind die primären Eingaben. Maßnahmen: XXE-sicheres Parsing, begrenzte Dekomprimierung, keine Claim-Synthese über die C2PA-Naht und kein Netzwerk-I/O während der Validierung.

  • LangComplianceReporter gibt je PDF/UA-2-Sprach-Tag-Ereignis einen strukturierten JSON-Datensatz mit dem beanstandeten Tag, einem maschinenlesbaren Grund, geparsten Tag-Komponenten, einem ISO-14289-2-§8.4.4-Verweis und einem Zeitstempel aus.
  • ConformancePolicy steht standardmäßig auf strikter UA-2-Sprachbehandlung und schlägt fehlersicher zu, wenn ein fehlerhaftes oder nicht registriertes BCP-47-Tag in /Lang gelangt. Das laxe Opt-out ist deprecated und wird im nächsten Major-Release entfernt.
  • EInvoiceValidator erkennt das Profil, führt die EN-16931-Geschäftsregel-Engine und einen Schematron-Durchlauf aus und gibt ein EInvoiceValidationResult zurück. Es ist kein Validator einer Steuerbehörde; nationale Erweiterungen liegen außerhalb des Geltungsbereichs, und der Aussteller bleibt gemäß EN 16931-1 verantwortlich.
  • FacturXEmbedder erzeugt ein hybrides PDF/A-3-Dokument mit angehängtem Factur-X-XML. C2paManifestEmbedder bettet einen vom Aufrufer bereitgestellten ManifestStore ein oder extrahiert ihn; er synthetisiert oder signiert keine Claims.
  • Dieses Modul berichtet, was es prüft. Es zertifiziert kein Dokument und garantiert keine regulatorische Hinlänglichkeit.

Compliance in Pro umfasst Sprach-Tag-Berichterstattung, EN-16931- / Factur-X- / ZUGFeRD-Prüfung und C2PA-Manifest-Einbettung/-Extraktion. Erweiterte Archiv- und Signaturprofile sowie C2PA-Claim-Signierung mit Schlüsselverwahrung sind Anliegen der Enterprise-Stufe, die separat dokumentiert sind und nicht von diesem Modul bereitgestellt werden.

Für Sprach-Tag-Berichterstattung, E-Rechnungs-Behandlung oder C2PA-Manifest-Einbettung gibt es kein Core-Äquivalent. Dies sind Pro-Ergänzungen.

Diese Seite dokumentiert ausschließlich extern beobachtbares Verhalten und die unterstützte öffentliche API-Oberfläche. Interne Namespace-Pfade, Helferklassen, Mechanismus-Tabellen, Runbook-Dateinamen und Ticket-Präfixe liegen außerhalb des Geltungsbereichs.