BR-DE-21 Zahlungsart muss einem zulässigen Code entsprechen
Was diese Regel prüft
BR-DE-21 prüft, ob der in BT-81 (Payment means type code) angegebene Zahlungsartcode zu den in der deutschen XRechnung-Spezifikation zugelassenen Codes gehört. Nicht alle Zahlungsarten der internationalen UNTDID 4461-Codeliste sind in Deutschland zulässig.
In der UBL-Repräsentation wird dieser Wert im Element <cbc:PaymentMeansCode> innerhalb von <cac:PaymentMeans> angegeben.
Zulässige Codes
| Code | Bezeichnung | Beschreibung |
|---|---|---|
| 10 | Nicht zulässig | |
| 30 | Überweisung | Generische Überweisung (Credit Transfer) |
| 48 | Kreditkartenzahlung | Kartenzahlung per Kreditkarte |
| 54 | Lastschrift | Generische Lastschrift |
| 58 | SEPA-Überweisung | SEPA Credit Transfer |
| 59 | SEPA-Lastschrift | SEPA Direct Debit |
Die vollständige Liste der zulässigen Codes wird in der XRechnung-Spezifikation (CIUS) definiert und kann sich zwischen Versionen ändern. Prüfen Sie stets die aktuelle Version.
Warum diese Regel existiert
Deutschland beschränkt die zulässigen Zahlungsarten auf diejenigen, die von der deutschen Zahlungsinfrastruktur tatsächlich unterstützt werden. Codes wie Bargeld (10), Scheck (20) oder Nachnahme (COD) sind im Kontext der elektronischen Rechnungsstellung an öffentliche Auftraggeber nicht praxisrelevant und werden daher abgelehnt.
Diese Einschränkung stellt sicher, dass die in der Rechnung hinterlegten Zahlungsinformationen auch tatsächlich maschinell verarbeitet werden können. Wenn ein ungültiger Code verwendet wird, kann das empfangende System die Zahlungsinformationen nicht korrekt interpretieren.
Was einen Fehler auslöst
Die Validierung schlägt fehl, wenn der Wert in <cbc:PaymentMeansCode> nicht in der Liste der zulässigen Codes enthalten ist. Typische fehlerhafte Werte:
10— Bargeld (Cash)20— Scheck (Cheque)31— Lastschrift (veraltet, stattdessen 54 oder 59 verwenden)42— Inlandsüberweisung (veraltet, stattdessen 30 oder 58 verwenden)97— Verrechnung/Clearing zwischen Partnern
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-002</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>
<!-- FEHLER: Code 10 (Bargeld) ist nicht zulässig -->
<cbc:PaymentMeansCode>10</cbc:PaymentMeansCode>
</cac:PaymentMeans>
<!-- ... -->
</Invoice>
Die Lösung
Verwenden Sie einen der zugelassenen Zahlungsartcodes. Für die meisten Anwendungsfälle ist 58 (SEPA-Überweisung) die richtige Wahl:
<?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-002</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>
Empfohlene Zuordnung
| Zahlungsszenario | Empfohlener Code |
|---|---|
| Überweisung auf deutsches Konto | 58 (SEPA Credit Transfer) |
| Überweisung auf nicht-SEPA-Konto | 30 (Credit Transfer) |
| Lastschrift mit SEPA-Mandat | 59 (SEPA Direct Debit) |
| Kreditkartenzahlung | 48 (Bank Card) |
Sonderfälle und häufige Fehler
-
Code 30 vs. 58: Beide sind zulässig, aber 58 (SEPA-Überweisung) ist spezifischer und sollte bevorzugt werden, wenn die Zahlung innerhalb des SEPA-Raums erfolgt. Code 30 ist die generische Alternative für internationale Überweisungen.
-
SEPA-Lastschrift (Code 59): Wenn Sie Code 59 verwenden, müssen zusätzlich die Mandatsreferenz (BT-89) und die Gläubiger-ID (BT-90) angegeben werden. Ohne diese Felder ist die SEPA-Lastschrift nicht durchführbar:
<cac:PaymentMeans> <cbc:PaymentMeansCode>59</cbc:PaymentMeansCode> <cac:PaymentMandate> <cbc:ID>MANDATE-2024-001</cbc:ID> <cac:PayerFinancialAccount> <cbc:ID>DE75512108001245126199</cbc:ID> </cac:PayerFinancialAccount> </cac:PaymentMandate> </cac:PaymentMeans> -
ZUGFeRD-Profile: Verschiedene ZUGFeRD-Profile (MINIMUM, BASIC, EN16931, EXTENDED) können abweichende Einschränkungen bei den Zahlungsartcodes haben. Im MINIMUM-Profil ist beispielsweise kein PaymentMeans erforderlich.
-
Mehrere PaymentMeans: Eine Rechnung kann mehrere
<cac:PaymentMeans>-Blöcke enthalten, z. B. wenn sowohl Überweisung als auch Lastschrift akzeptiert werden. Jeder Block muss einen zulässigen Code verwenden. -
Migration von alten Codes: Wenn Sie von älteren EDI-Formaten migrieren, beachten Sie die Zuordnung: Code 42 (Inlandsüberweisung) wird zu 58, Code 31 (Lastschrift) wird zu 59.
Links zur Spezifikation
- XRechnung Versionen und Pakete — Offizielle XRechnung-Spezifikation
- UNTDID 4461 Codeliste — Internationale Zahlungsart-Codeliste
- EN 16931 Payment Means — Europäische Norm für elektronische Rechnungsstellung