Auf dieser Seite
Die kurze Antwort
BR-CL-03 schlägt fehl, wenn das Attribut currencyID eines Betrags kein Code der alphabetischen Liste nach ISO 4217 ist. Der Ort des Befunds ist das Betragselement; setzen Sie das Attribut auf den dreibuchstabigen Code der Rechnungswährung, denselben Wert wie cbc:DocumentCurrencyCode.
Das UKP im aufgezeichneten Beispiel sieht wie ein Code für Pfund Sterling aus, ist aber keiner; der ISO-Code ist GBP. Zwei Peppol-Regeln prüfen dasselbe Attribut, daher erzeugt ein falscher Wert drei Befunde.
Was die Regel prüft
Sie prüft die currencyID jedes cbc:Amount, cbc:BaseAmount, cbc:PriceAmount, cbc:TaxAmount, cbc:TaxableAmount und cbc:LineExtensionAmount sowie der anderen Summen in cac:LegalMonetaryTotal, wo immer sie vorkommen. Anders als die Begrenzung der Nachkommastellen erfasst sie auch den Artikelpreis.
Das Attribut wird von Leerraum am Rand befreit und dann in einer festen Liste von Codes nachgeschlagen, unter Beachtung der Groß- und Kleinschreibung. Im Versuch schlugen gbp, der numerische Code 826, ein Pfundzeichen und ein leeres Attribut jeweils fehl.
Umgebende Leerzeichen werden hier toleriert, anderswo nicht. Im Versuch bestand ein führendes Leerzeichen vor GBP diese Regel und wurde trotzdem von PEPPOL-EN16931-CL007 und PEPPOL-EN16931-R051 gemeldet, die das Attribut exakt so vergleichen, wie es geschrieben ist.
Jeder gelistete Code besteht, auch einer, der von der Dokumentwährung abweicht. Die Übereinstimmung mit der Rechnungswährung ist Sache von PEPPOL-EN16931-R051.
Das Attribut ist im UBL-Schema Pflicht. Im Versuch scheiterte ein Betrag ohne currencyID am XSD-Prüfschritt, und diese Regel wurde nie erreicht.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| - | Währung eines Betrags (das Attribut currencyID) | currencyID on each amount element, for example cac:InvoiceLine/cac:Price/cbc:PriceAmount/@currencyID |
| BT-5 | Code für die Rechnungswährung | cbc:DocumentCurrencyCode |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Eine Währung wird von Hand eingegeben oder in einem Freitextfeld geführt, was Werte wie
UKPoderSTGergibt. - Währungscodes werden in Kleinbuchstaben oder als numerische ISO-Codes gespeichert und unverändert durchgereicht.
- Jede Art von Betrag bezieht ihre Währung aus einer anderen Quelle, und eine davon, etwa eine Preisliste, schreibt die Währung anders.
- Ein Währungssymbol aus der Anzeigeschicht wird als Attributwert verwendet.
So korrigieren Sie das Dokument
- Ermitteln Sie anhand des Befundorts, welcher Betrag den falschen Wert trägt, und suchen Sie dann, wo Ihr Mapping dessen
currencyIDbefüllt. - Befüllen Sie jede
currencyIDaus derselben Quelle wiecbc:DocumentCurrencyCode, damit die Codes nicht auseinanderlaufen können. - Schreiben Sie den alphabetischen Code nach ISO 4217 in Großbuchstaben und ohne Leerraum am Rand. Übersetzen Sie numerische Codes, Symbole und Namen dort, wo der Wert in Ihr System gelangt.
- Der einzige Betrag, der einen anderen Code tragen darf, ist der Umsatzsteuergesamtbetrag in der Buchungswährung der Umsatzsteuer, in einem eigenen
cac:TaxTotalohne Aufschlüsselung, und dieser Code musscbc:TaxCurrencyCodeentsprechen.
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 Preis ist mit UKP gekennzeichnet
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<!-- item omitted from this fragment -->
<cac:Price>
<cbc:PriceAmount currencyID="UKP">12.5</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: Der Preis ist wie jeder andere Betrag in GBP
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<!-- item omitted from this fragment -->
<cac:Price>
<cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>Nur die currencyID an cbc:PriceAmount unterscheidet sich: UKP in der fehlerhaften Rechnung, GBP in der korrigierten. Drei Befunde teilen sich diesen Ort. BR-CL-03 ist die Codelistenprüfung von EN 16931. PEPPOL-EN16931-CL007 ist die Prüfung desselben Attributs gegen ISO 4217 im Peppol-Prüfschritt, sodass ein Wert, der kein gelisteter Code ist, bei beiden scheitert. PEPPOL-EN16931-R051 wird gemeldet, weil UKP nicht die Dokumentwährung GBP ist; diese Regel würde selbst bei einem gültigen Code wie EUR greifen. Die Korrektur des Attributs behebt alle drei.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CL-03,
PEPPOL-EN16931-CL007und PEPPOL-EN16931-R051. 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 für UBL
InvoiceundCreditNote. Im Versuch meldete eine Gutschrift mitUKPam Preis dieselben drei Regeln. - Die Liste ist derselbe Stand von ISO 4217, den
BR-CL-04auf die Dokumentwährung anwendet, daher scheitert ein zurückgezogener Code auch hier. - Die Regel betrachtet jeweils ein Attribut. Sie vergleicht Beträge weder untereinander noch mit der Dokumentwährung, daher besteht eine Mischung gültiger Codes diese Regel.
Verwandte Regeln
- PEPPOL-EN16931-R051 verlangt, dass jede currencyID dem Code der Dokumentwährung entspricht
- BR-CL-04 wendet dieselbe Codeliste auf den Code der Dokumentwährung an
- BR-05 verlangt den Code der Dokumentwährung, den die Attribute wiederholen sollen
- 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-03 (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.

