Zum Inhalt springen

Ironfang Finance - Regelreferenz

PEPPOL-EN16931-CL002: Einen der 19 Codes aus UNTDID 5189 von Peppol als Code für den Grund des Nachlasses verwenden

Bei einem mit false gekennzeichneten Nachlass muss cbc:AllowanceChargeReasonCode einer der 19 Codes aus UNTDID 5189 sein, die Peppol auflistet, etwa 95. Ein aufgefülltes 095 scheitert.

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

Auf dieser Seite

Die kurze Antwort

PEPPOL-EN16931-CL002 schlägt fehl, wenn cbc:AllowanceChargeReasonCode in einem Nachlass, dessen cbc:ChargeIndicator genau false lautet, keiner der 19 Codes der Peppol-Liste zu UNTDID 5189 ist. Im aufgezeichneten Beispiel wurde der Nachlass einer Position als 095 gesendet; der Code lautet 95, ohne Auffüllung.

Die Peppol-Liste und die Liste, die BR-CL-19 im Prüfschritt EN 16931 prüft, sind identisch, sodass ein falscher Code in der Regel von beiden gemeldet wird. Sie unterscheiden sich darin, welche Nachlässe sie betrachten: Diese Regel sieht nur einen Indikator, der als exakter Text false geschrieben ist.

Was die Regel prüft

Der Nachlass wird am Text von cbc:ChargeIndicator erkannt, der exakt mit false verglichen wird. Im Versuch nahm false mit umgebenden Leerzeichen, das das Schema akzeptiert, den Nachlass aus dieser Regel heraus: Ein falscher Code dort wurde nur von BR-CL-19 gemeldet.

Ein Indikator 0 ist ebenfalls ein gültiger boolescher Wert des Schemas, aber nicht der Text false. Im Versuch mit dem Code 095 meldete er BR-CL-19 und PEPPOL-EN16931-R043, das nur true oder false akzeptiert, nicht aber diese Regel.

Der Code wird vor dem Vergleich um Leerzeichen bereinigt, und der Rest muss genau einem gelisteten Code entsprechen; eine führende Null ergibt einen anderen Wert, wie 095 zeigt.

Die Fundstelle des Befunds sagt, welcher Nachlass den Code trägt: im aufgezeichneten Beispiel der erste cac:AllowanceCharge der ersten Rechnungsposition.

BegriffBedeutungUBL-Element
BT-98Code für den Grund des Nachlasses auf Dokumentenebenecac:AllowanceCharge/cbc:AllowanceChargeReasonCode
BT-140Code für den Grund des Nachlasses 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:

  • Codes werden auf eine feste Breite von drei Ziffern formatiert, damit 100 bis 105 mit den übrigen fluchten, wodurch aus 95 ein 095 wird.
  • Codes werden als Zahlen gespeichert und mit einem Anzeigeformat ausgegeben, das sie auffüllt.
  • Ein Code für Zuschläge oder eine interne Rabattart wird bei einem Nachlass geschrieben.
  • Eine für Nachlässe und Zuschläge gemeinsame Zuordnung gibt einem Rabatt einen Code aus UNTDID 7161.

So korrigieren Sie das Dokument

  1. Ermitteln Sie anhand der Fundstelle den Nachlass und den Rabatt, aus dem er stammt.
  2. Nehmen Sie den Code aus der Peppol-Liste zu UNTDID 5189 und schreiben Sie ihn als Text ohne führende Nullen: 95 Discount, 100 Special rebate, 41 Bonus for works ahead of schedule.
  3. Schreiben Sie cbc:ChargeIndicator bei jedem Nachlass als einfachen Text false, damit beide Prüfschritte dieselben Prüfungen anwenden.
  4. Passt kein Code, senden Sie nur cbc:AllowanceChargeReason.

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 Positionsnachlasses ist auf 095 aufgefüllt

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- note, quantity, amounts and order line reference omitted from this fragment -->
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>095</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
    <cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
    <cbc:Amount currencyID="GBP">2.00</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
  <!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: der Code für den Grund ist 95, Discount

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- note, quantity, amounts and order line reference omitted from this fragment -->
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
    <cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
    <cbc:Amount currencyID="GBP">2.00</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
  <!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>

Nur der Code für den Grund des Positionsnachlasses unterscheidet sich: 095 in der fehlerhaften Rechnung, 95 in der korrigierten. Das fehlerhafte Dokument meldet außerdem BR-CL-19, die Prüfung desselben Codes gegen dieselbe Liste im Prüfschritt EN 16931, 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; im Versuch meldete 095 beim Nachlass einer Gutschriftposition diese Regel und BR-CL-19.
  • Eine Regel aus Peppol BIS Billing 3.0. Ist der Indikator als false geschrieben, meldet sie nie ohne BR-CL-19, da die Listen übereinstimmen, während BR-CL-19 allein melden kann, wenn der Indikator anders geschrieben ist.
  • Zuschläge werden von PEPPOL-EN16931-CL003, der passenden Regel für einen Indikator true, gegen UNTDID 7161 geprüft.

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-CL002 (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.