Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-R041 schlägt für jedes cac:AllowanceCharge fehl, das cbc:MultiplierFactorNumeric, aber kein cbc:BaseAmount enthält. Ergänzen Sie den Grundbetrag, auf den der Prozentsatz angewendet wurde, nach cbc:Amount.
Wurde der Betrag nie aus einem Prozentsatz berechnet, entfernen Sie stattdessen cbc:MultiplierFactorNumeric und übermitteln Sie den Betrag allein.
Was die Regel prüft
Dies ist eine reine Vorhandenseinsprüfung ohne Rechnung. Die Regel wählt die cac:AllowanceCharge-Elemente direkt unter dem Wurzelelement des Dokuments oder direkt unter einer Position aus, die cbc:MultiplierFactorNumeric enthalten und denen cbc:BaseAmount fehlt, und jedes ausgewählte Element schlägt fehl.
Der Wert des Prozentsatzes spielt keine Rolle, ebenso wenig cbc:ChargeIndicator: Nachlässe und Zuschläge werden gleich behandelt.
Ein Nachlass oder Zuschlag ohne Prozentsatz und ohne Grundbetrag besteht. Mit dem Validator bestätigt, indem beide aus dem aufgezeichneten Zuschlag entfernt wurden.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BG-20 | Nachlässe auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = false] |
| BG-21 | Zuschläge auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true] |
| BG-27 | Nachlässe auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false] |
| BG-28 | Zuschläge auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true] |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Das Quellsystem speichert den Rabatt als Prozentsatz und resultierenden Betrag und hat keine Spalte für die Zahl, auf die der Prozentsatz angewendet wurde.
- Der Grundbetrag wird aus einem Feld gemappt, das für dieses Dokument leer ist, und der Serialisierer lässt leere Elemente weg.
- Bei einem Zuschlag, der in Wirklichkeit eine feste Summe ist, wird ein Prozentsatz nur zur Information mitgeschrieben.
- Das Mapping wurde für Rabatte auf Positionsebene gebaut und auf Dokumentenebene wiederverwendet, wo kein Grundwert angebunden wurde.
So korrigieren Sie das Dokument
- Suchen Sie das
cac:AllowanceChargeaus dem Befund. Die Regel schlägt für jedes betroffene Element einmal an, auf Dokumentenebene oder innerhalb einer Position. - Stammt der Betrag aus einem Prozentsatz, ergänzen Sie
cbc:BaseAmountmit der Zahl, auf die der Prozentsatz angewendet wurde, mit derselbencurrencyIDwie der Betrag. In UBL folgt es aufcbc:Amount. - Ist der Betrag eine feste Summe, entfernen Sie
cbc:MultiplierFactorNumeric. Erfinden Sie keinen passenden Grundbetrag. - Sind beide Elemente vorhanden, prüft
PEPPOL-EN16931-R040, ob der Betrag Grundbetrag x Prozentsatz / 100 mit einer Toleranz von 0.02 entspricht. Achten Sie daher darauf, dass der ergänzte Grundbetrag der tatsächlich verwendete ist.
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: ein Zuschlag von 10 Prozent ohne Grundbetrag
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">3.50</cbc:Amount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Ausschnitt der korrigierten Rechnung: Der Grundbetrag von 35.00 ist angegeben
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">3.50</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Das korrigierte Dokument ergänzt cbc:BaseAmount mit 35.00 nach cbc:Amount; sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-R041. Der Betrag und alle Summen bleiben unverändert, daher ist keine Rechenregel betroffen.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-R041. 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, auf Dokumentenebene und incac:InvoiceLineodercac:CreditNoteLine. Mit dem Validator für einen Nachlass auf Positionsebene und für eine Gutschrift bestätigt. - Den Nachlass innerhalb von
cac:Pricewählt diese Regel nicht aus. - Schlägt diese Regel an, bleibt
PEPPOL-EN16931-R040für dasselbe Element stumm, weil sie die Zahlen nur vergleicht, wenn sowohl der Prozentsatz als auch der Grundbetrag vorhanden sind.
Verwandte Regeln
- PEPPOL-EN16931-R042 ist das Spiegelbild: ein Grundbetrag ohne Prozentsatz
- PEPPOL-EN16931-R040 prüft die Rechnung, sobald Prozentsatz und Grundbetrag beide vorhanden sind
- BR-CO-12 prüft, ob die Beträge der Zuschläge auf Dokumentenebene die Summe der Zuschläge ergeben
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): How Peppol invoice validation actually works
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-20.
Die offizielle Definition von PEPPOL-EN16931-R041 (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.

