ValidateFin
Zurück zum Blog
UBL9 Min. LesezeitVon Eliel Nicaise

Häufige UBL- und Peppol-BIS-3.0-Fehler und wie man sie behebt

Praktischer Leitfaden zu den häufigsten UBL-Validierungsfehlern und Peppol-BIS-3.0-Schiedsregeln, einschließlich BR-Fehlercodes und Korrekturen.

Warum UBL-Dateien die Peppol-Validierung nicht bestehen

UBL-Rechnungen (Universal Business Language), die über das Peppol-Netzwerk übermittelt werden, müssen drei Validierungsschichten bestehen: UBL-2.1-XSD-Schema, EN-16931-Geschäftsregeln (BR-Codes) und Peppol-BIS-3.0-CIUS-Regeln (PEPPOL-Codes).

Jede Schicht kann eine Rechnung ablehnen. Dieser Leitfaden behandelt die häufigsten Fehler, die Teams begegnen, wenn sie Live-Peppol-Rechnungen generieren oder einreichen.

Die Fehlercodes folgen einem strukturierten Muster: BR-XX für EN-16931-Geschäftsregeln, PEPPOL-XX für Peppol-spezifische Regeln und UBL-SR-XX für UBL-Syntaxregeln.

Häufige Fehler und Korrekturen

Die am häufigsten gemeldeten UBL/Peppol-Validierungsfehler:

BR-01: Rechnung muss eine Spezifikationskennung haben

Das Element <cbc:CustomizationID> fehlt oder ist leer. Für Peppol BIS 3.0 muss es genau enthalten: urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0

BR-02: Rechnung muss eine Rechnungsnummer haben

Das Element <cbc:ID> fehlt oder ist leer. Die Rechnungsnummer muss eindeutig sein und darf nicht aus nur Leerzeichen bestehen.

BR-04: Rechnungsdatum ist Pflichtfeld

<cbc:IssueDate> fehlt. Das Datum muss im Format YYYY-MM-DD angegeben werden, z.B. 2026-01-15. Das Format DD/MM/YYYY wird nicht akzeptiert.

Struktur- und Formatfehler

Peppol erzwingt strenge mathematische Regeln für Steuerberechnungen.

Fehlende Pflichtfelder bei Lieferanten/Käufern

Sowohl AccountingSupplierParty als auch AccountingCustomerParty müssen PartyName, PostalAddress (mit CountryIdentificationCode) und PartyTaxScheme (mit TaxSchemeID=VAT und CompanyID) enthalten.

Ungültige TaxScheme-ID

Das TaxScheme/ID-Element muss genau 'VAT' enthalten, nicht 'MwSt', 'TVA', 'IVA' oder andere lokale Schreibweisen.

Rechnungszeilen-Gesamtberechnung

LineExtensionAmount muss Quantity × Price.PriceAmount entsprechen (minus etwaige Rabatte). Die Gesamtsumme aller Zeilen muss mit TaxExclusiveAmount in LegalMonetaryTotal übereinstimmen.

MwSt. und Steuerfehler

Identifikationsprobleme bei Käufer und Verkäufer.

Ungültiger MwSt.-Kategoriencode

UBL/EN 16931 definiert spezifische Kategoriecodes: S (Standard), Z (Nullsatz), E (Befreit), AE (Verlagerung der Steuerschuld), K (Innergemeinschaftliche Lieferung EG), G (Export außerhalb EU), O (Nicht steuerbar), L (Kanarische Inseln), M (Ceuta/Melilla). Verwenden Sie keinen Code, der nicht dieser Liste entspricht.

Fehlende MwSt.-Aufschlüsselung

Das TaxTotal-Element muss mindestens ein TaxSubtotal für jede unterschiedliche angewendete MwSt.-Kategorie enthalten. Eine Rechnung mit gemischten MwSt.-Sätzen benötigt separate TaxSubtotal-Einträge für jeden.

Fehlende oder ungültige Käuferreferenz

BuyerReference (BT-10) ist in Peppol BIS 3.0 obligatorisch. Für das deutsche XRechnung muss dies die Leitweg-ID sein. Fehlende oder fehlerhafte Referenzen führen zur Ablehnung auf Käuferseite.

