Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-05: Den Code für die Rechnungswährung angeben

Das Dokument hat kein cbc:DocumentCurrencyCode, oder es ist leer. Geben Sie die Währung, in der die Rechnung ausgestellt ist, als dreistelligen Buchstabencode nach ISO 4217 an.

EN 16931Fehler: Das Dokument ist ungültigKernfelder

Auf dieser Seite

Die kurze Antwort

BR-05 schlägt fehl, wenn das Wurzelelement kein cbc:DocumentCurrencyCode enthält oder eines, das leer ist oder nur Leerraum enthält. Fügen Sie das Element mit dem Code nach ISO 4217 für die Währung ein, in der die Rechnung ausgestellt ist, etwa GBP.

Rechnen Sie wegen dieser einen Auslassung mit einer langen Liste von Befunden. Peppol vergleicht die currencyID jedes Betrags mit diesem Element, daher wird PEPPOL-EN16931-R051 einmal pro Betrag gemeldet, solange es fehlt, auch wenn das Attribut korrekt ist.

Was die Regel prüft

Die Regel läuft einmal am Wurzelelement Invoice oder CreditNote und sucht ein Kindelement cbc:DocumentCurrencyCode, dessen Text nach dem Entfernen von Leerraum nicht leer ist. Ein fehlendes Element, ein leeres und eines, das nur Leerzeichen enthält, schlagen alle fehl.

Hier wird nur geprüft, ob ein Wert vorhanden ist. Ob dieser Wert ein echter Währungscode ist, bleibt BR-CL-04 überlassen: Im Versuch bestand gbp diese Regel und wurde stattdessen von BR-CL-04 gemeldet.

Das UBL-Schema behandelt das Element als optional, daher besteht ein Dokument ohne es den XSD-Prüfschritt, und die Lücke bleibt dem Prüfschritt EN 16931 überlassen. Im Versuch meldeten ein leeres Element und eines mit einem einzelnen Leerzeichen neben dieser Regel jeweils BR-CL-04, BR-CO-15 und PEPPOL-EN16931-R008 sowie PEPPOL-EN16931-R051 bei jedem Betrag.

Die currencyID-Attribute der Beträge ersetzen das Element nicht. Das aufgezeichnete Beispiel trägt weiterhin GBP bei allen dreizehn Beträgen und schlägt trotzdem fehl.

BegriffBedeutungUBL-Element
BT-5Code für die Rechnungswährungcbc:DocumentCurrencyCode

Wie es in einer Integration dazu kommt

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

  • Die Währung ist im Kunden- oder Buchungsdatensatz hinterlegt, und der Export liest sie aus dem Rechnungskopf, wo sie null ist.
  • Ein System, das immer nur in einer Währung fakturiert, hat überhaupt kein Währungsfeld, und die Vorlage schreibt currencyID="GBP" als festen Text an die Beträge, ohne ein Element für die Dokumentwährung.
  • Der Serialisierer überspringt Nullwerte oder schreibt für sie ein leeres Element, und das Währungsfeld war bei dieser Rechnung null.
  • Der Code wird in cbc:TaxCurrencyCode, die Umsatzsteuer-Buchungswährung, geschrieben statt in cbc:DocumentCurrencyCode.

So korrigieren Sie das Dokument

  1. Nehmen Sie die Währung aus dem Geschäftsvorgang: die Währung, in der die Preise vereinbart wurden und in der die Beträge ausgedrückt sind. Greifen Sie nicht auf die Heimatwährung des Verkäufers zurück, wenn die Rechnung in einer anderen Währung ausgestellt wurde.
  2. Schreiben Sie sie als alphabetischen Code nach ISO 4217 in Großbuchstaben in cbc:DocumentCurrencyCode direkt unter dem Wurzelelement: nach dem Typcode und einem etwaigen cbc:Note oder cbc:TaxPointDate, vor cbc:TaxCurrencyCode, cbc:AccountingCost und cbc:BuyerReference. Im Versuch scheiterte das Element nach cbc:BuyerReference am XSD-Prüfschritt.
  3. Prüfen Sie, dass jeder Betrag in currencyID denselben Code trägt, Zeichen für Zeichen. Nur die Umsatzsteuersumme in einer separaten Buchungswährung darf abweichen.
  4. Machen Sie die Währung dort zum Pflichtfeld, wo Rechnungen angelegt werden, damit eine Rechnung ohne Währung den Export nicht erreichen kann.

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: kein Währungscode zwischen Typcode und Käuferreferenz, während die Beträge weiterhin GBP angeben

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<!-- parties and tax total omitted from this fragment -->

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">30.00</cbc:TaxInclusiveAmount>
  <!-- allowance, charge, prepaid and rounding totals omitted from this fragment -->
  <cbc:PayableAmount currencyID="GBP">30.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

Ausschnitt der korrigierten Rechnung: Der Währungscode ist vorhanden, die Beträge sind unverändert

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>

Die korrigierte Rechnung enthält cbc:DocumentCurrencyCode mit dem Wert GBP zwischen Typcode und Käuferreferenz; die fehlerhafte hat kein solches Element, und sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet außerdem dreizehnmal PEPPOL-EN16931-R051, einmal für jeden Betrag in der Steuersumme, den Gesamtbeträgen und der Position: Diese Peppol-Regel verlangt, dass jede currencyID dem Code der Dokumentwährung entspricht, und ohne Code zum Vergleich schlagen selbst die korrekten GBP-Attribute fehl. Das Element zu ergänzen behebt alle vierzehn Befunde.

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; das Element hat in beiden denselben Namen und dieselbe Position. Im Versuch meldete eine Gutschrift ohne das Element BR-05 und PEPPOL-EN16931-R051 bei jedem Betrag, genau wie die Rechnung.
  • Solange der Code fehlt, hat BR-CO-15 keine Dokumentwährung, über die es die Umsatzsteuersumme finden könnte, und besteht unabhängig davon, was in den Summen steht. Im Versuch mit einer Summe einschließlich Umsatzsteuer, die ein Pfund zu hoch war, blieb BR-CO-15 stumm, und von den Summenprüfungen meldete nur BR-CO-16 etwas. Prüfen Sie nach dem Ergänzen des Codes erneut, bevor Sie den Summen vertrauen.
  • Die Währung stattdessen in cbc:TaxCurrencyCode zu schreiben hilft nicht. Dieses Element gibt eine separate Buchungswährung für die Umsatzsteuer an; im Versuch blieben damit BR-05 und jeder Befund von PEPPOL-EN16931-R051 bestehen, und PEPPOL-EN16931-R054 und PEPPOL-EN16931-R055 kamen hinzu.

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-05 (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.