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

Source: https://veriport.io/guides/xrechnung-pruefen-validieren (published 2026-10-28)

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](/tools/xrechnung-pruefen) 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.

- Drei Ebenen, nacheinander: das Schema (ist die Datei wohlgeformtes UBL oder CII?), die EN-16931-Regeln (Summen, Steuerkategorien, Codelisten: BR-*, BR-CO-*, BR-S-*, BR-CL-*), die XRechnung-Regeln (Käuferreferenz, Ansprechpartner, Zahlungsangaben, elektronische Adressen: BR-DE-*). Ein Fehler auf einer Ebene macht die Rechnung ungültig; Warnungen nicht.
- Jede Meldung trägt eine Regel-ID, einen Schweregrad (fatal oder warning), einen XPath auf die Stelle und den Regeltext, wie die KoSIT ihn veröffentlicht. Dieselbe Datei liefert beim KoSIT-Validator und hier dieselben Regel-IDs (Nachweis auf der Produktseite).
- Eine ZUGFeRD-/Factur-X-PDF wird an der eingebetteten XML geprüft; die PDF/A-3-Konformität der Hülle ist ein eigener Schritt (veraPDF).
- Seit dem 1. Januar 2025 müssen inländische Unternehmen E-Rechnungen empfangen können; ausstellen müssen sie ab 2027 (über 800.000 € Vorjahresumsatz) und ab 2028 alle (§ 14 UStG). Keine Steuerberatung.

## 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

| Regel | Meldung | Ursache und Abhilfe |
|---|---|---|
| `BR-DE-15` | Käuferreferenz (BT-10) fehlt | Zwischen Unternehmen eine Bestellnummer oder Kostenstelle eintragen; an Behörden die Leitweg-ID. |
| `PEPPOL-EN16931-R010` | Elektronische Adresse des Käufers (BT-49) fehlt | Die 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-7` | Ansprechpartner des Verkäufers unvollständig | Name, Telefon und E-Mail des Verkäuferkontakts (BG-6) angeben; alle drei sind Pflicht. |
| `BR-CO-15` | Fälliger Betrag stimmt nicht mit den Summen überein | Summen 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-17` | Steuerbetrag je Kategorie weicht ab | Steuer je Satz aus der Bemessungsgrundlage berechnen; mehrere Sätze getrennt aufschlüsseln. |
| `BR-CL-23` | Mengeneinheit nicht in UN/ECE Rec. 20 | Codes wie `C62` (Stück), `HUR` (Stunde), `KGM`; bei XRechnung eine Warnung, bei Peppol ein Fehler. |
| `BR-E-10` | Steuerbefreiung ohne Grund | Bei Kategorie E (z. B. Kleinunternehmer nach § 19 UStG) den Befreiungsgrund als Text oder VATEX-Code angeben. |
| `BR-DE-21` | Spezifikationskennung falsch | BT-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](https://github.com/itplr-kosit/validator) ist das offizielle Open-Source-Programm (Java) mit der XRechnung-Konfiguration; er ist die Referenz. Die kostenlose Seite [XRechnung prüfen](/tools/xrechnung-pruefen) 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.

```bash
curl -X POST "https://veriport.io/api/v1/einvoice/validate" \
  -H "Content-Type: application/xml" \
  --data-binary @invoice.xml
```

```json
{
  "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.

## Read next

- [XRechnung prüfen (Tool)](https://veriport.io/tools/xrechnung-pruefen)
- [XRechnung erstellen per API](https://veriport.io/guides/xrechnung-erstellen-api)
- [E-Rechnung API: XRechnung, ZUGFeRD und Peppol](https://veriport.io/guides/e-rechnung-api)
- [EN 16931 rules explained (Englisch)](https://veriport.io/guides/en-16931-business-rules-explained)
- [Die E-Rechnungs-API (Englisch)](https://veriport.io/einvoice-api)

## Sources

- XRechnung — the German CIUS of EN 16931 (standard, versions and bundles; version 3.0.2 in force) — https://xeinkauf.de/xrechnung/ (2026-10-28)
- KoSIT validator (the reference validator for XRechnung), release 1.6.3 — https://github.com/itplr-kosit/validator (2026-10-28)
- Validator configuration XRechnung v2026-08-31 (XRechnung 3.0.2, CEN schematron 1.3.16, xrechnung-schematron 2.6.0) — https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/tag/v2026-08-31 (2026-10-28)
- EN 16931 validation artefacts 1.3.16 (UBL and CII schematron, the business rules BR-*) — https://github.com/ConnectingEurope/eInvoicing-EN16931/releases/tag/validation-1.3.16 (2026-10-28)
- § 14 UStG (Ausstellung von Rechnungen): the e-invoice for domestic B2B supplies, receipt since 1 January 2025, issue from 1 January 2027 (turnover above €800,000) and 1 January 2028 — https://www.gesetze-im-internet.de/ustg_1980/__14.html (2026-10-28)
