Handbuch
eInvoice Validator for KoSITInstallieren, arbeiten, einstellen
invoicePress / Handbücher / eInvoice Validator for KoSIT

eInvoice Validator for KoSIT – Handbuch

Gilt für Fassung 1.10.0. Stand 26.10.2026.

1 · Überblick

eInvoice Validator for KoSIT ist ein WordPress-Plugin. Es stellt auf einer Seite Ihrer Website eine Ablagefläche bereit, auf der ein Besucher eine E-Rechnung ablegt. Die Rechnung wird von Ihrem eigenen KoSIT-Validator geprüft, dem Referenzvalidator der deutschen XRechnung. Der Prüfbericht erscheint auf der Seite und lässt sich als XML-Datei herunterladen.

Achtung: Das Plugin enthält keinen Validator. Es steuert einen Validator, den Sie selbst installiert haben oder in Ihrem eigenen Netz betreiben. Es ist ein eigenständiges Werkzeug von invoicePress, kein Erzeugnis der KoSIT, steht in keiner Verbindung zu ihr und ist von ihr nicht empfohlen.

Für wen es gedacht ist: Für alle, die den KoSIT-Validator schon betreiben oder ihn installieren wollen und eine Seite brauchen, auf der Lieferanten, Kollegen oder Kunden eine Rechnung prüfen können, ohne eine Kommandozeile zu bedienen.

Was es kann:

  • Es nimmt XML-Rechnungen sowie ZUGFeRD- und Factur-X-PDFs per Ziehen und Ablegen oder per Dateiauswahl an.
  • Es prüft die Rechnung auf einem von zwei Wegen: mit dem Validator als lokalem Java-Programm auf dem Webserver oder über einen Prüfdienst. Ein Prüfdienst ist eine Validator Bridge oder eine Website mit dem Plugin eInvoice API; beide bieten dieselben Adressen an.
  • Es zeigt den Bericht auf der Seite, mit einer verständlichen Erklärung und dem betroffenen Feld zu jedem Befund.
  • Es bietet den vollständigen, unveränderten KoSIT-Bericht als XML-Datei zum Herunterladen an.
  • Es zeigt die Rechnung auf Wunsch in der offiziellen Darstellung der KoSIT, wenn Sie deren Dateien bereitstellen.
  • Es zeigt auf der Einstellungsseite eine Systemprüfung, die je Anschluss sagt, welche Voraussetzung fehlt und was zu tun ist.
  • Es merkt sich auf Wunsch die Prüfsumme (SHA-256) der validator.jar und verweigert die Prüfung, sobald die Datei nicht mehr dazu passt.
  • Es begrenzt die Zahl der Prüfungen je Besucher und Tag sowie die Dateigröße.
  • Es stellt die Prüfung zusätzlich über die REST-Adresse POST /wp-json/einvoice/v1/validate bereit.

Was es nicht kann:

  • Es kann von sich aus nichts prüfen. Ohne KoSIT-Installation oder erreichbaren Prüfdienst wird nichts geprüft; die Systemprüfung sagt das.
  • Es lädt den Validator nicht herunter und installiert ihn nicht. Das Plugin stellt von sich aus keine ausgehende Anfrage.
  • Es prüft nicht, ob eine neuere Veröffentlichung des KoSIT-Validators erschienen ist.
  • Es bietet genau zwei Anschlüsse: den lokalen Validator und den Prüfdienst.
  • Es ist keine Warteschlange. Eine sehr große Rechnung belegt die Anfrage so lange, wie der Validator braucht.

Voraussetzungen:

WasAnforderung
WordPress5.8 oder neuer (getestet bis 7.1)
PHP8.2 oder neuer
Lokaler Anschlusseine Java-Laufzeitumgebung ab Fassung 17 auf dem Webserver, der KoSIT-Validator (validator.jar und Szenario-Konfigurationen) und die PHP-Funktion proc_open
Prüfdiensteine laufende Validator Bridge oder eine Website mit eInvoice API und ausgehendes HTTP vom Webserver zu der Adresse, die Sie eintragen; kein Java auf dem Webserver
Browser des BesuchersJavaScript muss eingeschaltet sein
Bildschirmfoto fehltscreenshots/vk-ablage.de.pngDie Ablagefläche auf einer Seite der Website, darunter der Hinweis auf die heute noch möglichen Prüfungen
Die Ablagefläche auf einer Seite der Website, darunter der Hinweis auf die heute noch möglichen Prüfungen

2 · Installieren

Weg A: ZIP-Datei in WordPress hochladen

Weg B: Ordner ablegen

Weg C: wordpress.org

Der Bezug über das Plugin-Verzeichnis von wordpress.org ist vorgesehen, das Plugin ist dort aber noch nicht veröffentlicht. Bis dahin nehmen Sie Weg A oder Weg B.

