Zum Inhalt springen

BR-DE-19: Ungültige IBAN für die SEPA-Überweisung (BT-84)

Die Rechnung nennt als Zahlungsart 58 (SEPA-Überweisung), aber die Kontokennung in BT-84 ist keine gültige IBAN. Meist stimmt die Prüfziffer nicht oder im Feld steht eine Kontonummer.

Stand:

BR-DE-19· XRechnung-Schematron 2.6.0 (XRechnung 3.0.2, Validator-Konfiguration XRechnung 2026-08-31)
[BR-DE-19] "Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.

Betroffen:BT-81BT-84BG-17

Was die Regel prüft

Die Regel läuft für jede Zahlungsanweisung mit Code 58 in BT-81 („Code für das Zahlungsmittel“) einzeln: in UBL jedes cac:PaymentMeans mit cbc:PaymentMeansCode 58, in CII jedes ram:SpecifiedTradeSettlementPaymentMeans mit ram:TypeCode 58. Gelesen wird BT-84 („IBAN“): UBL cac:PayeeFinancialAccount/cbc:ID, CII ram:PayeePartyCreditorFinancialAccount/ram:IBANID.

  1. Alle Leerzeichen werden entfernt. DE79 0000 0000 1234 5678 90 und DE79000000001234567890 sind deshalb gleichwertig.
  2. Der Rest muss dem Muster ^[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{0,30}$ entsprechen: zwei Großbuchstaben als Ländercode, zwei Ziffern als Prüfziffer, danach bis zu 30 Buchstaben oder Ziffern.
  3. Die Prüfziffer wird nach dem Modulo-97-Verfahren nachgerechnet: Die ersten vier Zeichen wandern ans Ende, Buchstaben werden zu Zahlen (A = 10 bis Z = 35), und die so entstandene Zahl muss bei Division durch 97 den Rest 1 lassen.

BR-DE-19 hat die Stufe „warning“. Der Prüfbericht der KoSIT-Konfiguration empfiehlt bei reinen Warnungen weiterhin „accept“. Eine falsche IBAN bleibt trotzdem ein praktisches Problem, denn der Kunde überweist auf dieses Konto.

Code 30 (Überweisung außerhalb SEPA) ist bewusst ausgenommen, dort darf BT-84 laut Spezifikation auch eine Kontonummer sein. Ob überhaupt eine Bankverbindung angegeben ist, prüft nicht diese Regel, sondern BR-DE-23.

Typische Ursachen

  • Tippfehler oder Zahlendreher beim Anlegen der Bankverbindung in den Firmenstammdaten. Viele Programme prüfen die IBAN bei der Eingabe nicht.
  • Im Feld steht noch die alte Kontonummer oder eine Kombination aus Kontonummer und Bankleitzahl, die Zahlungsart ist aber 58.
  • Ländercode klein geschrieben (de79…); das Muster verlangt Großbuchstaben.
  • Zusätzliche Zeichen wie Bindestriche, Punkte oder ein vorangestelltes IBAN:. Vor der Prüfung werden nur Leerzeichen entfernt.
  • Platzhalter aus einer Vorlage, etwa DE00000000000000000000, die beim Einrichten nicht ersetzt wurden.
  • CII: Die IBAN steht in ram:ProprietaryID statt in ram:IBANID. Die Regel liest nur ram:IBANID und bewertet ein leeres Feld als ungültige IBAN.
  • Ein Konto außerhalb des SEPA-Raums mit Code 58. Für solche Konten ist Code 30 vorgesehen.

Beispiel aus der KoSIT-Testsuite

Testdatei 01.08a enthält drei Zahlungsanweisungen mit Code 58. BR-DE-19 prüft jede davon für sich, eine einzelne falsche IBAN erzeugt also genau eine Warnung mit Verweis auf ihren Block. Laut Kommentar in der Datei sind die IBANs nicht existierende, aber rechnerisch gültige Testwerte.

UBL: drei SEPA-Überweisungskonten
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
    <cbc:ID>DE79000000001234567890</cbc:ID>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
    <cbc:ID>DE16000000002345678901</cbc:ID>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
    <cbc:ID>DE03000000003456789012</cbc:ID>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/01.08a-INVOICE_ubl.xml (Apache 2.0)

CII: erstes Konto, IBAN in ram:IBANID
<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:TypeCode>58</ram:TypeCode>
  <ram:PayeePartyCreditorFinancialAccount>
    <!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
    <ram:IBANID>DE79000000001234567890</ram:IBANID>
  </ram:PayeePartyCreditorFinancialAccount>
</ram:SpecifiedTradeSettlementPaymentMeans>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/01.08a-INVOICE_uncefact.xml (Apache 2.0)

Nachgerechnet für DE79000000001234567890: DE79 wandert ans Ende, D wird zu 13 und E zu 14. Es entsteht die Zahl 000000001234567890131479. Geteilt durch 97 bleibt der Rest 1, die Prüfziffer 79 passt. Ändert man nur die letzte Ziffer auf …891, bleibt der Rest 28, und BR-DE-19 meldet sich.

Lösung

In der Rechnungssoftware

  1. Vergleichen Sie die IBAN in den Firmenstammdaten Zeichen für Zeichen mit dem Kontoauszug oder der Bestätigung Ihrer Bank.
  2. Tragen Sie die IBAN ohne Präfix und ohne Bindestriche ein. Leerzeichen in Vierergruppen sind unschädlich.
  3. Liegt das Konto außerhalb des SEPA-Raums, stellen Sie die Zahlungsart auf Überweisung außerhalb SEPA (Code 30) um und geben Sie die BIC (BT-86) an.

Im XML

  1. UBL: IBAN in cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID. CII: IBAN in ram:PayeePartyCreditorFinancialAccount/ram:IBANID, nicht in ram:ProprietaryID.
  2. Bauen Sie dieselbe Modulo-97-Prüfung in die Eingabemaske oder den Export ein, damit eine falsche IBAN gar nicht erst in die Rechnung gelangt.
  3. Prüfen Sie die korrigierte Rechnung mit XRechnung prüfen; bei mehreren Konten muss die Warnung für jeden PaymentMeans-Block verschwunden sein.

XRechnung prüfen

Quellen

  1. XRechnung-Schematron 2.6.0 (Release v2.6.0, kompatibel mit XRechnung 3.0)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026
  2. Validator-Konfiguration XRechnung 2026-08-31 (Release v2026-08-31)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026
  3. Spezifikation XRechnung 3.0.2 (CIUS und Extension), Abschnitt 11.6 „Gruppe CREDIT TRANSFER“ und Abschnitt 12.6KoSIT (xeinkauf.de), 20. Juni 2024 · geprüft am 7. November 2026
  4. XRechnung-Testsuite 2026-08-31 (Release v2026-08-31)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026

Weiterlesen

Grundlage: EN 16931 und XRechnung-Schematron 2.6.0 (XRechnung 3.0.2, Validator-Konfiguration XRechnung 2026-08-31). Stand .