Zum Hauptinhalt springen

PDF-Validierungstool

docs101 bietet ein kostenloses, öffentliches PDF-Validierungstool zur Prüfung von ZUGFeRD- und Factur-X-Rechnungen. Kein Konto oder Login ist erforderlich — jeder kann ein PDF hochladen und erhält einen detaillierten Compliance-Bericht.

Kostenlos und öffentlich

Das PDF-Validierungstool steht jedem zur Verfügung. Sie benötigen kein docs101-Konto. Laden Sie einfach ein ZUGFeRD- oder Factur-X-PDF hoch und erhalten Sie sofortige Ergebnisse.

Für wen ist das Tool gedacht?​

  • Buchhalter und Steuerberater, die überprüfen moechten, ob empfangene Rechnungen EN 16931-konform sind
  • Unternehmen, die Rechnungen von Lieferanten vor der Verarbeitung prüfen
  • docs101-Nutzer, die bestätigen moechten, dass ihre eigenen Rechnungen alle Compliance-Prüfungen bestehen
  • Entwickler, die ZUGFeRD/Factur-X-Generierung integrieren und die Ausgabe verifizieren moechten
  • Jeder, der prüfen muss, ob ein PDF gültige ZUGFeRD/Factur-X-Daten enthält

So verwenden Sie das Validierungstool​

Schritt 1: PDF hochladen​

Senden Sie einen POST-Request an /api/v1/validate-invoice mit der PDF-Datei als Multipart-Form-Upload im Feld file.

Sie können auch die Digitale Rechnungsprüfung-Seite auf der docs101-Website verwenden, die eine benutzerfreundliche Upload-Oberflaeche für denselben Validierungsdienst bietet.

Schritt 2: Validierungsbericht erhalten​

Das Tool analysiert Ihr PDF und gibt einen JSON-Bericht zurück, der vier Bereiche abdeckt:

  1. XML-Einbettung — Ist eine ZUGFeRD/Factur-X-XML-Datei im PDF eingebettet?
  2. XML-Extraktion — Kann die eingebettete XML erfolgreich extrahiert und gelesen werden?
  3. KOSiT-Validierung — Besteht die XML die EN 16931-Validierung über den offiziellen KOSiT-Validator?
  4. XMP-Metadaten — Enthält das PDF korrekte PDF/A-3-Metadaten für ZUGFeRD/Factur-X?

Schritt 3: Ergebnisse überprüfen​

Der Bericht enthält alles, was Sie zur Bewertung der Compliance benötigen. Weitere Details zur Interpretation der einzelnen Teile finden Sie in den folgenden Abschnitten.

Was das Tool prüft​

1. Erkennung eingebetteter XML​

Das Tool oeffnet das PDF mit pikepdf und sucht an zwei Stellen nach eingebetteten XML-Dateien:

  • Names-Baum (/Root/Names/EmbeddedFiles/Names) — Der Standardspeicherort für eingebettete Dateien in einem PDF
  • Associated Files (/Root/AF) — Ein alternativer Speicherort, der von manchen PDF-Generatoren verwendet wird

Wenn eine XML-Datei gefunden wird, besteht die Prüfung. Wird keine XML gefunden, ist das PDF kein gültiges ZUGFeRD/Factur-X-Dokument.

2. XML-Extraktion​

Sobald eine eingebettete XML-Datei erkannt wird, extrahiert das Tool deren Inhalt. Damit wird überprüft, dass die XML nicht beschädigt ist und als gültige XML-Daten gelesen werden kann. Die Extraktion wird sowohl über den Names-Baum als auch über Associated Files versucht.

3. KOSiT-Validierung​

Die extrahierte XML wird an den KOSiT-Validator (Koordinierungsstelle für IT-Standards) gesendet, den offiziellen deutschen Validierungsdienst für EN 16931-E-Rechnungen. KOSiT prüft:

  • XML-Schema-Konformität — Die XML-Struktur entspricht dem erwarteten Schema
  • Schematron-Geschäftsregeln — Die von EN 16931 definierten Geschäftsregeln sind erfüllt (z.B. Summen stimmen, Pflichtfelder vorhanden, gültige Codelisten verwendet)
  • Fehlerklassifizierung — Probleme werden als Fehler, Warnungen oder Informationsmeldungen kategorisiert
