VAMPIRE – E-Rechnungen prüfen in PHP und JavaScript
VAMPIRE ist ein Prüfprogramm für E-Rechnungen in den Formaten XRechnung, ZUGFeRD, Factur-X und Peppol BIS. Es prüft nach den offiziellen Prüfregeln und braucht dafür, anders als der KoSIT-Validator, kein Java. Die Rechnung bleibt bei Ihnen: VAMPIRE PHP prüft auf Ihrem Webserver, VAMPIRE JS auf einem Server mit Node.js oder direkt im Browser, und keine Rechnung wird an einen fremden Dienst geschickt. Wie verlässlich VAMPIRE prüft, haben wir am offiziellen KoSIT-Validator gemessen, und die Zahlen stehen auf dieser Seite. VAMPIRE PHP ist frei, VAMPIRE JS erwerben Sie im Shop von invoicePress.de.
Nach unserer Kenntnis ist VAMPIRE PHP das einzige Werkzeug, das die offiziellen Prüfregeln für E-Rechnungen vollständig in reinem PHP ausführt. VAMPIRE JS bringt dieselben Regelpakete in reines JavaScript. Beide kommen ohne Java und ohne zusätzlichen Prozess aus, und die Rechnung verlässt Ihr System nicht.
Beleg: 220 von 220 Rechnungen, bei denen VAMPIRE und der offizielle KoSIT-Validator zum selben Ergebnis kamen, gemessen am 09.10.2026.
253 von 253
Rechnungen, für die VAMPIRE JS und VAMPIRE PHP genau denselben Prüfbericht geliefert haben
gemessen am 09.10.2026
220 von 220
Rechnungen, bei denen VAMPIRE und der offizielle KoSIT-Validator zum selben Ergebnis kamen
gemessen am 09.10.2026
350 von 350
Prüfungen von 50 ZUGFeRD-Rechnungen gegen je sieben Fassungen, bei denen VAMPIRE JS zum selben Ergebnis kam wie der offizielle KoSIT-Validator
gemessen am 09.10.2026
141 988
Zeilen des positiven Prüfberichts aus 144 Rechnungen, in VAMPIRE PHP und VAMPIRE JS ohne eine einzige Abweichung
gemessen am 09.10.2026
Mehr als „angenommen“ oder „abgelehnt“: drei Funktionen für Ihren Nachweis
Ein gewöhnlicher Prüfbericht sagt Ihnen nur, was an einer Rechnung falsch ist. VAMPIRE zeigt Ihnen auch, was geprüft wurde und was in Ordnung ist, und prüft eine ZUGFeRD-Rechnung auf Wunsch gegen jede Fassung des Formats. Alle drei Funktionen gehören zu beiden Ausführungen, VAMPIRE PHP und VAMPIRE JS, und kosten nichts extra.
Positiver Prüfbericht
Ein gewöhnlicher Prüfbericht nennt nur die verletzten Regeln. Der positive Prüfbericht von VAMPIRE nennt jede Regel der verwendeten Regelwerke mit ihrem Ergebnis: erfüllt, verletzt, nicht anwendbar oder nicht geprüft. Dazu stehen jedes Regelwerk mit seiner Fassung, der Zeitpunkt der Prüfung und die SHA-256-Prüfsumme der Datei im Bericht. VAMPIRE PHP und VAMPIRE JS liefern ihn gleichermaßen.
Was Sie davon haben: Sie belegen nicht nur, dass kein Fehler gefunden wurde, sondern was geprüft wurde. Das ist ein technischer Nachweis, kein Testat.
Liste der geprüften Regeln
Die Liste aller geprüften Regeln geben Sie als Datei für Programme aus (JSON). Im WordPress-Plugin eInvoice Validator for VAMPIRE kommt eine Druckfassung als HTML-Datei dazu, die Ihr Browser als PDF speichert. Im Beispiel unten sind es 806 Regeln des Regelwerks EN 16931 für CII: 626 erfüllt, 180 nicht anwendbar, keine verletzt.
Was Sie davon haben: Sie legen die Liste zur Rechnung ab oder geben sie an Ihre Software, Ihren Lieferanten oder Ihren Prüfer weiter.
Mehrfachprüfung über alle Fassungen
Eine ZUGFeRD- oder Factur-X-Rechnung sagt nicht, nach welcher Fassung sie erstellt wurde. VAMPIRE prüft sie deshalb auf Wunsch gegen jede Fassung: als Kaskade von der neuesten Fassung abwärts, bis eine die Rechnung annimmt, oder als vollständige Matrix mit einer Zeile je Fassung. Die Fassungen sind bei VAMPIRE nur Daten; Sie richten dafür nichts ein.
Was Sie davon haben: Bei unserer Messung an 50 ZUGFeRD-Rechnungen wurden 17 nach den Regeln einiger Fassungen angenommen und nach anderen abgelehnt. Sie sehen sofort, welche Fassung die Rechnung annimmt.
Positiver Prüfbericht mit der Liste der geprüften Regeln.
Mehrfachprüfung: das Ergebnis je ZUGFeRD-Fassung.
Zwei Ausführungen, derselbe Prüfbericht
VAMPIRE gibt es in zwei Ausführungen. Beide prüfen nach denselben Regeln und liefern für dieselbe Rechnung denselben Prüfbericht. Sie entscheiden also nur, in welcher Umgebung Sie prüfen möchten.
VAMPIRE PHP läuft in jedem PHP-Prozess ab PHP 8.2, auch auf gewöhnlichem Webhosting. Es braucht kein Java und ruft kein weiteres Programm auf. Damit prüfen Sie E-Rechnungen auch dort, wo Sie keinen eigenen Server mit Java betreiben können. VAMPIRE PHP ist freie Software unter der GPL-2.0-or-later, und der Quelltext liegt öffentlich auf GitHub und auf Packagist.
VAMPIRE JS läuft in Node ab Version 18 und im Browser. Es läuft sogar in einer HTML-Datei, die Sie auf Ihrem Rechner per Doppelklick öffnen, ganz ohne Webserver. So prüfen Sie eine Rechnung dort, wo sie gerade geöffnet ist, ohne sie irgendwo hochzuladen. VAMPIRE JS ist ein Kaufprodukt, das Sie im Shop von invoicePress.de erwerben.
VAMPIRE PHP frei, läuft in PHP ab 8.2 ohne Java
VAMPIRE JS im Shop, läuft in Node und im Browser
Regelpakete frei, in beiden Ausführungen enthalten
Zwei Ausführungen, dieselben Regelpakete: VAMPIRE PHP ist frei, VAMPIRE JS erwerben Sie im Shop, und die Regelpakete stecken in beiden.
Beide Ausführungen lesen dieselben Regelpakete. Ein Regelpaket enthält die Prüfregeln eines Formats in einer Fassung, zum Beispiel die Regeln der XRechnung 3.0.2. Die Herausgeber der Formate veröffentlichen ihre Prüfregeln als Schematron-Dateien, also in einer Sprache, in der sich Prüfregeln für XML beschreiben lassen, und VAMPIRE übersetzt diese offiziellen Dateien maschinell in seine Regelpakete. Dass beide Ausführungen wirklich denselben Bericht liefern, haben wir an 253 Rechnungen nachgemessen. Wie wir das gemessen haben, steht im Abschnitt „Wie gemessen wurde“ am Ende dieser Seite.
Was VAMPIRE prüft
VAMPIRE prüft eine Rechnung in vier Schritten. Zuerst prüft es, ob die Datei gültiges XML ist. Dann prüft es, ob der Aufbau der Datei dem Schema des Formats entspricht, also ob jedes Element an der vorgesehenen Stelle steht. Danach prüft es die Syntaxregeln der EN 16931 für die XML-Form, also UBL oder CII. Zuletzt prüft es die Geschäftsregeln des passenden Regelwerks; das sind die inhaltlichen Regeln, die der Herausgeber für das Format festgelegt hat. Welches Regelwerk passt, liest VAMPIRE aus der Rechnung selbst ab. Am Ende steht das Ergebnis: Die Rechnung ist angenommen oder abgelehnt.
1 · XML Ist die Datei gültiges XML?
→
2 · Schema Stimmt der Aufbau?
→
3 · Geschäftsregeln des passenden Regelwerks
→
Ergebnis angenommen oder abgelehnt
So prüft VAMPIRE eine Rechnung: erst das XML, dann das Schema, dann die Geschäftsregeln, und am Ende steht das Ergebnis.
Diese Formate kennt VAMPIRE:
EN 16931 in UBL und in CII
XRechnung 3.0.2 in UBL und in CII
Peppol BIS Billing 3.0.21
ZUGFeRD und Factur-X in den Profilen MINIMUM, BASIC WL, BASIC, EN 16931 und EXTENDED
Die Seite Regelpakete zeigt jedes Regelwerk mit seiner Fassung, seiner Herkunft und seiner Lizenz. Alle Regelpakete sind in beiden Ausführungen von VAMPIRE enthalten und kosten nichts extra.
Den Prüfbericht gibt VAMPIRE auf Wunsch auch im Format des KoSIT-Validators aus. Werkzeuge, die diesen Bericht schon lesen, können damit auch den Bericht von VAMPIRE lesen.
Was der positive Prüfbericht zeigt
Ein gewöhnlicher Prüfbericht nennt nur die Regeln, die eine Rechnung verletzt. Der positive Prüfbericht geht weiter: Er führt jede Regel der verwendeten Regelwerke mit ihrem Ergebnis auf. Dieses Ergebnis lautet „erfüllt“, „verletzt“, „nicht anwendbar“ oder „nicht geprüft“. Dazu nennt der Bericht jedes Regelwerk mit seiner Fassung, den Zeitpunkt der Prüfung und die SHA-256-Prüfsumme der geprüften Datei, also einen digitalen Fingerabdruck, an dem sich die Datei später wiedererkennen lässt. Konnte VAMPIRE eine Regel nicht ausführen, steht sie mit dem Grund als „nicht geprüft“ im Bericht, und sie wird nie als erfüllt gezählt.
Damit haben Sie einen technischen Nachweis in der Hand. Er belegt, dass eine bestimmte Rechnung gegen ein bestimmtes Regelwerk in einer bestimmten Fassung geprüft wurde. Ein Testat oder eine rechtliche Bestätigung ist er nicht.
Wir haben am 9. Oktober 2026 fünf angenommene Rechnungen aus unserem eigenen Prüfkorpus mit dem KoSIT-Validator 1.6.3 und mit Mustang 2.25.0 geprüft und uns die Berichte angesehen. Bei einer angenommenen Rechnung führt keines der beiden Werkzeuge die geprüften Regeln einzeln mit ihrem Ergebnis auf; beide nennen nur die Regeln, die ausgelöst haben. Ob eine andere Konfiguration oder ein anderes Werkzeug derselben Hersteller das kann, haben wir nicht gemessen.
Warum VAMPIRE mehrere Fassungen prüft
Von ZUGFeRD und Factur-X gibt es mehrere Fassungen der Spezifikation. Eine Rechnung nennt zwar ihr Profil, zum Beispiel EN 16931 oder EXTENDED, aber nicht die Fassung, nach der sie erstellt wurde. Das ist mehr als eine Formsache: Bei unserer Messung an 50 ZUGFeRD-Rechnungen wurden 17 nach den Regeln einiger Fassungen angenommen und nach den Regeln anderer abgelehnt.
VAMPIRE geht deshalb Schritt für Schritt vor. Es prüft die Rechnung zuerst nach den Regeln der neuesten Fassung. Wird sie danach angenommen, ist die Prüfung fertig. Wird sie abgelehnt, prüft VAMPIRE nach den Regeln der nächstälteren Fassung, und so weiter. Gewählt wird also die neueste Fassung, nach deren Regeln die Rechnung angenommen wird, und das Ergebnis nennt diese Fassung. Nimmt keine Fassung die Rechnung an, zeigt VAMPIRE den Bericht der neuesten Fassung, denn die Rechnung ist dann in jeder Fassung fehlerhaft, und die neueste ist die maßgebliche. So sehen Sie immer, wogegen geprüft wurde, und können selbst entscheiden, ob diese Fassung für Ihren Zweck passt. Bei einer XRechnung ist das anders: Dort nennt der Bericht die Fassung, die am Rechnungsdatum galt.
So wählt VAMPIRE die Fassung: von der neuesten abwärts, bis die Rechnung nach den Regeln einer Fassung angenommen wird.
Wenn Sie es genau wissen wollen, prüft VAMPIRE auf Wunsch jede Fassung einzeln. Das Ergebnis ist dann eine Tabelle mit einer Zeile je Fassung, und Sie sehen auf einen Blick, nach welchen Fassungen die Rechnung angenommen und nach welchen sie abgelehnt wird. Im Spielfeld wird diese Prüfung demnächst direkt in Ihrem Browser laufen.
So kommen Sie zu VAMPIRE
VAMPIRE PHP ist frei. Sie installieren es mit einem einzigen Befehl, composer require invoicepress/vampire-php, von Packagist. Den Quelltext finden Sie auf GitHub. Die Schritte stehen in der Composer-Anleitung, alles Weitere in der Dokumentation für PHP.
VAMPIRE JS erwerben Sie im Shop von invoicePress.de. Wie Sie das Paket in Ihr Projekt holen, steht in der npm-Anleitung, alles Weitere in der Dokumentation für JavaScript.
In WordPress bringt das freie Plugin eInvoice Validator for VAMPIRE die Prüfung mit VAMPIRE PHP auf Ihre Website. Das Plugin ist auf invoicePress.de beschrieben.
Am schnellsten starten Sie mit VAMPIRE PHP: Es ist kostenlos, ohne Anmeldung, und ein Befehl genügt.
220 von 220 Rechnungen, bei denen VAMPIRE und der offizielle KoSIT-Validator zum selben Ergebnis kamen (gemessen am 09.10.2026): Wir haben 253 Testrechnungen mit VAMPIRE und mit dem offiziellen KoSIT-Validator geprüft. 220 davon konnten beide einem Regelwerk zuordnen, und bei allen 220 kamen beide zum selben Ergebnis, also angenommen oder abgelehnt. Bei 215 dieser 220 Rechnungen lösten sogar genau dieselben Regeln aus; bei den übrigen fünf liegt der Unterschied an der Fassung der EN-16931-Regeln für CII, denn der KoSIT-Validator bringt die Fassung 1.3.15 mit und VAMPIRE die Fassung 1.3.16. Die restlichen 33 Rechnungen konnte keines der beiden Prüfprogramme einem Regelwerk zuordnen. Stand der Messung: 9. Oktober 2026.
253 von 253 Rechnungen, für die VAMPIRE JS und VAMPIRE PHP genau denselben Prüfbericht geliefert haben (gemessen am 09.10.2026): Wir haben 253 Rechnungen mit VAMPIRE JS und mit VAMPIRE PHP geprüft und die beiden Berichte jeder Rechnung miteinander verglichen. Verglichen wurden das erkannte Regelwerk, das Ergebnis (angenommen oder abgelehnt), die Ergebnisse der vier Prüfschritte (Wohlgeformtheit, Schema, Syntaxregeln, Geschäftsregeln), alle 184 Befunde mit Text und Fundstelle sowie der Bericht im Format des KoSIT-Validators Byte für Byte. Bei allen 253 Rechnungen war der Bericht gleich. Die Rechnungen stammen zu 144 aus unserem eigenen Prüfkorpus und zu 109 aus der Testsuite der XRechnung 3.0.2.
350 von 350 Prüfungen von 50 ZUGFeRD-Rechnungen gegen je sieben Fassungen, bei denen VAMPIRE JS zum selben Ergebnis kam wie der offizielle KoSIT-Validator (gemessen am 09.10.2026): Wir haben 50 ZUGFeRD-Rechnungen gegen sieben Fassungen der Spezifikation geprüft, von 2.1 bis 2.5.2. Das ergibt 350 Einzelergebnisse, und jedes davon fiel gleich aus wie beim offiziellen KoSIT-Validator mit der Konfiguration der jeweiligen Fassung, in Node ebenso wie im Browser. 17 der 50 Rechnungen werden nach den Regeln einiger Fassungen angenommen und nach den Regeln anderer abgelehnt; genau deshalb lohnt sich die Prüfung gegen mehrere Fassungen. Gemessen wurde am 9. Oktober 2026 gegen die Referenzmatrix des KoSIT-Validators vom 24. September 2026.
141 988 Zeilen des positiven Prüfberichts aus 144 Rechnungen, in VAMPIRE PHP und VAMPIRE JS ohne eine einzige Abweichung (gemessen am 09.10.2026): Wir haben 144 Rechnungen mit eingeschaltetem positivem Prüfbericht in VAMPIRE PHP und in VAMPIRE JS geprüft. Der positive Prüfbericht enthält eine Zeile je geprüfter Regel, zusammen 141 988 Zeilen. Alle 141 988 Zeilen stimmten überein, jede mit Regelwerk, Ergebnis, Schwere, Zahl der geprüften Stellen und Text.
5 Rechnungen ohne Fehler, deren Prüfberichte aus dem KoSIT-Validator und aus Mustang wir uns angesehen haben (gemessen am 09.10.2026): Wir haben am 9. Oktober 2026 fünf angenommene Rechnungen aus unserem eigenen Prüfkorpus mit dem KoSIT-Validator 1.6.3 und mit Mustang 2.25.0 geprüft und uns die Berichte angesehen. Bei einer angenommenen Rechnung führt keines der beiden Werkzeuge die geprüften Regeln einzeln mit ihrem Ergebnis auf; beide nennen nur die Regeln, die ausgelöst haben. Ob eine andere Konfiguration oder ein anderes Werkzeug derselben Hersteller das kann, haben wir nicht gemessen.
VAMPIRE PHP frei, VAMPIRE JS im Shop.
VAMPIRE PHP und alle Regelpakete sind frei und liegen auf GitHub und Packagist. VAMPIRE JS erwerben Sie im Shop von invoicePress.de.