Validieren Sie Ihre UBL-Rechnungen kostenlos

ValidateFin führt eine vollständige dreistufige Validierung durch: XSD-Schema, EN-16931-Geschäftsregeln und Peppol-BIS-3.0-CIUS-Regeln. Fehler werden mit ihrem BR/PEPPOL-Code und der fehlerhaften XML-Pfad angezeigt.

UBL-Validator öffnen

Häufig gestellte Fragen

Was ist der Unterschied zwischen BR- und PEPPOL-Fehlercodes?

BR-Codes (z.B. BR-01, BR-CO-15) kommen aus der EN-16931-Norm und gelten für alle konforme E-Rechnungen in Europa. PEPPOL-Codes (z.B. PEPPOL-EN16931-R004) sind Peppol-BIS-3.0-spezifische Zusatzregeln, die nur für Peppol-Netzwerkübermittlungen gelten.

Kann ich eine UBL-Rechnung ohne Peppol-Netzwerk übermitteln?

Ja. UBL kann direkt über API, E-Mail, Portal oder andere Kanäle übermittelt werden. Peppol-BIS-3.0-Regeln gelten nur für das Peppol-Netzwerk. Für andere Kanäle müssen Sie möglicherweise nur EN-16931 und länderspezifische CIUS einhalten.

Wie runde ich MwSt.-Beträge korrekt in UBL?

EN 16931 erlaubt eine Rundungstoleranz von ±0,01 € pro Zeile. Für die Gesamtsumme müssen Sie alle Zeilenbeträge summieren und dann auf 2 Dezimalstellen runden. Vermeiden Sie die Verwendung von Gleitkomma-Arithmetik für Finanzberechnungen.

Ist CustomizationID für alle UBL-Rechnungen obligatorisch?

CustomizationID ist Pflichtfeld für Peppol BIS 3.0. Für andere CIUS (wie XRechnung oder nationale Peppol-Implementierungen) ist ein anderer Wert vorgeschrieben. Prüfen Sie immer den spezifischen CIUS Ihres Ziellandes.

Was ist eine Schematron-Regel?

Schematron ist eine XML-Validierungssprache zum Ausdrücken von Peppol-Geschäftsregeln. Anders als XSD (das die Struktur validiert) kann Schematron feldübergreifende Beziehungen validieren, wie "wenn die Steuerkategorie S ist, muss der Steuersatz > 0 sein".

Wie finde ich meinen Peppol-Endpunkt?

Ihr Peppol-Endpunkt ist bei Ihrem Access-Point-Anbieter registriert. Er verwendet eine Schema-ID (z.B. 0208 für die belgische Unternehmensnummer) und Ihren Bezeichner. Wenden Sie sich an Ihren AP-Anbieter.

Kann ValidateFin NLCIUS- oder XRechnung-Regeln prüfen?

ValidateFin validiert gegen Peppol BIS 3.0 und EN 16931-Kernregeln, die den Großteil der NLCIUS- und XRechnung-Anforderungen abdecken. Länderspezifische Erweiterungen erfordern möglicherweise zusätzliche Validierung.

Was ist BR-CO-10?

BR-CO-10 ist eine EN 16931-Regel, die verlangt, dass die Summe der Nettobeiträge der Rechnungszeilen dem steuerexklusiven Betrag entspricht. Es ist eine der am häufigsten fehlgeschlagenen Regeln aufgrund von Rundungsproblemen.

Folgen Gutschriften denselben Regeln?

Ja. Peppol BIS 3.0 wendet dieselben Geschäftsregeln auf Rechnungen und Gutschriften an. Der Hauptunterschied ist der Dokumenttypcode (380 für Rechnung, 381 für Gutschrift).

Wie oft ändern sich Peppol-Regeln?

Peppol veröffentlicht Regelaktualisierungen ungefähr zweimal pro Jahr (Frühjahrs- und Herbstveröffentlichungen). Jede Aktualisierung kann Regeln hinzufügen, ändern oder entfernen. ValidateFin bleibt mit der neuesten Version aktuell.