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.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| 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:
- 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 incbc:DocumentCurrencyCode.
So korrigieren Sie das Dokument
- 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.
- Schreiben Sie sie als alphabetischen Code nach ISO 4217 in Großbuchstaben in
cbc:DocumentCurrencyCodedirekt unter dem Wurzelelement: nach dem Typcode und einem etwaigencbc:Noteodercbc:TaxPointDate, vorcbc:TaxCurrencyCode,cbc:AccountingCostundcbc:BuyerReference. Im Versuch scheiterte das Element nachcbc:BuyerReferenceam XSD-Prüfschritt. - Prüfen Sie, dass jeder Betrag in
currencyIDdenselben Code trägt, Zeichen für Zeichen. Nur die Umsatzsteuersumme in einer separaten Buchungswährung darf abweichen. - Machen Sie die Währung dort zum Pflichtfeld, wo Rechnungen angelegt werden, damit eine Rechnung ohne Währung den Export nicht erreichen kann.
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
- Die fehlerhafte Rechnung meldet BR-05 und 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 gleichermaßen für UBL
InvoiceundCreditNote; das Element hat in beiden denselben Namen und dieselbe Position. Im Versuch meldete eine Gutschrift ohne das ElementBR-05undPEPPOL-EN16931-R051bei jedem Betrag, genau wie die Rechnung. - Solange der Code fehlt, hat
BR-CO-15keine 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, bliebBR-CO-15stumm, und von den Summenprüfungen meldete nurBR-CO-16etwas. Prüfen Sie nach dem Ergänzen des Codes erneut, bevor Sie den Summen vertrauen. - Die Währung stattdessen in
cbc:TaxCurrencyCodezu schreiben hilft nicht. Dieses Element gibt eine separate Buchungswährung für die Umsatzsteuer an; im Versuch blieben damitBR-05und jeder Befund vonPEPPOL-EN16931-R051bestehen, undPEPPOL-EN16931-R054undPEPPOL-EN16931-R055kamen hinzu.
Verwandte Regeln
- BR-CL-04 prüft, ob der Währungscode, sobald vorhanden, ein gültiger Code nach ISO 4217 ist
- PEPPOL-EN16931-R051 vergleicht die currencyID jedes Betrags mit diesem Code und schlägt bei jedem Betrag fehl, solange er fehlt
- BR-CO-15 findet die Umsatzsteuersumme über die Dokumentwährung und kann die Summe einschließlich Umsatzsteuer daher erst prüfen, wenn dieser Code vorhanden ist
- BR-CL-03 prüft den Währungscode, der an jedem Betrag steht
- 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-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.