Den KoSIT-Validator bereitstellen

Das Plugin arbeitet erst, wenn es einen Validator erreicht. Sie stellen einen der beiden Wege bereit:

Hinweis: Der KoSIT-Validator, seine Szenario-Konfigurationen und die Java-Laufzeitumgebung haben eigene Lizenzen und einen eigenen Veröffentlichungsrhythmus. Sie beziehen und aktualisieren sie selbst.

Aktualisieren

Sie ersetzen das Plugin durch die neue Fassung, indem Sie die neue ZIP-Datei wie bei Weg A hochladen oder bei Weg B den Ordner unter /wp-content/plugins/ austauschen. Solange das Plugin nicht auf wordpress.org steht, meldet WordPress eine neue Fassung nicht von sich aus. Die Einstellungen liegen in der Datenbank und bleiben erhalten. Wenn Sie die validator.jar selbst gegen eine neue Fassung tauschen und eine Prüfsumme gemerkt war, müssen Sie die neue Datei annehmen (siehe Kapitel 4, „Die Prüfsumme der validator.jar").

Entfernen

Sie deaktivieren und löschen das Plugin auf der Seite Plugins. Der KoSIT-Validator und Java bleiben davon unberührt, denn sie gehören nicht zum Plugin. In der Datenbank legt das Plugin die Einstellungen aus Kapitel 5 sowie die gemerkte Fassung und Prüfsumme der jar ab (spko_jar_version, spko_jar_sha256). Das Plugin räumt beim Löschen nicht auf; alle diese Einträge bleiben in der Datenbank stehen, auch der Schlüssel des Prüfdienstes. Wer das nicht will, leert vor dem Löschen das Schlüsselfeld und klickt auf Angenommene Prüfsumme vergessen.

3 · Erste Schritte

Bildschirmfoto fehltscreenshots/vk-einstellungen.de.pngDie Einstellungsseite mit der Wahl des Anschlusses und dem grünen Hinweis, dass validator.jar gefunden wurde
Die Einstellungsseite mit der Wahl des Anschlusses und dem grünen Hinweis, dass validator.jar gefunden wurde
Bildschirmfoto fehltscreenshots/vk-bericht-ok.de.pngEin Prüfbericht zu einer Rechnung ohne Befunde, darüber der Knopf zum Herunterladen des Berichts
Ein Prüfbericht zu einer Rechnung ohne Befunde, darüber der Knopf zum Herunterladen des Berichts

4 · Arbeiten mit eInvoice Validator for KoSIT

Eine Rechnung prüfen

Der Besucher zieht eine Datei auf die Ablagefläche oder klickt darauf und wählt eine Datei aus. Die Fläche lässt sich auch mit der Tastatur bedienen (Eingabetaste oder Leertaste). Angenommen werden Dateien mit der Endung .xml oder .pdf, also CII- oder UBL-XML und ZUGFeRD- oder Factur-X-PDF. Während der Prüfung steht unter der Fläche der Hinweis, dass der Validator läuft und dies bis zu 15 Sekunden dauern kann. Danach erscheint der Bericht.

Eine Rechnung aus einer PDF prüfen

Bei einer ZUGFeRD- oder Factur-X-PDF holt der Browser des Besuchers die eingebettete Rechnungs-XML aus der PDF. An den Server geht nur diese XML, nicht die PDF. Enthält die PDF keine Rechnung, meldet die Seite, dass diese PDF keine E-Rechnung trägt: Eine PDF, die nur gedruckt wurde, hat keinen XML-Anhang.

Den Bericht lesen

Über dem Bericht steht ein Kopf mit dem Knopf zum Herunterladen. Der Bericht selbst zeigt das Ergebnis und die Befunde. Seit Fassung 1.5.0 erscheint er in derselben Ansicht wie im eInvoice Validation Explorer, mit einer verständlichen Erklärung und dem betroffenen Feld zu jedem Befund; das gilt auch, wenn der Explorer nicht installiert ist. Ein Befund zu einer Anlage der Rechnung nennt den Namen der Anlage.

Das Ergebnis stammt aus der Empfehlung des Validators selbst, nicht aus dem Kennzeichen valid des Berichts. Ein Bericht, dessen Befunde ausschließlich Warnungen sind, ist eine angenommene Rechnung und wird auch so gezeigt.

Neben dem Bericht gibt es eine Belegansicht der Rechnung. Sie markiert Felder, die eine Regel aus der Rechnung selbst verletzen, mit einem Hinweis unter dem Feld. Zahlen und Datumsangaben folgen der Sprache der Website.

Kann die verständliche Ansicht nicht aufgebaut werden, zeigt das Plugin eine einfachere Berichtsansicht. Lässt sich der Bericht gar nicht deuten, erscheint als letzter Ausweg die Rohfassung des Validators in einem abgeschirmten Rahmen, in dem keine Skripte laufen.

Bildschirmfoto fehltscreenshots/vk-bericht-befunde.de.pngEin Prüfbericht mit Befunden: Ergebnis, Liste der Befunde mit Erklärung und betroffenem Feld
Ein Prüfbericht mit Befunden: Ergebnis, Liste der Befunde mit Erklärung und betroffenem Feld

Den Bericht herunterladen

Der Knopf „Download report.xml" speichert den vollständigen KoSIT-Bericht als XML-Datei. Auf einer deutschen Website heißt er „report.xml herunterladen", und die Zeile daneben heißt „Prüfbericht". Die Datei heißt wie die geprüfte Rechnung mit dem Zusatz -report.xml, zum Beispiel rechnung-4711-report.xml. Es ist der Bericht des Validators (rep:report), unverändert.

Der Knopf daneben, „report.html herunterladen“, speichert den Bericht, den der KoSIT-Validator zusätzlich als HTML-Seite schreibt, ebenfalls unverändert. Die Seite lässt sich ohne Internetverbindung öffnen, drucken und weitergeben. Der KoSIT-Validator schreibt sie auf Deutsch, auch auf einer englischen Website.

Die Rechnung darstellen

Ist unter „Rechnungsdarstellung ( optional )" ein passender Ordner eingetragen, steht unter dem Bericht der Knopf Rechnung darstellen. Er zeigt die geprüfte Rechnung in der offiziellen Darstellung der KoSIT, der xrechnung-visualization, direkt über dem Bericht. Die Darstellung entsteht auf Ihrem Server mit dem Java und der validator.jar, die für den lokalen Anschluss eingetragen sind, auch wenn die Prüfung über den Prüfdienst läuft. Auf einer deutschen Website erscheint sie auf Deutsch, sonst auf Englisch, denn die KoSIT liefert nur diese beiden Sprachen. Jede Darstellung zählt wie eine Prüfung gegen die Tagesgrenze.

Die Systemprüfung

Unter den Einstellungen steht die „Systemprüfung". Sie zeigt für jeden der beiden Anschlüsse eine Tabelle; der gewählte Anschluss ist mit „aktiv" gekennzeichnet. Jede Zeile ist grün (Haken) oder rot (Kreuz). Eine rote Zeile nennt den nächsten Schritt. Geprüft werden unter anderem das Starten von Prozessen, Java, die jar und ihre Unversehrtheit, die PHP-Fassung, Erweiterungen und der Speicher. Die Prüfung läuft bei jedem Laden der Seite neu.

Hinweis: Das Plugin lädt die validator.jar nie selbst. Fehlt sie oder passt sie nicht mehr, nennt die Zeile den Weg: die Datei aus der Veröffentlichung der KoSIT von Hand in den Ordner bin/ legen und mit Die Datei auf der Festplatte annehmen annehmen. Schreibrechte auf das Validator-Verzeichnis braucht das Plugin nicht.

Bildschirmfoto fehltscreenshots/vk-systempruefung.de.pngDie Systemprüfung mit grünen und roten Zeilen für beide Anschlüsse, bei einer roten Zeile der nächste Schritt
Die Systemprüfung mit grünen und roten Zeilen für beide Anschlüsse, bei einer roten Zeile der nächste Schritt

Die Verbindung prüfen

Unter jeder Tabelle steht der Knopf Verbindung prüfen. Er schickt ein kleines Prüfdokument an den jeweiligen Anschluss, auch an den, der gerade nicht aktiv ist. So können Sie den Prüfdienst testen, während die Website noch lokal prüft. Bei Erfolg erscheint in Grün „Verbunden. Umlaufzeit: … ms." mit der Laufzeit in Millisekunden. Bei einem Fehler steht die Meldung des Anschlusses in Rot daneben.

Die Prüfsumme der validator.jar

Im Abschnitt „validator.jar" der Einstellungsseite sehen Sie nebeneinander, was auf der Festplatte liegt (Größe, Fassung aus der jar selbst, SHA-256) und was Sie angenommen haben (Fassung, SHA-256). Sind beide Prüfsummen vorhanden, sagt eine eigene Zeile, ob sie übereinstimmen.

  • Der Knopf Die Datei auf der Festplatte annehmen berechnet die Prüfsumme der vorhandenen Datei und merkt sie sich. Danach erscheint „Erledigt. Laden Sie diese Seite neu, um die aktualisierte Systemprüfung zu sehen."
  • Solange keine Prüfsumme angenommen ist, wird die jar vor dem Lauf nicht überprüft.
  • Stimmt die Datei später nicht mehr mit der angenommenen Prüfsumme überein, verweigert das Plugin die Prüfung, bis Sie die neue Datei annehmen.
  • Der Knopf Angenommene Prüfsumme vergessen erscheint nur, wenn eine gemerkt ist. Er hebt die Bindung auf.
Bildschirmfoto fehltscreenshots/vk-jar-pruefsumme.de.pngDer Abschnitt validator.jar mit beiden Prüfsummen nebeneinander und der Zeile zur Übereinstimmung
Der Abschnitt validator.jar mit beiden Prüfsummen nebeneinander und der Zeile zur Übereinstimmung

Die Tagesgrenze

Unter der Ablagefläche steht „Verbleibende Uploads heute: …" mit der Zahl der Prüfungen, die der Besucher heute noch hat. Gezählt werden nur erfolgreiche Prüfläufe. Ist die Grenze erreicht, meldet die Seite „Das tägliche Upload-Limit ist erreicht. Bitte morgen erneut versuchen."

5 · Einstellungen

Alle Einstellungen stehen unter eInvoice Validator → KoSIT. Die Seite ist Benutzern mit dem Recht vorbehalten, Einstellungen zu verwalten (manage_options). Die Tabellen nennen die deutschen Beschriftungen, wie sie auf einer deutschen Website erscheinen.

Abschnitt „E-Rechnungs-Validator KoSIT"

EinstellungStandardWirkung
Anschluss des Validatorslokaler ValidatorWählt den Anschluss: „Lokal ( java -jar, auf diesem Server )" oder „Prüfdienst ( Validator Bridge oder eInvoice API, über HTTP )". Beide Anschlüsse liefern zum selben Beleg denselben Bericht.
Verzeichnis des Validators ( lokal )leerVerzeichnis, das bin/validator.jar und je Format config/<name>/scenarios.xml enthält, zum Beispiel C:\kosit-validator.
Java-Programm ( lokal )javaAufruf von Java. java genügt, wenn es im Suchpfad liegt; sonst der volle Pfad zum Java-Programm.
Zeitgrenze ( lokal, Sekunden )60Zeitgrenze für einen lokalen Lauf, mindestens 5. Unter dem Feld steht, ein Lauf dauere typischerweise 10 bis 15 Sekunden. Auf einem Arbeitsplatzrechner dauerte ein Lauf gegen die drei Szenariensammlungen rund 4 Sekunden; ein schwächerer Webserver braucht länger. Lassen Sie Luft darüber.
Tägliche Uploads je Rollejede Rolle 10Eine Tabelle mit einer Zeile für Gäste ( nicht angemeldet ) und je einer Zeile für jede Rolle der Website. Je Zeile gilt: leer heisst unbegrenzt, 0 heisst kein Zugang, eine Zahl heisst so viele Prüfungen je Kalendertag. Angemeldete Benutzer werden je Benutzer gezählt, Gäste je IP-Adresse. Wer mehrere Rollen hat, bekommt den grosszügigsten Wert. Administratoren sind nie begrenzt. Bis die Tabelle zum ersten Mal gespeichert ist, gilt für jede Rolle der bisherige einzelne Wert.
Maximale Dateigröße ( MB )8Größte angenommene Datei. Wirksam ist der kleinere Wert aus dieser Einstellung und der Upload-Grenze von WordPress.
Proxy-Header vertrauenausNimmt die Besucheradresse aus dem Kopf X-Forwarded-For. Nur hinter einem vertrauenswürdigen Reverse Proxy einschalten.
Rechnungsdarstellung ( optional )leerOrdner der entpackten Veröffentlichung xrechnung-visualization der KoSIT, der xsl\xrechnung-html.xsl enthält, zum Beispiel C:\kosit-visualization. Darunter steht, ob die Dateien gefunden wurden. Bleibt das Feld leer, gibt es den Knopf Rechnung darstellen nicht.
Design-KitKit HGestaltung von Ablagefläche und Bericht. Die Wahl gilt für alle eInvoice-Werkzeuge der Website.

Abschnitt „Prüfdienst ( Validator Bridge oder eInvoice API )"

Diese Felder brauchen Sie nur für den Anschluss „Prüfdienst“. Ein Prüfdienst ist eine von zwei Arten von Dienst, die dieselben Adressen anbieten:

  • Validator Bridge: ein kleiner freier Dienst, der den KoSIT-Validator auf diesem oder einem anderen Rechner ausführt und über HTTP anbietet; ihre Anleitung liegt bei ihr.
  • eInvoice API: eine WordPress-Website mit dem Plugin eInvoice API, die die Prüfung an ihre eigene Bridge weiterreicht und dafür einen Schlüssel und ein Kontingent vergibt.
EinstellungStandardWirkung
Adresse des PrüfdienstesleerBei einer Bridge die Adresse, die sie beim Start nennt, zum Beispiel http://127.0.0.1:8090. Bei der eInvoice API einer Website deren REST-Adresse, zum Beispiel https://example.com/wp-json/einvoice-api/v1.
API-Schlüssel des PrüfdienstesleerBei einer Bridge auf einem Server einer der Schlüssel aus api.keys ihrer Einstellungsdatei. Bei der eInvoice API Ihr API-Schlüssel dieser Website. Eine Bridge auf demselben Rechner braucht keinen.

Wählen Sie bei „Anschluss des Validators“ den Eintrag „Prüfdienst“, speichern Sie und prüfen Sie in der Systemprüfung, ob die Zeilen „Der Prüfdienst antwortet“ und „KoSIT ist im Prüfdienst verfügbar“ einen grünen Haken tragen. Die erste Zeile nennt dabei, ob eine Validator Bridge oder eine eInvoice API antwortet.

Bildschirmfoto fehltscreenshots/vk-pruefdienst.de.pngDer Abschnitt für den Prüfdienst mit Adresse und Schlüssel
Der Abschnitt für den Prüfdienst mit Adresse und Schlüssel

Kurzbefehl

KurzbefehlAttributeWirkung
[spko_kosit_validator]keineZeigt die Ablagefläche, die Meldungszeile und den Bereich für den Bericht.
[spko_kosit_validator]

Hinweis: Bis Fassung 1.1.1 hieß der Kurzbefehl [kosit_validator]. Seiten mit dem alten Namen brauchen den neuen.

6 · Besondere Fälle

Sie wollen prüfen, haben auf dem Webserver aber kein Java. Starten Sie eine Validator Bridge auf einem anderen Rechner oder nutzen Sie eine Website mit eInvoice API, wählen Sie den Anschluss Prüfdienst und tragen Sie Adresse und Schlüssel ein. Auf dem Webserver wird dann kein Java gebraucht.

Ihre Website steht hinter einem Reverse Proxy. Ohne weitere Einstellung sähen alle Besucher für die Tagesgrenze wie eine einzige Adresse aus. Schalten Sie „Proxy-Header vertrauen" ein. Gezählt wird dann die Adresse, die der Proxy angehängt hat, und nicht eine, die ein Besucher selbst mitschicken kann.

Sie tauschen die validator.jar gegen eine neue Fassung. Hatten Sie eine Prüfsumme angenommen, verweigert das Plugin nach dem Tausch die Prüfung. Öffnen Sie die Einstellungsseite, vergleichen Sie die beiden Prüfsummen und nehmen Sie die Datei auf der Festplatte an.

Sie wollen den Prüfdienst testen, bevor Sie umschalten. Tragen Sie seine Adresse ein, speichern Sie und klicken Sie in der Systemprüfung beim Prüfdienst auf Verbindung prüfen. Der aktive Anschluss bleibt dabei der lokale.

7 · Zusammenspiel mit anderen Paketen

Die Zusammenarbeit entsteht allein dadurch, dass das andere Plugin aktiv ist. Es gibt nichts einzurichten.

PaketWas dann dazukommt
eInvoice ViewerEine im Viewer bereits geöffnete Rechnung bekommt einen Knopf „mit dem KoSIT-Validator prüfen".
eInvoice Validation Explorer for KoSITDer Bericht erscheint in der Darstellung des Explorers, mit verständlichen Sätzen und BT/BG-Angaben.
Zusatz Extended ProfilesBefunde zu Feldern einer Erweiterung (BT-X) zeigen ihren Wert aus dem Dokument, und die Regeln von ZUGFeRD / Factur-X EXTENDED und EXTENDED-CTC-FR werden erklärt. Ohne den Zusatz zeigt ein solcher Befund die Kennung und die Meldung des Prüfers.
eInvoice Validator for VAMPIREKein Zusammenspiel, sondern die Alternative: ein eigenes Plugin mit eigener Prüf-Engine für alle, die ohne Java-Installation prüfen wollen.
Bildschirmfoto fehltscreenshots/vk-viewer-knopf.de.pngEine Rechnung im eInvoice Viewer mit dem Knopf zum Prüfen mit dem KoSIT-Validator
Eine Rechnung im eInvoice Viewer mit dem Knopf zum Prüfen mit dem KoSIT-Validator

8 · Wenn etwas nicht geht

Die Meldungen stehen hier im deutschen Wortlaut, so wie sie auf einer deutschen Website erscheinen.

AnzeichenUrsacheAbhilfe
Einstellungsseite: „Noch nicht konfiguriert." in RotDas Validator-Verzeichnis ist leer.Verzeichnis eintragen, das bin/validator.jar und einen Ordner config mit den Szenario-Konfigurationen enthält.
Einstellungsseite: „validator.jar wurde nicht gefunden" in RotIm eingetragenen Verzeichnis fehlt bin/validator.jar.Pfad prüfen; die Datei muss im Unterordner bin liegen. Oder den Prüfdienst verwenden.
Rote Zeile in der SystemprüfungEine Voraussetzung des Anschlusses fehlt, zum Beispiel Java oder proc_open.Den nächsten Schritt ausführen, den die Zeile nennt, und die Seite neu laden.
Zeile „Übereinstimmung" mit „NEIN. Die Datei hat sich geändert, seit Sie sie angenommen haben. Es wird nicht geprüft, bis Sie die neue annehmen."Die validator.jar passt nicht mehr zur angenommenen Prüfsumme.Prüfen, ob der Tausch gewollt war, dann Die Datei auf der Festplatte annehmen.
Warnung „Die Quelle, die Sie eingerichtet hatten, gibt es nicht mehr."Aus einer früheren Installation ist ein Anschluss gespeichert, den dieses Plugin nicht kennt. Geprüft wird vorerst lokal.Einen der beiden Anschlüsse wählen und speichern.
„Der Anschluss hat geantwortet, aber nicht mit dem erwarteten Ergebnis für den Testbeleg."Unter der Adresse oder im Verzeichnis antwortet etwas, das sich nicht wie der erwartete Validator verhält.Adresse, Verzeichnis und Szenario-Konfigurationen prüfen.
„Bitte wählen Sie eine PDF- oder XML-Datei."Die Datei hat eine andere Endung als .xml oder .pdf.Die Rechnung als XML oder als ZUGFeRD-/Factur-X-PDF ablegen.
„Diese PDF enthält keine E-Rechnung. Eine ZUGFeRD- oder Factur-X-PDF trägt die Rechnung als XML im Anhang; eine PDF, die nur gedruckt wurde, tut das nicht."Die PDF hat keinen XML-Anhang, etwa weil sie nur gedruckt oder gescannt wurde.Die XML-Rechnung oder eine echte ZUGFeRD-/Factur-X-PDF verwenden.
„Die Datei ist zu groß."Die Datei überschreitet die eingestellte Größe oder die Upload-Grenze von WordPress.„Maximale Dateigröße ( MB )" erhöhen und, falls nötig, die Upload-Grenze des Servers.
„Das tägliche Upload-Limit ist erreicht. Bitte morgen erneut versuchen."Der Besucher hat die erlaubte Zahl an Prüfungen für heute verbraucht.Morgen erneut versuchen; als Betreiber in „Tägliche Uploads je Rolle" die Zahl der Rolle erhöhen oder das Feld leeren.
„Dieses Werkzeug steht für Ihr Konto nicht zur Verfügung."Für die Rolle des Besuchers steht in „Tägliche Uploads je Rolle" eine 0.Als Betreiber für diese Rolle eine Zahl eintragen oder das Feld leeren.
„Sicherheitsprüfung fehlgeschlagen. Bitte die Seite neu laden."Das Einmalkennwort der Anfrage war ungültig.Seite neu laden und erneut ablegen.
„Die Rechnungsdarstellung der KoSIT ist nicht eingerichtet."Der Knopf wurde gedrückt, aber der Ordner der Darstellung fehlt oder ist unvollständig.„Rechnungsdarstellung ( optional )" prüfen; unter dem Feld muss „Gefunden" stehen.
„Der Validator hat zu lange gebraucht und wurde gestoppt."Der lokale Lauf hat die Zeitgrenze überschritten.„Zeitgrenze ( lokal, Sekunden )" erhöhen.
„Der Validator konnte nicht gestartet werden. Prüfen Sie das Java-Programm und den Pfad des Validators in den Einstellungen."Java oder die validator.jar lassen sich nicht starten.Systemprüfung ansehen; „Java-Programm ( lokal )" und „Verzeichnis des Validators ( lokal )" prüfen.
„validator.jar passt nicht zur angenommenen Prüfsumme und wird nicht ausgeführt. …"Die validator.jar passt nicht mehr zur angenommenen Prüfsumme.Wie bei der Zeile „Übereinstimmung" oben.
„Der Prüfdienst war nicht erreichbar: …" oder „Der Prüfdienst hat mit Status … geantwortet."Der Prüfdienst ist nicht erreichbar oder antwortet mit einem Fehler, etwa 401 bei einem falschen Schlüssel oder 429, wenn das Kontingent einer eInvoice API aufgebraucht ist.„Verbindung prüfen" beim Prüfdienst ausführen; Adresse und Schlüssel prüfen.
Der Bericht erscheint als schlichte Tabelle in einem RahmenDer Bericht ließ sich nicht deuten; gezeigt wird die Rohfassung des Validators.Den Bericht herunterladen; er ist vollständig. Fassung des Validators und seiner Konfiguration prüfen.

9 · Datenschutz und Sicherheit

Was im Browser bleibt: Eine ZUGFeRD- oder Factur-X-PDF verlässt den Browser nicht. Die Rechnungs-XML wird dort herausgezogen. Auch die heruntergeladene Berichtsdatei entsteht im Browser aus dem Bericht, den die Seite schon erhalten hat.

Was an Ihren Server geht: Die Rechnungs-XML wird an Ihre eigene WordPress-Website gesendet. Das ist nötig, weil das Plugin dort den Validator oder den Prüfdienst anspricht.

  • Beim lokalen Anschluss schreibt das Plugin die Datei in ein Wegwerf-Verzeichnis, weil der Validator ein Kommandozeilenwerkzeug ist und einen Dateipfad braucht. Das Verzeichnis und sein Inhalt verschwinden am Ende der Anfrage, nach Erfolg, nach Misserfolg und nach einer Ausnahme.
  • Beim Prüfdienst sendet das Plugin die Rechnung über HTTP an die Adresse, die Sie eingetragen haben. Das Plugin liefert keine Adresse mit. Bleibt das Feld leer, wird nichts irgendwohin gesendet.

Achtung: Die Adresse des Prüfdienstes bestimmen Sie. Mit Ihrer eigenen Validator Bridge bleiben die Rechnungen in Ihrem Netz. Mit der eInvoice API einer fremden Website gehen sie an deren Betreiber, und es gelten seine Datenschutzerklärung und seine Nutzungsbedingungen.

Was an Dritte geht: Nichts, solange Sie keinen fremden Prüfdienst eintragen. Das Plugin stellt von sich aus keine ausgehende Anfrage, weder beim Laden einer Seite noch beim Hochladen, während der Prüfung oder im Adminbereich. Es lädt auch den Validator nicht herunter.

Was gespeichert wird: Von der Rechnung bleibt keine Kopie. Gespeichert werden die Einstellungen (darunter der Schlüssel des Prüfdienstes, falls eingetragen), die angenommene Fassung und Prüfsumme der jar und der Zähler der Tagesgrenze. Der Zähler hält nur die Zahl der Prüfungen fest: bei angemeldeten Benutzern nach ihrer Kennung, bei anonymen Besuchern nach einer verschlüsselten Fassung ihrer IP-Adresse. Was in der Datei stand, wird nicht festgehalten.

Schutz beim Hochladen: Geprüft werden die Endung und der tatsächliche Dateityp, die Größe und ob die Datei wirklich aus diesem Upload stammt. Ein Einmalkennwort schützt gegen Fremdanfragen; es wird bei jedem Hochladen frisch geholt und funktioniert deshalb auch auf zwischengespeicherten Seiten. Der Validator wird mit einem Feld von Argumenten aufgerufen und nie über eine zusammengesetzte Befehlszeile. Die Knöpfe der Einstellungsseite stehen nur Administratoren offen.

10 · Für Entwickler

ArtNameBedeutung
Kurzbefehlspko_kosit_validatorKonstante SPKO_SHORTCODE; keine Attribute.
Filterspko_force_enqueueErzwingt das Laden von Skript und Stylesheet auf Seiten, deren Inhalt den Kurzbefehl nicht selbst trägt. Wert: bool.
Filtereinvoice/report_htmlÜber ihn kann ein anderes Plugin die Berichtsansicht ersetzen; der Validation Explorer nutzt ihn.
Filter (genutzt)spx_force_enqueueDas Plugin hängt sich an diesen Filter des Explorers, damit dessen Skript auf Seiten mit [spko_kosit_validator] geladen wird.
RESTPOST /wp-json/einvoice/v1/validateDieselbe Prüfung wie auf der Seite. Dateifeld file. Das Einmalkennwort steht im Kopffeld X-WP-Nonce; ein fremdes Programm holt es vorher mit einem POST an admin-ajax.php mit action=einvoice_nonce ( Antwort data.nonce ). Antwort der Prüfung: html, view (explainer, lite oder raw), cssUrl, xml, filename, remaining.
AJAX, öffentlicheinvoice_nonceLiefert das Einmalkennwort für die REST-Adresse. Die Aktion gehört zu einem Baustein, den alle eInvoice-Werkzeuge teilen, und wird nur einmal angemeldet, auch wenn mehrere davon aktiv sind.
AJAX, öffentlichspko_nonce, spko_validate, spko_visualizeEinmalkennwort holen; Datei prüfen (Felder nonce und file); Rechnung darstellen (Felder nonce, file und lang, Antwort html).
AJAX, nur Administratorenspko_jar_reload, spko_jar_forget_pin, spko_test_connectionPrüfsumme annehmen, Prüfsumme vergessen, Verbindung prüfen (Feld adapter).
JavaScriptwindow.SPKO_renderReport( container, data )Zeichnet ein Prüfergebnis in ein Element; der Viewer nutzt diese Funktion.
JavaScriptwindow.EInvoice.register( 'validator', { renderReport } )Dieselbe Funktion im gemeinsamen Register der eInvoice-Werkzeuge.
KonstantenSPKO_VERSION, SPKO_FILE, SPKO_DIR, SPKO_URL, SPKO_SHORTCODEFassung, Hauptdatei, Verzeichnis, Adresse, Name des Kurzbefehls.
Optionenspko_adapter, spko_validator_dir, spko_java_bin, spko_timeout_seconds, spko_role_limits ( die Tabelle je Rolle; bis zu ihrem ersten Speichern gilt der frühere Einzelwert spko_daily_limit ), spko_max_filesize_mb, spko_trust_proxy, spko_bridge_url, spko_bridge_key, spko_visualization_dir, spko_jar_version, spko_jar_sha256Die gespeicherten Einstellungen.

HTTP-Antworten der Prüfung: 400 (keine, leere oder nicht lesbare Datei), 403 (Sicherheitsprüfung), 413 (zu groß), 415 (keine XML-Datei), 422 (Lauf des Validators fehlgeschlagen), 429 (Tagesgrenze). Der Server nimmt nur XML an; die Annahme von PDF geschieht im Browser.

11 · Fassungen

FassungÄnderungen
1.9.1Neu: Der Knopf „report.html herunterladen“ speichert den HTML-Bericht des KoSIT-Validators. Bericht und Hinweise sprechen vom „Ergebnis“ einer Prüfung.
1.9.0Die Tagesgrenze lässt sich je Rolle einstellen, mit einer eigenen Zeile für Gäste; 0 heißt kein Zugang. Der Knopf im eInvoice Viewer zeigt seine Texte in der Sprache der Seite.
1.8.2Neu: Unter dem Bericht zeigt der Knopf „Rechnung darstellen" die Rechnung in der offiziellen Darstellung der KoSIT, sobald deren Ordner in den Einstellungen eingetragen ist. Der Hinweis über den markierten Feldern sagt genau, was geprüft wird. Das Rechnungsbild markiert eine IBAN mit falschen Prüfziffern nicht mehr; der Prüfbericht ist davon nicht berührt. Die mitgelieferten Übersetzungen erscheinen auch bei netzwerkweiter Aktivierung und unter älteren WordPress-Fassungen.
1.8.1Texte ohne eigene Schriftangabe erscheinen in der Schrift des gewählten Design-Kits. Die Belegansicht markiert Felder, die eine Regel aus der Rechnung selbst verletzen.
1.8.0Die Regeln von ZUGFeRD / Factur-X EXTENDED und EXTENDED-CTC-FR werden nur noch mit dem Zusatz „Extended Profiles" erklärt. Behoben: Hinter einem Reverse Proxy zählt die Tagesgrenze die Adresse, die der Proxy angehängt hat.
1.7.0Mit dem Zusatz Extended Profiles zeigen Befunde zu Feldern einer Erweiterung (BT-X) ihren Wert aus dem Dokument.
1.6.0Das Design-Kit lässt sich in den Einstellungen wählen. Ein Befund zu einer Anlage nennt deren Namen.
1.5.0Der Prüfbericht erscheint in derselben Ansicht wie im Validation Explorer.

Ältere Einträge stehen im Änderungsverlauf des Plugins.

12 · Bilderliste

Diese Liste zeigt, welche Bildschirmfotos dieses Handbuch erwartet und welche im Ordner screenshots/ des Pakets gefunden wurden. Ein Bild heißt immer Kennung.Sprache.png, zum Beispiel vk-ablage.de.png. Fehlt die deutsche Fassung, zeigt das Handbuch die englische. Auf den Bildern sind nur Beispieldaten zu sehen.

StandDateiWas zu sehen ist
–vk-ablage.de.pngDie Ablagefläche auf einer Seite der Website, darunter der Hinweis auf die heute noch möglichen Prüfungen
–vk-einstellungen.de.pngDie Einstellungsseite mit der Wahl des Anschlusses und dem grünen Hinweis, dass validator.jar gefunden wurde
–vk-bericht-ok.de.pngEin Prüfbericht zu einer Rechnung ohne Befunde, darüber der Knopf zum Herunterladen des Berichts
–vk-bericht-befunde.de.pngEin Prüfbericht mit Befunden: Ergebnis, Liste der Befunde mit Erklärung und betroffenem Feld
–vk-systempruefung.de.pngDie Systemprüfung mit grünen und roten Zeilen für beide Anschlüsse, bei einer roten Zeile der nächste Schritt
–vk-jar-pruefsumme.de.pngDer Abschnitt validator.jar mit beiden Prüfsummen nebeneinander und der Zeile zur Übereinstimmung
–vk-pruefdienst.de.pngDer Abschnitt für den Prüfdienst mit Adresse und Schlüssel
–vk-viewer-knopf.de.pngEine Rechnung im eInvoice Viewer mit dem Knopf zum Prüfen mit dem KoSIT-Validator