Auf dieser Seite
Die kurze Antwort
UBL-CR-669 ist eine Warnung, die ausgelöst wird, wenn cbc:AllowanceChargeReasonCode in einem Preisnachlass (//cac:Price/cac:AllowanceCharge) steht. EN 16931 hat dafür kein Informationselement; entfernen Sie daher das Element. Ein Preisnachlass hat nur seinen Betrag und den Bruttopreis, cbc:Amount und cbc:BaseAmount (BT-147, BT-148); ein Nachlass mit Grund gehört als Nachlass auf Positionsebene an die Position (BG-27).
Die Warnung allein macht das Dokument nicht ungültig, doch andere Regeln prüfen weiterhin, was vorhanden ist. Das Entfernen des Elements hält das XML innerhalb des Modells von EN 16931, auf dessen Grundlage ein Empfänger die Rechnung übernimmt.
Was die Regel prüft
Die Regel prüft genau eines: ob //cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode vorhanden ist. Seinen Wert liest sie nicht.
Sie wird einmal für das ganze Dokument ausgewertet und daher nur einmal gemeldet, gleich wie oft das Dokument das Element enthält; der Befund verweist auf das Wurzelelement, nicht auf das Element selbst: Suchen Sie im XML nach //cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode.
UBL-CR-633 prüft dasselbe Element an einer bestimmten Stelle des Dokuments; ein Dokument mit diesem Element löst daher beide Regeln aus.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| - | AllowanceChargeReasonCode (nur UBL, kein Informationselement) | //cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode |
| BT-147 | Preisnachlass | //cac:Price/cac:AllowanceCharge |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Das Quellsystem führt den Wert, und das Mapping schreibt ihn, weil UBL 2.1 einen Platz dafür hat.
- Eine allgemeine UBL-2.1-Bibliothek schreibt jedes Element und Attribut, für das sie einen Wert hat, ob EN 16931 es verwendet oder nicht.
- Ein Mapping für ein anderes UBL-basiertes Dokument, etwa eine Bestellung, eine Versandanzeige oder ein nationales Profil, wird für Peppol BIS Billing wiederverwendet.
So korrigieren Sie das Dokument
- Geben Sie
//cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReasonCodenicht mehr aus. - Ein Preisnachlass hat nur seinen Betrag und den Bruttopreis,
cbc:Amountundcbc:BaseAmount(BT-147, BT-148); ein Nachlass mit Grund gehört als Nachlass auf Positionsebene an die Position (BG-27). - Prüfen Sie erneut: Die Warnung verschwindet. War das Element das einzige in seinem übergeordneten Element, entfernen Sie auch dieses: Peppol weist leere Elemente zurück (PEPPOL-EN16931-R008).
Vorher und nachher
Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.
Ausschnitt der Rechnung mit der Warnung: AllowanceChargeReasonCode in einem Preisnachlass
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">6.00</cbc:BaseAmount>
</cac:AllowanceCharge>Ausschnitt der korrigierten Rechnung: dieselben Zeilen ohne das Element
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">6.00</cbc:BaseAmount>
</cac:AllowanceCharge>Die Rechnung mit der Warnung enthält <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode> in einem Preisnachlass, und die korrigierte Rechnung ist dasselbe Dokument ohne das Element. Die Rechnung mit der Warnung meldet diese Warnung sowie UBL-CR-633 und ist in jedem Prüfschritt gültig.
Was der Validator gemeldet hat
- Die Rechnung mit der Warnung ist gültig und meldet die Warnungen UBL-CR-633 und UBL-CR-669. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.XML mit der Warnung 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 aufgezeichnete Beispiel ist eine Rechnung. - Die Warnung stammt aus den Regeln des Prüfschritts EN 16931 für die UBL-Syntax. Im aufgezeichneten Beispiel besteht das Dokument den XSD-Prüfschritt: Das Element ist gültiges UBL 2.1 und liegt lediglich außerhalb des Modells von EN 16931.
Verwandte Regeln
- UBL-CR-633 prüft dasselbe Element an einer bestimmten Stelle
- UBL-CR-670: AllowanceChargeReason in einem Preisnachlass
- UBL-CR-671: MultiplierFactorNumeric in einem Preisnachlass
- 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-29.1: Quelle geprüft am 2026-09-29, Erklärung zuletzt aktualisiert am 2026-09-29.
Die offizielle Definition von UBL-CR-669 (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.

