Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-R042 schlägt für jedes cac:AllowanceCharge fehl, das cbc:BaseAmount, aber kein cbc:MultiplierFactorNumeric enthält. Ist der Betrag ein Prozentsatz dieses Grundbetrags, ergänzen Sie den Prozentsatz vor cbc:Amount.
Ist der Betrag eine feste Summe, hat der Grundbetrag keine Aufgabe: Entfernen Sie cbc:BaseAmount.
Was die Regel prüft
Die Regel wählt die cac:AllowanceCharge-Elemente direkt unter dem Wurzelelement des Dokuments oder direkt unter einer Position aus, die cbc:BaseAmount enthalten und denen cbc:MultiplierFactorNumeric fehlt. Die Auswahl selbst ist der Fehler; es werden keine Werte verglichen.
Nachlässe und Zuschläge werden identisch behandelt, und die Höhe des Grundbetrags ist unerheblich.
Wer nur cbc:Amount übermittelt, ohne Grundbetrag und ohne Prozentsatz, besteht die Regel.
| 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 Mapping schreibt immer einen Grundbetrag, etwa die Zwischensumme der Position oder des Dokuments, auch bei Rabatten und Gebühren als feste Summe, die keinen Prozentsatz haben.
- Der Prozentsatz ist im Quelldatensatz null, weil der Benutzer den Rabatt als Betrag erfasst hat.
- Ein Prozentsatz von 0 wird vom Serialisierer als leer behandelt und weggelassen, während der Grundbetrag erhalten bleibt.
- Der Prozentsatz steht in einer Preisliste oder Kundenvereinbarung und wird nie in den Rechnungsdatensatz übernommen.
So korrigieren Sie das Dokument
- Suchen Sie das im Befund genannte
cac:AllowanceCharge, auf Dokumentenebene oder innerhalb einer Position. - Stellen Sie fest, ob der Betrag aus einem Prozentsatz abgeleitet wurde. Wenn ja, ergänzen Sie
cbc:MultiplierFactorNumericmit diesem Prozentsatz, geschrieben als 10 für zehn Prozent. In UBL steht es vorcbc:Amount. - Wenn nein, entfernen Sie
cbc:BaseAmount. Rechnen Sie keinen Prozentsatz aus Betrag und Grundbetrag zurück, nur um das Element zu füllen, es sei denn, der Betrag ist tatsächlich so entstanden. - Sobald beide vorhanden sind, prüfen Sie die drei Zahlen gegeneinander:
PEPPOL-EN16931-R040verlangt, dass der Betrag Grundbetrag x Prozentsatz / 100 mit einer Toleranz von 0.02 entspricht.
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 mit einem Grundbetrag von 35.00 und ohne Prozentsatz
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">3.50</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Ausschnitt der korrigierten Rechnung: Die 10 Prozent, die 3.50 ergeben haben, sind 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:MultiplierFactorNumeric mit 10 vor cbc:Amount; sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-R042. Weder ein Betrag noch eine Summe ändert sich, daher bleiben die Rechenregeln unberührt.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-R042. 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 in beiden Dokumentarten bestätigt. - Der Nachlass innerhalb von
cac:Pricewird nicht ausgewählt. Dort istcbc:BaseAmountder Bruttopreis, es wird kein Prozentsatz erwartet, und stattdessen giltPEPPOL-EN16931-R046. - Solange der Prozentsatz fehlt, vergleicht
PEPPOL-EN16931-R040die Zahlen für dieses Element nicht; ein Rechenfehler kann daher erst sichtbar werden, nachdem diese Regel behoben ist.
Verwandte Regeln
- PEPPOL-EN16931-R041 ist das Spiegelbild: ein Prozentsatz ohne Grundbetrag
- PEPPOL-EN16931-R040 prüft Betrag, Grundbetrag und Prozentsatz gegeneinander, sobald alle drei vorhanden sind
- PEPPOL-EN16931-R046 behandelt den Grundbetrag des Nachlasses im Preis, also den Bruttopreis
- 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-R042 (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.

