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/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.