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.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-81 | Code für die Zahlungsart | cac:PaymentMeans/cbc:PaymentMeansCode |
| BT-82 | Text zur Zahlungsart | cac: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,BANKoderCARD, 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
namesteht.
So korrigieren Sie das Dokument
- 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. - Schreiben Sie den Code als reinen Text ohne Auffüllung. Setzen Sie eine lesbare Bezeichnung in das Attribut
name. - Prüfen Sie, was der neue Code nach sich zieht.
30und58verlangen eine Kennung des Kontos des Zahlungsempfängers (BR-61), und49und59verlangen eine Mandatsreferenz (PEPPOL-EN16931-R061).
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
- Die fehlerhafte Rechnung meldet BR-CL-16. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.Fehlerhaftes XML herunterladenKorrigiertes XML herunterladen
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
InvoiceundCreditNote; eine Gutschrift mitBACSmeldete im Versuch dieselbe Regel. - Die Regel wird für jedes
cbc:PaymentMeansCodeim 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-61undPEPPOL-EN16931-R061achten auf bestimmte Codes; daher meldete ein mitBACScodiertes 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-008zwischen niederländischen Parteien undDK-R-005zwischen dänischen. Das sind eigene Befunde zusätzlich zu diesem.
Verwandte Regeln
- BR-61 verlangt ein Konto des Zahlungsempfängers, sobald der Code 30 oder 58 ist
- PEPPOL-EN16931-R061 verlangt eine Mandatsreferenz, sobald der Code 49 oder 59 ist
- BR-CL-01 ist dieselbe Art von Codelisten-Prüfung für den Code des Rechnungstyps
- BR-51 warnt, wenn eine Kartenzahlung, codiert als 48, 54 oder 55, die vollständige Kartennummer enthält
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): Understanding EN 16931 validation errors
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.

