← Alle Fehlerregeln
error Class A

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

CodeBezeichnungBeschreibung
10BargeldNicht zulässig
30ÜberweisungGenerische Überweisung (Credit Transfer)
48KreditkartenzahlungKartenzahlung per Kreditkarte
54LastschriftGenerische Lastschrift
58SEPA-ÜberweisungSEPA Credit Transfer
59SEPA-LastschriftSEPA 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

ZahlungsszenarioEmpfohlener Code
Überweisung auf deutsches Konto58 (SEPA Credit Transfer)
Überweisung auf nicht-SEPA-Konto30 (Credit Transfer)
Lastschrift mit SEPA-Mandat59 (SEPA Direct Debit)
Kreditkartenzahlung48 (Bank Card)

Sonderfälle und häufige Fehler

  1. 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.

  2. 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>
  3. 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.

  4. 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.

  5. 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.