Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-CL-16: Einen Code für die Zahlungsart aus UNTDID 4461 verwenden

cbc:PaymentMeansCode muss ein Code aus UNTDID 4461 sein, etwa 30 für eine Überweisung oder 49 für eine Lastschrift, kein Name eines Bankverfahrens oder Produkts.

EN 16931Fehler: Das Dokument ist ungültigCodelisten

Auf dieser Seite

Die kurze Antwort

BR-CL-16 schlägt fehl, wenn cac:PaymentMeans/cbc:PaymentMeansCode etwas enthält, das kein Code aus UNTDID 4461 ist. Ersetzen Sie es durch den Code dafür, wie der Käufer zahlen wird: 30 für eine Überweisung auf das Konto des Verkäufers, 58 für eine SEPA-Überweisung, 49 für eine Lastschrift, 48 für eine Bankkarte und so weiter.

Ein Verfahrens- oder Produktname wie BACS ist kein Code. Wenn der Name auf der Rechnung stehen soll, setzen Sie ihn in das Attribut name desselben Elements, das den Text zur Zahlungsart trägt.

Was die Regel prüft

Der Wert wird um führende und nachgestellte Leerzeichen gekürzt und muss dann genau einem einzelnen Code entsprechen. Die festgelegte Liste enthält die Nummern 1 bis 70, 74 bis 78 und 91 bis 98, dazu ZZZ für ein gegenseitig vereinbartes Verfahren.

Form und Groß- und Kleinschreibung zählen. Im Versuch wurden zzz, 030, 71, 99, die Wörter Credit transfer und das Paar 30 58 alle abgelehnt, während 30 mit Leerzeichen davor und danach bestand.

Das Attribut name wird von dieser Regel nicht geprüft. Ein Code 30 mit name="BACS" bestand im Versuch alle Prüfschritte.

Ein leeres cbc:PaymentMeansCode schlägt an dieser Regel und an PEPPOL-EN16931-R008 fehl. Fehlt das Element ganz, schlägt stattdessen der XSD-Prüfschritt fehl, weil UBL es in jedem Zahlungsmittel verlangt.

BegriffBedeutungUBL-Element
BT-81Code für die Zahlungsartcac:PaymentMeans/cbc:PaymentMeansCode
BT-82Text zur Zahlungsartcac:PaymentMeans/cbc:PaymentMeansCode/@name

Wie es in einer Integration dazu kommt

Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:

  • Ein interner Name oder Code der Zahlungsart, etwa BACS, BANK oder CARD, wird ohne Übersetzungstabelle direkt in das Element geschrieben.
  • Der Code ist als Zahl gespeichert und wird mit führender Null oder Auffüllung formatiert.
  • Der Code wurde aus einer anderen Liste übernommen, zum Beispiel aus den eigenen Codes einer Bank für Transaktionsarten.
  • Beschreibender Text und Code wurden vertauscht, sodass der Text im Element und der Code im Attribut name steht.

So korrigieren Sie das Dokument

  1. Listen Sie die Zahlungsarten auf, die Ihr System anbietet, und ordnen Sie jede in einer expliziten Tabelle einem Code aus UNTDID 4461 zu. Eine Zahlung, die der Käufer über Bacs oder Faster Payments auf das Bankkonto des Verkäufers sendet, ist eine Überweisung, 30; ein Einzug aufgrund einer Bacs-Direct-Debit-Anweisung ist eine Lastschrift, 49.
  2. Schreiben Sie den Code als reinen Text ohne Auffüllung. Setzen Sie eine lesbare Bezeichnung in das Attribut name.
  3. Prüfen Sie, was der neue Code nach sich zieht. 30 und 58 verlangen eine Kennung des Kontos des Zahlungsempfängers (BR-61), und 49 und 59 verlangen eine Mandatsreferenz (PEPPOL-EN16931-R061).

Korrigierte Rechnung prüfen

Vorher und nachher

Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.

Ausschnitt der fehlerhaften Rechnung: Der Code für die Zahlungsart ist der Name eines britischen Clearingverfahrens

<cac:PaymentMeans>
  <cbc:PaymentMeansCode>BACS</cbc:PaymentMeansCode>
  <cbc:PaymentID>PAYMENT-001</cbc:PaymentID>
  <cac:PayeeFinancialAccount>
    <cbc:ID>EXAMPLE-ACCOUNT-001</cbc:ID>
    <!-- account name and branch omitted from this fragment -->
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>

Ausschnitt der korrigierten Rechnung: Code 30, Überweisung

<cac:PaymentMeans>
  <cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
  <cbc:PaymentID>PAYMENT-001</cbc:PaymentID>
  <cac:PayeeFinancialAccount>
    <cbc:ID>EXAMPLE-ACCOUNT-001</cbc:ID>
    <!-- account name and branch omitted from this fragment -->
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>

Nur cbc:PaymentMeansCode unterscheidet sich: BACS in der fehlerhaften Rechnung, 30 in der korrigierten. Das fehlerhafte Dokument meldet nur BR-CL-16. Das Konto des Zahlungsempfängers und seine Kennung sind in beiden Dokumenten vorhanden; sobald der Code 30 ist, finden die Regeln für Überweisungen daher nichts Fehlendes.

Was der Validator gemeldet hat

Aufgezeichnet mit phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, der Engine hinter dem kostenlosen Validator, mit synthetischen Daten. Ein aufgezeichnetes Ergebnis ist ein Regressionsnachweis für diese Dokumente, keine Zertifizierung.

Wo die Regel gilt

  • Gilt gleichermaßen für UBL Invoice und CreditNote; eine Gutschrift mit BACS meldete im Versuch dieselbe Regel.
  • Die Regel wird für jedes cbc:PaymentMeansCode im Dokument geprüft, mit einem Befund je nicht gelistetem Code.
  • Ein Code außerhalb der Liste verdeckt die Prüfungen, die vom Code abhängen. BR-61 und PEPPOL-EN16931-R061 achten auf bestimmte Codes; daher meldete ein mit BACS codiertes Zahlungsmittel ganz ohne Konto im Versuch nur diese Regel.
  • Einige nationale Peppol-Regeln schränken die Liste für inländische Rechnungen ein, etwa NL-R-008 zwischen niederländischen Parteien und DK-R-005 zwischen dänischen. Das sind eigene Befunde zusätzlich zu diesem.

Umfang und Quelle

Geschrieben für Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, angewendet auf Invoice- und CreditNote-Dokumente in UBL 2.1. Andere Profile, Syntaxen und Releases können diese Kennung anders definieren. Version des Hinweiskatalogs 2026-09-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-24.

Die offizielle Definition von BR-CL-16 (auf Englisch) enthält den normativen Wortlaut und den Test. Diese Seite ist unsere Erklärung dazu, keine Kopie.

Die Erklärung ändert das Urteil der Engine nicht. Dass Sie diesen Befund beheben, heißt nicht, dass das Dokument jeden Prüfschritt besteht. Die Validierung bescheinigt keine rechtliche oder steuerliche Konformität und überträgt kein Dokument über Peppol.