Auf dieser Seite
Die kurze Antwort
UBL-DT-01 schlägt einmal für jedes Element fehl, dessen Name auf Amount endet und dessen Text mehr als zwei Zeichen nach dem Dezimalpunkt hat. Der Ort des Befunds ist dieses Element; schreiben Sie seinen Wert mit höchstens zwei Nachkommastellen, zum Beispiel 11.70 statt 11.700.
Zwei Arten von Beträgen sind ausgenommen: cbc:PriceAmount und die Beträge eines Nachlasses innerhalb von cac:Price. Alles andere, von den Positionsbeträgen bis zur Umsatzsteuersumme, ist auf zwei Nachkommastellen begrenzt, und die meisten Beträge haben zusätzlich eine eigene BR-DEC-Regel, die neben dieser gemeldet wird.
Was die Regel prüft
Die Regel wählt Elemente nach ihrem Namen aus, in jeder Tiefe: alles, dessen Name auf Amount endet. Für jedes nimmt sie den Text, sucht den ersten Dezimalpunkt und schlägt fehl, wenn mehr als zwei Zeichen folgen. Nachgestellte Nullen zählen, ebenso nachgestellter Leerraum; im Versuch schlug 11.70 gefolgt von einem Leerzeichen fehl.
Die Ausnahmen hängen vom Elementnamen und seiner Position ab. Der Nettopreis des Artikels ist überall ausgenommen, wo er vorkommt, ebenso cbc:Amount und cbc:BaseAmount innerhalb von cac:Price/cac:AllowanceCharge, die den Preisnachlass und den Bruttopreis tragen. Die korrigierte Rechnung im aufgezeichneten Beispiel hat einen Nettopreis von 19.995 und wird ohne Befund validiert.
Die Umsatzsteuersumme direkt unter cac:TaxTotal hat in diesem Release keine funktionierende eigene Regel für Nachkommastellen: Die dafür vorgesehene Prüfung meldet nichts, daher ist diese Regel dort der einzige Befund für 11.700. Die Umsatzsteuersumme in einer Buchungswährung ist in derselben Lage; im Versuch meldete 13.456 in einer zweiten Steuersumme nur diese Regel.
Wo ein Betrag eine eigene Regel hat, kommen beide zusammen. Im Versuch ergab das Auffüllen aller zwölf Beträge mit zwei Nachkommastellen einer minimalen Rechnung auf drei Nachkommastellen zwölf Befunde von UBL-DT-01 und elf BR-DEC-Befunde: je einen für jeden Betrag außer der Umsatzsteuersumme.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| - | Jedes Element, dessen Name auf Amount endet | At any depth, for example cac:LegalMonetaryTotal/cbc:PayableAmount or cac:InvoiceLine/cac:AllowanceCharge/cbc:Amount |
| BT-110 | Gesamtbetrag der Umsatzsteuer (das Element im aufgezeichneten Beispiel) | cac:TaxTotal/cbc:TaxAmount |
| BT-146 | Nettopreis des Artikels (ausgenommen) | cac:InvoiceLine/cac:Price/cbc:PriceAmount (cac:CreditNoteLine/cac:Price/cbc:PriceAmount in a credit note) |
| BT-147 | Rabatt auf den Artikelpreis (ausgenommen) | cac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:Amount |
| BT-148 | Bruttopreis des Artikels (ausgenommen) | cac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:BaseAmount |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Ein Zahlenformatierer wird einmal konfiguriert, mit drei oder vier Nachkommastellen passend zu Preisen und Mengen, und auch auf Beträge angewandt.
- Beträge werden in einem Typ mit höherer Genauigkeit berechnet und ohne Rundung geschrieben, sodass ein Wert wie 11.704 ins XML gelangt.
- Eine Dezimalspalte der Datenbank mit drei oder mehr Nachkommastellen wird in voller Genauigkeit geschrieben, wodurch aus 11.7
11.700wird. - Eine Template-Engine schreibt zusammen mit dem Wert ein Leerzeichen oder einen Zeilenumbruch in das Element.
So korrigieren Sie das Dokument
- Ermitteln Sie jedes Element anhand des Orts des Befunds. Jeder betroffene Betrag hat seinen eigenen Befund, daher ist die Liste vollständig.
- Runden Sie den Wert dort auf zwei Nachkommastellen, wo er berechnet wird, nicht nur dort, wo er formatiert wird, damit die darauf aufbauenden Summen dieselbe Zahl verwenden.
- Formatieren Sie jeden Betrag mit höchstens zwei Nachkommastellen und ohne umgebenden Leerraum. Behalten Sie zusätzliche Nachkommastellen nur bei
cbc:PriceAmountund beim Nachlass innerhalb voncac:Price, wo sie erlaubt sind. - Hat die Rundung einen Wert verändert, berechnen Sie die davon abhängigen Summen vor dem Versand neu.
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: Die Umsatzsteuersumme ist als 11.700 geschrieben
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.700</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<!-- tax category omitted from this fragment -->
</cac:TaxSubtotal>
<!-- zero-rated breakdown omitted from this fragment -->
</cac:TaxTotal>Ausschnitt der korrigierten Rechnung: die Umsatzsteuersumme als 11.70 geschrieben, wie ihre Aufschlüsselung
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<!-- tax category omitted from this fragment -->
</cac:TaxSubtotal>
<!-- zero-rated breakdown omitted from this fragment -->
</cac:TaxTotal>Die Umsatzsteuersumme direkt unter cac:TaxTotal ist in der fehlerhaften Rechnung als 11.700 und in der korrigierten als 11.70 geschrieben; die Aufschlüsselungen und alle anderen Summen sind identisch, und der Wert selbst ist derselbe. Das fehlerhafte Dokument meldet nur UBL-DT-01, an cac:TaxTotal/cbc:TaxAmount. Die Regel für Nachkommastellen aus EN 16931, die für die Umsatzsteuersumme gedacht ist, schlägt in diesem Release nicht an, und die Rechenprüfungen vergleichen Werte, die gleich sind, daher wird nichts weiter gemeldet.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet UBL-DT-01. 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
InvoiceundCreditNoteund für Beträge an beliebiger Stelle in beiden, einschließlich derer incac:InvoiceLineundcac:CreditNoteLine. Im Versuch meldete eine Gutschrift mit einer Umsatzsteuersumme von11.700nur diese Regel, wie die Rechnung. - Sie wird vom Prüfschritt EN 16931 gemeldet, obwohl sie den UBL-Datentyp prüft und kein Informationselement. Der XSD-Prüfschritt läuft zuerst und akzeptiert
11.700als gültige Dezimalzahl, daher zeigt sich das Problem erst hier. - Ein Wert, der gar keine Dezimalzahl ist, etwa einer mit Komma, oder ein leeres Betragselement scheitert stattdessen am XSD-Prüfschritt, und die Prüfschritte der Geschäftsregeln werden übersprungen.
- Ein ungerundeter Wert ist ein anderer Fall als ein aufgefüllter. Im Versuch brachte
11.704in der Umsatzsteuersumme zusätzlichBR-CO-14, weil er nicht die Summe der Aufschlüsselungen ist;11.700ist es und brachte nichts weiter.
Verwandte Regeln
- BR-DEC-20 wird mit dieser Regel gemeldet, wenn ein Steuerbetrag einer Umsatzsteueraufschlüsselung zu viele Nachkommastellen hat
- BR-DEC-23 wird mit dieser Regel gemeldet, wenn ein Nettobetrag einer Position zu viele Nachkommastellen hat
- BR-CO-14 prüft den Wert der Umsatzsteuersumme, die das aufgezeichnete Beispiel mit einer zusätzlichen Nachkommastelle schreibt
- PEPPOL-EN16931-R046 prüft den Preisnachlass und den Bruttopreis auf Preisebene, die diese Regel unberührt lässt
- 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 UBL-DT-01 (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.

