XRechnung prüfen und validieren: was geprüft wird, woran es scheitert

Eine XRechnung ist dann gültig, wenn sie das XML-Schema ihrer Syntax (UBL 2.1 oder CII D16B) einhält, keine der Geschäftsregeln der EN 16931 (CEN-Fassung 1.3.16) verletzt und keine der deutschen Zusatzregeln der XRechnung (BR-DE-*, Fassung 2.6.0 für XRechnung 3.0.2) bricht. Das prüft der KoSIT-Validator, das prüfen die Empfangsportale des Bundes und der Länder vor der Annahme, und das prüft die kostenlose Seite XRechnung prüfen mit denselben veröffentlichten Regeldateien, 4 Mal am Tag ohne Konto. Dieser Ratgeber sagt, was dabei geprüft wird, welche Meldungen am häufigsten kommen und wie man sie liest.

Was wird bei einer XRechnung geprüft?

Zuerst das Schema: eine Datei, die kein gültiges UBL-2.1-Invoice (oder CreditNote) oder keine gültige CII-D16B-CrossIndustryInvoice ist, kommt nicht weiter. Dann die Schematron-Regeln der EN 16931: Rechnungssummen (BR-CO-10 bis BR-CO-17), Steueraufschlüsselung je Kategorie (BR-S-*, BR-Z-*, BR-E-*, BR-AE-*, BR-IC-*), Pflichtfelder (BR-01 bis BR-65) und Codelisten (BR-CL-*: Währungen, Mengeneinheiten, Steuerkategorien, Länder). Zuletzt die XRechnung-Regeln: BR-DE-1 (Zahlungsanweisungen), BR-DE-2 bis BR-DE-7 (Ansprechpartner des Verkäufers mit Name, Telefon, E-Mail), BR-DE-15 (Käuferreferenz, bei Behörden die Leitweg-ID), BR-DE-17 (Rechnungstyp), BR-DE-21 (die Spezifikationskennung in BT-24) und weitere.

Die häufigsten Fehler, und was sie bedeuten

RegelMeldungUrsache und Abhilfe
BR-DE-15Käuferreferenz (BT-10) fehltZwischen Unternehmen eine Bestellnummer oder Kostenstelle eintragen; an Behörden die Leitweg-ID.
PEPPOL-EN16931-R010Elektronische Adresse des Käufers (BT-49) fehltDie Rechnungs-E-Mail des Käufers als Adresse mit Schema EM eintragen, bei Behörden die Leitweg-ID mit Schema 0204.
BR-DE-2 bis BR-DE-7Ansprechpartner des Verkäufers unvollständigName, Telefon und E-Mail des Verkäuferkontakts (BG-6) angeben; alle drei sind Pflicht.
BR-CO-15Fälliger Betrag stimmt nicht mit den Summen übereinSummen nie von Hand schreiben: Positionsnetto, Nachlässe, Zuschläge und Steuer müssen rechnerisch aufgehen (Rundung auf Cent je Position).
BR-S-08, BR-CO-17Steuerbetrag je Kategorie weicht abSteuer je Satz aus der Bemessungsgrundlage berechnen; mehrere Sätze getrennt aufschlüsseln.
BR-CL-23Mengeneinheit nicht in UN/ECE Rec. 20Codes wie C62 (Stück), HUR (Stunde), KGM; bei XRechnung eine Warnung, bei Peppol ein Fehler.
BR-E-10Steuerbefreiung ohne GrundBei Kategorie E (z. B. Kleinunternehmer nach § 19 UStG) den Befreiungsgrund als Text oder VATEX-Code angeben.
BR-DE-21Spezifikationskennung falschBT-24 muss urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 lauten.

Womit prüfen?

Drei Wege, dieselben Regeln. Der KoSIT-Validator ist das offizielle Open-Source-Programm (Java) mit der XRechnung-Konfiguration; er ist die Referenz. Die kostenlose Seite XRechnung prüfen führt dieselben Regeldateien im Browser-Aufruf aus, ohne Installation und ohne Konto, 4 Prüfungen am Tag; die Datei wird nicht gespeichert. Per API prüft POST https://veriport.io/api/v1/einvoice/validate jede Datei für 5 Aufrufe und liefert denselben Bericht als JSON, für den Rechnungseingang in der eigenen Software.

curl — validate a file (no key: 4 checks a day per address)
curl -X POST "https://veriport.io/api/v1/einvoice/validate" \
  -H "Content-Type: application/xml" \
  --data-binary @invoice.xml
200 OK — der Prüfbericht
{
  "valid": true,
  "profile": "xrechnung",
  "format": "xrechnung-ubl",
  "syntax": "ubl",
  "container": "xml",
  "attachment": null,
  "errors": [],
  "warnings": [],
  "checks": {
    "schema": {
      "status": "passed",
      "name": "UBL 2.1 (OASIS) and UN/CEFACT CII D16B XML schemas, from the KoSIT XRechnung validator configuration v2026-08-31"
    },
    "ruleSets": [
      {
        "id": "cen-ubl",
        "name": "CEN EN 16931 validation artefacts (UBL)",
        "release": "1.3.16",
        "sha256": "bafada015efbc5248bf5e05ad2191e1d9833ef96e9dd5f4bce420a747342da85",
        "fatal": 0,
        "warnings": 0
      },
      {
        "id": "xrechnung-ubl",
        "name": "XRechnung 3.0.2 schematron (UBL)",
        "release": "2.6.0",
        "sha256": "ca5e07afd04e72cd283d581590ffff3a15f4aac9d2f40c993345d78e67ea22b4",
        "fatal": 0,
        "warnings": 0
      }
    ],
    "pdfa": null,
    "veriport": 0
  },
  "ms": 84
}

Wie liest man den Bericht?

„Gültig“ heißt: kein fataler Fehler aus Schema oder Regeln; Warnungen dürfen bleiben, sollten aber angesehen werden. Jede Meldung nennt rule (die ID), severity, path (den XPath zur Stelle in der XML) und message (den veröffentlichten Regeltext: die BR-DE-Regeln auf Deutsch, die CEN-Regeln auf Englisch). Beheben Sie zuerst Schemafehler, dann die fatalen Regeln von oben nach unten; viele Folgefehler verschwinden mit dem ersten.

Questions

Ist „XRechnung prüfen“ dasselbe wie „validieren“?
Ja: Validieren ist der Fachbegriff für die Prüfung gegen Schema und Schematron-Regeln; „prüfen“ sagt dasselbe. Nicht gemeint ist die fachliche Prüfung des Rechnungsinhalts (stimmt der Preis?), die bleibt beim Empfänger.
Welche XRechnung-Version wird geprüft?
XRechnung 3.0.2 mit der KoSIT-Konfiguration v2026-08-31. Eine Datei anderer Version wird mit den EN-16931-Regeln geprüft; die XRechnung-4.0-Regeln folgen, sobald sie veröffentlicht sind.
Prüft die Seite auch ZUGFeRD-PDFs?
Ja: Sie liest die eingebettete factur-x.xml und prüft sie gegen EN 16931 (und XRechnung, wenn die Datei sich als XRechnung ausweist). Die PDF/A-3-Konformität der PDF prüft sie nicht.
Wird die Rechnung gespeichert?
Nein. Die Datei wird im Speicher geprüft und verworfen; gezählt wird nur der Aufruf.

4 Prüfungen am Tag ohne Konto, dieselben Regeln wie der KoSIT-Validator.

XRechnung kostenlos prüfen

Sources