Konto
Deutsch

DE-R-020: The element "Debited account identifier" should contain a valid IBAN if code 59 SEPA…

Nationale Peppol-Regel · Warnung · UBL

StandardLänderregeln Peppol BIS Billing 3.0 (NL, DE, IT, SE, DK, NO, GR, IS)LandDeutschlandSchweregradWarnung: die Rechnung wird angenommen, sollte aber korrigiert werdenSyntaxUBLGeschäftsbegriffe
  • BT-81 Payment means type code
  • BT-91 Debited account identifier
Gilt fürNur wenn der Verkäufer (bei manchen Regeln der Käufer) im genannten Land sitzt; Auslöser ist der Ländercode der Partei. Die deutschen Regeln bilden die XRechnung-Anforderungen innerhalb von Peppol ab.

Offizieller Regeltext

[DE-R-020] The element "Debited account identifier" (BT-91) should contain a valid IBAN if code 59 SEPA is provided in "Payment means type code" (BT-81).

Der normative Text ist Englisch und wird unverändert zitiert.

Warum dieser Fehler auftritt

Der Wert ist vorhanden, entspricht aber nicht dem geforderten Muster: falsches Datumsformat, eine IBAN mit falscher Prüfziffer, eine E-Mail-Adresse ohne gültige Struktur, eine URL ohne Schema oder ein Text mit unzulässigen Zeichen.

So beheben Sie den Fehler

Korrigieren Sie den Wert gemäß dem in der Regel genannten Format: Datum als JJJJ-MM-TT in UBL bzw. JJJJMMTT mit format="102" in CII, IBAN ohne Leerzeichen und mit gültiger Prüfsumme, E-Mail-Adresse mit genau einem @, URL beginnend mit http:// oder https://.

Was der Validator prüft

Geprüftes Element (Kontext):

UBL

(/ubl-invoice:Invoice/cac:PaymentMeans[cbc:PaymentMeansCode = 59] | /ubl-creditnote:CreditNote/cac:PaymentMeans[cbc:PaymentMeansCode = 59])[$supplierCountryIsDE and $customerCountryIsDE]

Test (XPath):

not(cbc:PaymentMeansCode = '59') or                     matches(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')), '^[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{0,30}$') and                     xs:decimal(string-join(for $cp in string-to-codepoints(concat(substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),5),upper-case(substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),1,2)),substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),3,2))) return  (if($cp > 64) then string($cp - 55) else  string($cp - 48)),'')) mod 97 = 1

Rechnung prüfen

Legen Sie Ihre XML- oder PDF-Datei im Validator ab; jede verletzte Regel ist mit ihrer Seite hier verlinkt. Kostenlos, ohne Konto, die Datei wird nicht gespeichert.

Rechnung prüfen →

Dieselbe Prüfung per API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Verwandte Regeln

Häufige Fragen

Was bedeutet DE-R-020?

DE-R-020 ist eine Nationale Peppol-Regel: The element "Debited account identifier" (BT-91) should contain a valid IBAN if code 59 SEPA is provided in "Payment means type code" (BT-81).

Wird meine Rechnung wegen DE-R-020 abgelehnt?

Nein. DE-R-020 ist eine Warnung: Die Rechnung wird angenommen, der Empfänger sieht aber den Hinweis. Beheben Sie ihn trotzdem, Warnungen werden in späteren Versionen oft zu Fehlern.

Für welche Formate gilt DE-R-020?

Nur wenn der Verkäufer (bei manchen Regeln der Käufer) im genannten Land sitzt; Auslöser ist der Ländercode der Partei. Die deutschen Regeln bilden die XRechnung-Anforderungen innerhalb von Peppol ab. Syntax: UBL.

Quelle: Peppol BIS Billing 3.0.20 national rules (November 2025). Katalog erzeugt aus den offiziellen Regelwerken am 2026-10-15.