Zum Inhalt springen

Ironfang Finance - Regelreferenz

PEPPOL-EN16931-CL003: Einen Code der Peppol-Liste zu UNTDID 7161 als Code für den Grund des Zuschlags verwenden

Bei einem mit true gekennzeichneten Zuschlag muss cbc:AllowanceChargeReasonCode ein Code aus UNTDID 7161 sein, etwa DL für Lieferung. DEL gehört nicht dazu.

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

Auf dieser Seite

Die kurze Antwort

PEPPOL-EN16931-CL003 schlägt fehl, wenn cbc:AllowanceChargeReasonCode in einem Zuschlag, dessen cbc:ChargeIndicator genau true lautet, nicht auf der Peppol-Liste zu UNTDID 7161 steht. Der aufgezeichnete Zuschlag einer Position war mit DEL codiert; der Code für einen Lieferzuschlag ist DL.

DEL wirkt glaubwürdig, weil es ein echter Code auf einer anderen Liste ist: den Betreffcodes für Bemerkungen aus UNTDID 4451, die BR-CL-08 prüft. Gründe für Zuschläge stammen nur aus UNTDID 7161, und BR-CL-20 wendet dieselbe Liste im Prüfschritt EN 16931 an, daher melden beide Regeln den Wert.

Was die Regel prüft

Nur Zuschläge, deren Indikator der exakte Text true ist, werden erfasst. Im Versuch hielten true mit Leerzeichen und 1, für das Schema beide gültige boolesche Werte, einen Code DEL von dieser Regel fern: BR-CL-20 meldete ihn in beiden Fällen, und PEPPOL-EN16931-R043 fügte für 1 einen Befund hinzu.

Der Code wird um Leerzeichen bereinigt und dann unter Beachtung der Groß- und Kleinschreibung mit den 178 Codes der Liste verglichen, die denen von BR-CL-20 entsprechen.

Zuschläge auf Dokumentenebene und in Positionen werden beide erfasst. Im aufgezeichneten Beispiel zeigt der Befund auf cac:InvoiceLine[1]/cac:AllowanceCharge[2]/cbc:AllowanceChargeReasonCode[1].

Der Code wird nicht mit dem Text des Zuschlags verglichen: In der korrigierten Rechnung bestand DL neben dem Text Example charge.

BegriffBedeutungUBL-Element
BT-105Code für den Grund des Zuschlags auf Dokumentenebenecac:AllowanceCharge/cbc:AllowanceChargeReasonCode
BT-145Code für den Grund des Zuschlags auf Ebene der Rechnungspositioncac:InvoiceLine/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode (cac:CreditNoteLine in a credit note)

Wie es in einer Integration dazu kommt

Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:

  • Ein Code aus einer anderen UN/EDIFACT-Liste wird verwendet, weil er nach der Leistung klingt, etwa DEL aus der Liste der Betreffcodes für einen Lieferzuschlag.
  • Abkürzungen aus dem Quellsystem, etwa FRT für Fracht, werden als Codes geschrieben.
  • Ein Code für Nachlässe wird bei einem Zuschlag gesendet, weil eine Zuordnung beiden dient.
  • Codes werden in Kleinbuchstaben gehalten und unverändert geschrieben.

So korrigieren Sie das Dokument

  1. Ermitteln Sie den Zuschlag anhand der Fundstelle: ein Zuschlag auf Dokumentenebene unter dem Wurzelelement oder ein Zuschlag in einer Position.
  2. Suchen Sie die Leistung in der Peppol-Liste zu UNTDID 7161: DL Delivery, FC Freight service, PC Packing, ABL Additional packaging.
  3. Schreiben Sie den Code in Großbuchstaben in cbc:AllowanceChargeReasonCode, und schreiben Sie cbc:ChargeIndicator als true, damit beide Prüfschritte den Zuschlag sehen.
  4. Führen Sie die Codes für Zuschläge in einer eigenen Tabelle, getrennt von den Codes für Nachlässe und den Betreffcodes für Bemerkungen.

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 Code für den Grund des Positionszuschlags ist DEL

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- note, quantity, amounts, order line reference and line allowance omitted from this fragment -->
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>DEL</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Example charge</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="GBP">0.01</cbc:Amount>
  </cac:AllowanceCharge>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: der Code für den Grund ist DL, Delivery

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- note, quantity, amounts, order line reference and line allowance omitted from this fragment -->
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>DL</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Example charge</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="GBP">0.01</cbc:Amount>
  </cac:AllowanceCharge>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Nur der Code für den Grund des Positionszuschlags unterscheidet sich: DEL in der fehlerhaften Rechnung, DL in der korrigierten. Das fehlerhafte Dokument meldet außerdem BR-CL-20, das dieselbe Liste UNTDID 7161 im Prüfschritt EN 16931 anwendet, am selben Element.

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 Invoice und CreditNote; DEL beim Zuschlag einer Gutschriftposition meldete im Versuch diese Regel und BR-CL-20.
  • Eine Regel aus Peppol BIS Billing 3.0. Nachlässe werden stattdessen von PEPPOL-EN16931-CL002 gegen UNTDID 5189 geprüft.
  • Ob ein Zuschlag überhaupt einen Grund braucht, wird anderswo entschieden: von BR-CO-22 für Zuschläge auf Dokumentenebene und von BR-CO-24 für Zuschläge in Positionen.

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-28.1: Quelle geprüft am 2026-09-28, Erklärung zuletzt aktualisiert am 2026-09-28.

Die offizielle Definition von PEPPOL-EN16931-CL003 (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.