info

KOSiT wird von der deutschen Bundesregierung betrieben und ist der Referenzvalidator für EN 16931 in Deutschland. Das Bestehen der KOSiT-Validierung bedeutet, dass die Rechnungs-XML den europäischen E-Rechnungsstandard erfüllt.

4. PDF/A-3 XMP-Metadaten​

ZUGFeRD/Factur-X erfordert, dass das PDF im PDF/A-3-Format mit bestimmten XMP-Metadaten vorliegt. Das Tool prüft:

  • PDF/A-Teil — Muss 3 sein (PDF/A-3)
  • PDF/A-Konformität — Muss A, B oder U sein
  • Dokumententyp — Muss INVOICE sein
  • Dokument-Dateiname — Muss factur-x.xml oder zugferd-invoice.xml sein
  • Version — Muss eine erkannte Version sein (z.B. 1.0, 1.0.07, 2p1, 2p2, 2p3)
  • Dateinamenübereinstimmung — Der in den XMP-Metadaten deklarierte Dateiname muss mit dem tatsächlich eingebetteten XML-Dateinamen übereinstimmen

Alle diese Bedingungen müssen erfüllt sein, damit die XMP-Prüfung besteht.

Den Validierungsbericht verstehen​

Der Validierungsbericht wird als JSON mit folgender Struktur zurückgegeben:

Checks-Array​

Das checks-Array enthält vier Validierungsprüfungen, jeweils mit einer id und einem status ("true" oder "false"):

Check-IDBedeutung
xml_embeddedEine XML-Datei wurde im PDF eingebettet gefunden
xml_extractableDie eingebettete XML konnte erfolgreich extrahiert und gelesen werden
xml_validatedDie XML hat die KOSiT-Validierung gegen EN 16931 bestanden
xmp_validDie PDF/A-3 XMP-Metadaten sind korrekt für ZUGFeRD/Factur-X
warnung

Wenn xml_embedded den Wert "false" hat, enthält das PDF überhaupt keine ZUGFeRD/Factur-X-XML. Die verbleibenden Prüfungen werden ebenfalls fehlschlagen. Das bedeutet, dass das PDF eine regulaere Rechnung ist, keine digitale E-Rechnung.

Digital-Invoice-Flag​

Das übergeordnete Feld digital_invoice ist nur dann true, wenn das PDF gültige eingebettete XML enthält, die die KOSiT-Validierung besteht. Fehlt die XML oder schlaegt die Validierung fehl, ist dieses Feld false.

XML-Details​

Das xml_details-Objekt enthält:

  • valid — Ob die XML die KOSiT-Validierung bestanden hat (true/false)
  • validation_errors — Array von Fehlerobjekten aus KOSiT (jeweils mit code und text)
  • validation_warnings — Array von Warnungsobjekten
  • validation_infos — Array von Informationsmeldungen

XMP-Details​

Das xmp_details-Objekt enthält:

  • valid — Ob alle XMP-Prüfungen bestanden wurden
  • part — PDF/A-Teilnummer (sollte 3 sein)
  • conformance — PDF/A-Konformitätsstufe (A, B oder U)
  • document_type — Sollte INVOICE sein
  • document_file_name — Der deklarierte XML-Dateiname
  • version — Die ZUGFeRD/Factur-X-Version
  • conformance_level — Die EN 16931-Konformitätsstufe

Zusammenfassung​

