BR-DE-17 IBAN muss ein gültiges Format haben
Was diese Regel prüft
BR-DE-17 prüft, ob der in BT-84 (Payment account identifier) angegebene Wert dem Format einer gültigen IBAN (International Bank Account Number) entspricht. Die Regel validiert die Struktur der IBAN: Ländercode (2 Buchstaben), Prüfziffer (2 Ziffern) und BBAN (Basic Bank Account Number, länderspezifische Länge).
In der UBL-Repräsentation befindet sich dieser Wert im Element <cbc:ID> innerhalb von <cac:PaymentMeans><cac:PayeeFinancialAccount>.
Warum diese Regel existiert
Für die automatisierte Zahlungsverarbeitung im deutschen E-Rechnungs-Ökosystem ist eine korrekt formatierte IBAN unerlässlich. Ungültige IBANs führen zu:
- Fehlgeschlagenen Zahlungen: Die Bank lehnt die Überweisung ab
- Manueller Nachbearbeitung: Ein Sachbearbeiter muss die korrekte Bankverbindung ermitteln
- Zahlungsverzögerungen: Der Rechnungssteller erhält sein Geld später
Die IBAN ist der internationale Standard für Kontoidentifikation (ISO 13616) und im SEPA-Raum das primäre Merkmal zur Identifikation eines Bankkontos.
Was einen Fehler auslöst
Die Validierung schlägt fehl, wenn der Wert in <cbc:ID> (innerhalb von PayeeFinancialAccount) keine gültige IBAN-Struktur aufweist:
- Zu kurz oder zu lang für das jeweilige Land (deutsche IBAN: 22 Zeichen)
- Fehlender oder ungültiger Ländercode am Anfang
- Ungültige Prüfziffer an Position 3-4
- Enthält unzulässige Zeichen (nur Großbuchstaben A-Z und Ziffern 0-9 erlaubt)
- Enthält Leerzeichen (müssen entfernt werden)
Fehlerhaftes XML-Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
<cbc:ID>RE-2024-003</cbc:ID>
<cbc:IssueDate>2024-01-15</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>04011000-1234512345-06</cbc:BuyerReference>
<!-- ... -->
<cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<!-- FEHLER: IBAN ist zu kurz und hat ein ungültiges Format -->
<cbc:ID>DE1234</cbc:ID>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<!-- ... -->
</Invoice>
Weitere fehlerhafte Beispiele:
<!-- Leerzeichen in der IBAN -->
<cbc:ID>DE89 3704 0044 0532 0130 00</cbc:ID>
<!-- Kleinbuchstaben -->
<cbc:ID>de89370400440532013000</cbc:ID>
<!-- Ungültige Prüfziffer -->
<cbc:ID>DE00370400440532013000</cbc:ID>
Die Lösung
Verwenden Sie eine korrekt formatierte IBAN ohne Leerzeichen und in Großbuchstaben:
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
<cbc:ID>RE-2024-003</cbc:ID>
<cbc:IssueDate>2024-01-15</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>04011000-1234512345-06</cbc:BuyerReference>
<!-- ... -->
<cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID>DE89370400440532013000</cbc:ID>
<cbc:Name>Musterfirma GmbH</cbc:Name>
<cac:FinancialInstitutionBranch>
<cbc:ID>COBADEFFXXX</cbc:ID>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<!-- ... -->
</Invoice>
Aufbau einer deutschen IBAN
Eine deutsche IBAN hat immer 22 Zeichen und folgt diesem Schema:
| Position | Inhalt | Beispiel |
|---|---|---|
| 1-2 | Ländercode | DE |
| 3-4 | Prüfziffer | 89 |
| 5-12 | Bankleitzahl (BLZ) | 37040044 |
| 13-22 | Kontonummer | 0532013000 |
Sonderfälle und häufige Fehler
-
Leerzeichen entfernen: IBANs werden auf Papier oft in Vierergruppen dargestellt (
DE89 3704 0044 0532 0130 00), müssen in der XML-Datei aber ohne Leerzeichen angegeben werden:DE89370400440532013000. -
Nicht-deutsche IBANs sind gültig: BR-DE-17 akzeptiert IBANs aus allen Ländern. Eine österreichische IBAN (
AT611904300234573201, 20 Zeichen) oder niederländische IBAN (NL91ABNA0417164300, 18 Zeichen) sind ebenfalls gültig. Die Länge variiert je nach Land. -
Prüfziffernvalidierung: Die Prüfziffer an Position 3-4 wird nach dem MOD-97-Verfahren (ISO 7064) berechnet. Eine reine Formatprüfung kann die IBAN akzeptieren, aber die mathematische Prüfziffernkontrolle könnte separat fehlschlagen.
-
BIC kann erforderlich sein: Für Zahlungen an Konten außerhalb des SEPA-Raums kann zusätzlich der BIC (Business Identifier Code) in BT-86 erforderlich sein. Innerhalb des SEPA-Raums ist der BIC seit 2016 optional.
-
Kontonummer vs. IBAN: BT-84 erwartet eine IBAN, keine alte nationale Kontonummer. Falls Ihnen nur BLZ und Kontonummer vorliegen, müssen diese erst in eine IBAN konvertiert werden. Die meisten Banken bieten hierfür Online-Tools an.
-
ZUGFeRD/Factur-X (CII): In der CII-Repräsentation befindet sich die IBAN unter
<ram:IBANID>im Element<ram:SpecifiedTradeSettlementPaymentMeans><ram:PayeePartyCreditorFinancialAccount>.
Links zur Spezifikation
- XRechnung Versionen und Pakete — Offizielle XRechnung-Spezifikation
- ISO 13616 IBAN-Standard — Internationaler IBAN-Standard
- IBAN-Prüfung der Deutschen Bundesbank — Offizielle IBAN-Regeln
- SEPA-Länder und IBAN-Längen — Übersicht der SEPA-Teilnehmerländer