FAQ zum E-Rechungs-Validator
Warum sind meine E-Rechnungen nicht valide?
Wir erhalten relativ oft Fragen, warum bestimmte Rechnungen als nicht valide erkannt werden. Z.B. eine potentielle ZUGFeRD-Rechnung wird als invalide erkannt, aber das einzeln geprüfte XML wird als valide erkannt. Das liegt an den Vorgaben für die Formate XRechnung und ZUGFeRD. Daher fassen wir hier die häufigsten Fragen zusammen
XRechnung vs.ZUGFeRD – welches XML ist erlaubt
Rechnungsstandard | CII-Format erlaubt? | UBL-Format erlaubt? | Bemerkungen |
---|---|---|---|
ZUGFeRD | ✅ Ja | ❌ Nein | ZUGFeRD verwendet ausschließlich das CII-Format für die XML-Daten. |
XRechnung | ✅ Ja | ✅ Ja | XRechnung kann sowohl im CII-Format als auch im UBL-Format vorliegen. |
Warum erhalte ich das Ergebnis invalide, obwohl meine XML-Datei scheinbar korrekt ist?
Sowohl XRechnung als auch ZUGFeRD verlangen, dass die XML-Dateien in der UTF-8-Kodierung vorliegen.
✅ Kodierung: UTF-8
✅ Ohne BOM (Byte Order Mark)
⛔ Fehlerquellen:
- Die Datei darf keinen BOM (Byte Order Mark) enthalten, da dies zu Validierungsfehlern führen kann.
- Andere Zeichencodierungen wie ISO-8859-1 oder UTF-16 sind nicht erlaubt.
Sowohl XRechnung als auch ZUGFeRD erwarten, dass die XML-Dateien mit dem Unix-Zeilenende gespeichert werden:
✅ Erlaubt:
- LF (
\n
) → Unix/Linux-kompatible Zeilenumbrüche
⛔ Nicht empfohlen / problematisch:
- CRLF (
\r\n
) → Windows-typische Zeilenumbrüche können Probleme verursachen - CR (
\r
) → Mac OS (ältere Versionen) ist nicht kompatibel
Hier ist eine Liste häufiger Fehler, die bei der Erstellung und Validierung von E-Rechnungen (XRechnung & ZUGFeRD) auftreten können.
1. Fehler in der XML-Struktur
❌ Falsche oder fehlende Root-Elemente
- XRechnung: Das Wurzelelement muss
<rsm:CrossIndustryInvoice>
sein. - ZUGFeRD: Das XML muss ebenfalls das
<rsm:CrossIndustryInvoice>
-Element enthalten. - ❗ Fehler: Verwendung von
<Invoice>
(UBL) in einer XRechnung (nur CII ist erlaubt!).
❌ Fehlendes oder falsches Encoding
- Erlaubt:
<?xml version="1.0" encoding="UTF-8"?>
- ❗ Fehler: Andere Encodings wie
ISO-8859-1
oder UTF-8 mit BOM (Byte Order Mark).
❌ Falsche oder inkonsistente XML-Namensräume
- Erlaubt (CII-XRechnung):
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
- ❗ Fehler: Ungültige oder fehlende Namensräume, die dazu führen, dass der Validator das XML nicht versteht.
❌ Fehlende oder doppelte <ram:ID>
im Kontextbereich
- Erlaubt:
<ram:GuidelineSpecifiedDocumentContextParameter> <ram:ID>urn:cen.eu:en16931:2017</ram:ID> </ram:GuidelineSpecifiedDocumentContextParameter>
- ❗ Fehler:
urn:cen.eu:en16931:2017
fehlt oder falsch geschrieben.
2. Fehlerhafte Pflichtfelder
❌ Fehlende Rechnungsnummer
- Pflichtfeld:
<ram:ID>
innerhalb von<rsm:ExchangedDocument>
❌ Fehlendes Rechnungsdatum oder falsches Format
- Erlaubt:
<ram:IssueDateTime> <udt:DateTimeString format="102">20250129</udt:DateTimeString> </ram:IssueDateTime>
- ❗ Fehler: Datumsformat nicht als
YYYYMMDD
(Format102
).
❌ Fehlende oder falsche Währungsangabe
- Pflichtfeld:
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
- ❗ Fehler: Keine oder falsche Währung (
EURO
stattEUR
).
❌ Fehlende Beträge oder falsches Dezimaltrennzeichen
- Erlaubt:
1000.50
(Punkt als Dezimaltrennzeichen) - ❗ Fehler:
1.000,50
(falsch, da kein Tausenderpunkt erlaubt ist!)
3. Fehler bei der Steuerangabe
❌ Fehlender oder falscher Steuersatz
- Erlaubt:
<ram:ApplicableTradeTax> <ram:TypeCode>VAT</ram:TypeCode> <ram:CategoryCode>S</ram:CategoryCode> <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent> </ram:ApplicableTradeTax>
- ❗ Fehler: Falsche oder fehlende
<ram:RateApplicablePercent>
-Angabe.
❌ Netto-/Bruttowerte stimmen nicht überein
- Der Gesamtbetrag muss mit den Einzelposten übereinstimmen.
❌ Falsche Steuerkategorie (CategoryCode
)
- Erlaubt:
S
→ Standardsteuersatz (19 % in Deutschland)K
→ Ermäßigter Steuersatz (7 % in Deutschland)AE
→ Steuerbefreit
- ❗ Fehler:
Z
für Steuerbefreiung ist falsch (stattAE
).
4. Fehler in der Rechnungsposition (Zeilen)
❌ Fehlende Produktbeschreibung (<ram:Description>
)
- Jede Position benötigt eine Beschreibung.
❌ Menge oder Einheit fehlen oder sind falsch
- Erlaubt:
<ram:BilledQuantity unitCode="C62">5</ram:BilledQuantity>
- ❗ Fehler: Fehlende oder falsche Einheit (
unitCode="KG"
statt"C62"
für Stück).
❌ Fehlende Preisangaben (<ram:NetPriceAmount>
oder <ram:ChargeAmount>
)
- Jeder Posten braucht einen Nettopreis.
5. Fehler bei der Empfänger-/Lieferantenadress
❌ Fehlender Rechnungsempfänger (<ram:BuyerTradeParty>
)
- Pflichtangaben:
<ram:Name>
(Firmenname)<ram:PostalTradeAddress>
(Adresse)
❌ Fehlende Steuer- oder USt-IdNr. des Lieferanten
- Erlaubt:
<ram:SpecifiedTaxRegistration> <ram:ID schemeID="FC">DE123456789</ram:ID> </ram:SpecifiedTaxRegistration>
- ❗ Fehler: Steuer-ID fehlt oder falsches
schemeID
.
6. Fehler bei der Einbettung in PDF (ZUGFeRD)
❌ Fehlende oder falsche Einbettung der XML-Datei
- ZUGFeRD benötigt eine PDF/A-3-Datei mit einer eingebetteten XML-Datei.
❌ Falscher MIME-Type für XML-Anhang
- Erlaubt:
"application/xml"
- ❗ Fehler:
"text/xml"
oder andere MIME-Typen.
❌ XML-Datei hat einen falschen Namen
- Erlaubt:
ZUGFeRD-invoice.xml
oderfactur-x.xml
7. Fehler bei der Signatur / Validierung
❌ Die Datei entspricht nicht den XRechnung- oder ZUGFeRD-Regeln
- Nutze einen Validator 😊
❌ XML ist nicht wohlgeformt
Bitte schreiben Sie hier gerne Ihre Meinung, Ihre Fragen oder Anregungen. Wir freuen uns über Ihr Feedback.