Das summary-Objekt extrahiert wichtige Fakten aus der Rechnungs-XML zur schnellen Überprüfung:

  • Rechnungsnummer — Die Rechnungsnummer
  • Ausstellungsdatum — Wann die Rechnung ausgestellt wurde
  • Fälligkeitsdatum — Wann die Zahlung fällig ist
  • Verkäufername und Umsatzsteuer-ID — Das rechnungsstellende Unternehmen
  • Beträge — Nettosumme, Steuersumme, Bruttosumme
  • Zahlungsbedingungen — Zahlungsbedingungstext und Fälligkeitsdatum

Häufige Ergebnisse interpretieren​

Alle Prüfungen bestanden​

Alle vier Prüfungen zeigen "true" und digital_invoice ist true. Das PDF ist eine vollständig konforme ZUGFeRD/Factur-X-Rechnung, die die EN 16931-Anforderungen erfüllt.

XML eingebettet, aber Validierung fehlgeschlagen​

xml_embedded und xml_extractable sind "true", aber xml_validated ist "false". Das PDF enthält eingebettete XML, diese hat jedoch Fehler. Prüfen Sie das validation_errors-Array auf spezifische Probleme — häufige Ursachen sind fehlende Pflichtfelder, falsche MwSt.-Berechnungen oder ungültige Codelistenwerte.

Keine eingebettete XML​

xml_embedded ist "false". Das PDF ist ein regulaeres Dokument ohne ZUGFeRD/Factur-X-Daten. Es kann nicht als digitale E-Rechnung verarbeitet werden.

XMP-Metadaten ungültig​

xmp_valid ist "false", während andere Prüfungen bestehen. Die Rechnungs-XML ist gültig, aber die PDF-Metadaten entsprechen nicht vollständig den ZUGFeRD/Factur-X-Anforderungen. Prüfen Sie xmp_details, um zu sehen, welches spezifische Metadatenfeld fehlerhaft ist (falscher PDF/A-Teil, fehlender Dokumententyp, Dateinamenskonflikt usw.).

Dateianforderungen​

  • Format: Nur PDF-Dateien (Dateiendung .pdf erforderlich)
  • Größenlimit: Maximal 15 MB pro Datei
  • Inhalt: Das PDF sollte eine ZUGFeRD- oder Factur-X-Rechnung mit eingebetteter XML sein

Validierungs-Landingpage​

Wenn eine Rechnung über docs101 validiert wird, sind die Ergebnisse auf einer dedizierten Landingpage unter /pdf-validation/<uuid> verfügbar. Diese Seite zeigt die Validierungsergebnisse in einem lesbaren Format an, einschließlich aller Prüfungen, extrahierter Rechnungsdaten und etwaiger Fehler oder Warnungen.

Best Practices​

  1. Nach der Generierung validieren — Laden Sie nach dem Erstellen einer Rechnung in docs101 oder einem anderen Tool die Rechnung im Validierungstool hoch, um die Konformität zu bestätigen

  2. Eingehende Rechnungen prüfen — Validieren Sie Lieferantenrechnungen vor der Verarbeitung, um sicherzustellen, dass die eingebetteten Daten mit dem visuellen PDF übereinstimmen

  3. Fehler sorgfältig überprüfen — KOSiT-Fehler verweisen oft auf spezifische Felder oder Regeln. Verwenden Sie die Fehlercodes und Beschreibungen, um genau zu identifizieren, was behoben werden muss

  4. XMP-Metadaten separat prüfen — Auch wenn die XML validiert, können XMP-Metadatenprobleme bei mancher Verarbeitungssoftware Schwierigkeiten verursachen. Stellen Sie sicher, dass alle vier Prüfungen bestehen

  5. Zur Fehlersuche nutzen — Wenn eine Rechnung vom System eines Partners abgelehnt wird, validieren Sie sie zuerst mit diesem Tool, um die Ursache zu identifizieren

Technische Details​

Für weitere Informationen zum ZUGFeRD/Factur-X-Standard und dessen Beziehung zu EN 16931 siehe Konzepte: ZUGFeRD Erklärt und den ZUGFeRD & Factur-X-Leitfaden.


Weiter: Erfahren Sie, wie Sie Ihre Rechnungen mit Buchungsexporte verwalten.