Zum Inhalt springen

Ironfang Finance - Regelreferenz

PEPPOL-EN16931-R044: Die Anpassung auf Preisebene als Rabatt kennzeichnen oder einen Aufschlag aus dem Preis herausnehmen

In cac:Price/cac:AllowanceCharge darf nur ein Rabatt stehen, daher muss sein cbc:ChargeIndicator false sein. Ein Aufschlag gehört in den Nettopreis oder einen Positionszuschlag.

Peppol BIS BillingFehler: Das Dokument ist ungültigPositionen und PreiseNachlässe und Zuschläge

Auf dieser Seite

Die kurze Antwort

PEPPOL-EN16931-R044 schlägt fehl, wenn das cac:AllowanceCharge innerhalb des cac:Price einer Position ein cbc:ChargeIndicator hat, das nicht false ist. Dieses Element dient nur dazu, den Rabatt auf den Artikelpreis und den Bruttopreis zu tragen. Ist der Eintrag ein Rabatt, setzen Sie das Kennzeichen auf false, wie es die korrigierte Rechnung tut.

Ein echter Aufschlag auf den Stückpreis kann dort nicht übermittelt werden. Entfernen Sie das Element auf Preisebene und rechnen Sie den Aufschlag entweder in den Nettopreis ein oder übermitteln Sie ihn als Zuschlag auf der Position mit eigenem Grund.

Was die Regel prüft

Geprüft wird jedes cac:Price/cac:AllowanceCharge, in Rechnungs- und Gutschriftpositionen. Nach dem Entfernen von Leerraum am Rand muss sein cbc:ChargeIndicator genau false lauten.

true schlägt fehl, ebenso 0. Im Versuch akzeptierte das Schema 0 im Element auf Preisebene, diese Regel lehnte es aber ab, weil sie Text statt boolescher Werte vergleicht; 1 wurde auf dieselbe Weise abgelehnt.

Die Beträge werden hier nicht untersucht. Die fehlerhafte Rechnung erfüllt PEPPOL-EN16931-R046 weiterhin, denn diese Regel zieht den Betrag unabhängig vom Kennzeichen vom Bruttopreis ab.

Einträge direkt auf der Position oder unter dem Wurzelelement des Dokuments, wo Zuschläge erlaubt sind, liegen außerhalb dieser Regel; ihre Schreibweise prüft PEPPOL-EN16931-R043.

BegriffBedeutungUBL-Element
-Kennzeichen des Rabatts auf den Preiscac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:ChargeIndicator
BT-147Rabatt auf den Artikelpreiscac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:Amount
BT-148Bruttopreis des Artikelscac: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:

  • Das Kennzeichen wird aus dem Vorzeichen einer Preisanpassung abgeleitet, und eine positive Anpassung wird als Zuschlag gelesen.
  • Eine gemeinsame Routine, die jedes cac:AllowanceCharge schreibt, erhält für das Element auf Preisebene das falsche Flag.
  • Die Preisliste im Quellsystem enthält einen Grundpreis und einen Aufschlag, und das Mapping bildet den Aufschlag als Zuschlag auf den Preis ab.
  • Boolesche Werte werden im gesamten Dokument als 1 und 0 geschrieben.

So korrigieren Sie das Dokument

  1. Öffnen Sie die im Befund genannte Position und sehen Sie sich cac:Price/cac:AllowanceCharge an.
  2. Führt cbc:Amount vom Bruttopreis in cbc:BaseAmount hinunter zum Nettopreis in cbc:PriceAmount, ist es ein Rabatt. Schreiben Sie false und ändern Sie sonst nichts.
  3. Ist es ein Aufschlag auf den Preis, löschen Sie das cac:AllowanceCharge auf Preisebene. Übermitteln Sie dann entweder den Nettopreis mit dem in cbc:PriceAmount enthaltenen Aufschlag, oder behalten Sie den Grundpreis bei und fügen Sie direkt in der Position ein cac:AllowanceCharge mit cbc:ChargeIndicator gleich true, einem Grund und dem Aufschlagsbetrag für die gesamte Position hinzu.
  4. Berechnen Sie beim Positionszuschlag cbc:LineExtensionAmount neu als Menge mal Preis plus Zuschlag, was PEPPOL-EN16931-R120 prüft. Im Versuch mit der aufgezeichneten Position war ein Preis von 10, eine Menge von 2 und ein Positionszuschlag von 5.00 bei einem Nettobetrag der Position von 25.00 fehlerfrei.

Korrigierte Rechnung prüfen

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: Der Rabatt auf den Preis von 2.5 ist als Zuschlag gekennzeichnet

<cac:Price>
  <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:Amount currencyID="GBP">2.5</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">15</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Ausschnitt der korrigierten Rechnung: dieselben Zahlen, das Kennzeichen auf false gesetzt

<cac:Price>
  <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="GBP">2.5</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">15</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Nur das Kennzeichen im cac:AllowanceCharge auf Preisebene unterscheidet sich: true in der fehlerhaften Rechnung, false in der korrigierten. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-R044, weil die Zahlen bereits die eines Rabatts waren: 15 minus 2.5 ergibt den Nettopreis von 12.5. Im Versuch als echter Aufschlag, mit einem Bruttopreis von 10 und denselben 2.5 als Zuschlag gekennzeichnet, wurde zusätzlich PEPPOL-EN16931-R046 gemeldet, da diese Regel 10 minus 2.5 erwartet.

Was der Validator gemeldet hat

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 cac:InvoiceLine und cac:CreditNoteLine; eine Gutschrift, deren Rabatt auf den Preis mit true gekennzeichnet war, meldete im Versuch nur diese Regel.
  • Dies ist eine Einschränkung von Peppol. Der Prüfschritt EN 16931 bestand im aufgezeichneten Beispiel.
  • Keine Summe hängt vom Element auf Preisebene ab. Der Nettobetrag der Position wird aus cbc:PriceAmount berechnet; das Entfernen des Elements lässt daher alle Beträge unverändert.

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 PEPPOL-EN16931-R044 (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.