News
May 22, 2025

Neue XSD Schemata für ZUGFeRD 2.3.3 & XRechnung 3.0.2

Die neue ZUGFeRD-Version 2.3.3 ist jetzt für XML Update Professional-Abonnenten verfügbar. Wir haben auch eine Verbesserung der zeilenbasierten Diskontierung für das ZUGFeRD-Format und das XRechnung-Format und eine Verbesserung der allgemeinen Rechnungsdiskontierung für das ZUGFeRD-Format und das XRechnung-Format eingeführt.

XSD - Updates

 

  1. Neue ZUGFeRD-Version 2.3.3
  2. Verbesserung der zeilenbasierten Rabattierung für das ZUGFeRD-Format und das XRechnung-Format
  3. Verbesserung der allgemeinen Rechnungsrabattierung für das ZUGFeRD-Format und das XRechnung-Format

 

Zu Punkt 1) Neue ZUGFeRD-Version 2.3.3

 

Mitte des zweiten Quartals wurde die neue ZUGFeRD-Version 2.3.3 von der AWV released. In dieser Version gab es keine funktionalen Änderungen, sondern es wurde sich hauptsächlich um BUG-Fixes gekümmert bei den Beispiel-Dateien gekümmert, so dass es keinen direkten und akuten Handlungsbedarf gab bzw. gibt.

 

Zu Punkt 2) Verbesserung der zeilenbasierten Rabattierung für das ZUGFeRD-Format und das XRechnungsformat

 

Obwohl es mit der neuen ZUGFeRD-Version keine funktionalen Verbesserung gibt, haben wir dies als Anlass genommen, um uns auf Wunsch verschiedener Partner, die Rabattierung zu überarbeiten.

 

Folgende Knoten sind betroffen:

  • BT-146 Nettopreis des Artikels = Zeilenbetrag dividiert durch die Menge (Hier wird direkt der rabattierte Gesamtwert genutzt um den rabattierten Nettoeinzelpreis zu ermitteln (P-S-I-LINE_NET-PRICE-CHARGE-AMOUNT).
  • BG-27 Abschläge auf Ebene der Rechnungsposition = Dieser Knoten wird zukünftig nur noch erstellt wenn die Erstellungsbedingung einen positiven Wert zurückgibt (CHECK-P-S-I-LINE_DISCOUNT-TRUE/CHECK-P-S-CM-LINE_DISCOUNT-TRUE/CHECK-P-P-I-LINE_DISCOUNT-TRUE/CHECK-P-P-CM-LINE_DISCOUNT-TRUE)
  • BG-27-1 Indikator für Abschlag, Wert = Steht bei einer Rabattierung auf "false" (P-S-I-LINE_ALLOWANCE-CHARGE-INDICATOR/P-S-CM-LINE_ALLOWANCE-CHARGE-INDICATOR/P-P-I-LINE_ALLOWANCE-CHARGE-INDICATOR/P-P-CM-LINE_ALLOWANCE-CHARGE-INDICATOR)
  • BT-138 Prozentualer Abschlag auf Ebene der Rechnungsposition = In diesem Knoten wird der Zeilenrabatt % zurückgegeben. (P-S-I-LINE_ALLOWANCE-CALC-PERCENT/P-S-CM-LINE_ALLOWANCE-CALC-PERCENT/P-P-I-LINE_ALLOWANCE-CALC-PERCENT/P-P-CM-LINE_ALLOWANCE-CALC-PERCENT).
  • BT-137 Grundbetrag des Abschlags auf Ebene der Rechnungsposition = In diesem Knoten wird die Bemessungsgrundlage für den Zeilenrabatt errechnet. Wir nutzen dafür den Zeilenbetrag und addieren den Zeilenrabattbetrag hinzu. (P-S-I-LINE-DISCOUNT-BASIS-NET-AMOUNT/P-S-CM-LINE-DISCOUNT-BASIS-NET-AMOUNT/P-P-I-LINE-DISCOUNT-BASIS-NET-AMOUNT/P-P-CM-LINE-DISCOUNT-BASIS-NET-AMOUNT)
  • BT-136 Betrag des Abschlags auf Ebene der Rechnungsposition = In diesem Knoten wird der Zeilenrabattbetrag zurückgegeben. In unseren Tests hat sich herausgestellt, dass wir ein Data-Mapping besser nutzen sollten, wenn es unterschiedliche Rabattierungen gibt. Aus diesem Grund filtern wir in dem Data-Mapping nochmal auf die richtige Zeile ab. (P-S-I-LINE_ALLOWANCE_DISCOUNT-AMOUNT/P-S-CM-LINE_ALLOWANCE_DISCOUNT-AMOUNT/P-P-I-LINE_ALLOWANCE_DISCOUNT-AMOUNT/P-P-CM-LINE_ALLOWANCE_DISCOUNT-AMOUNT)
  • BT-139 Grund für den Abschlag auf Ebene der Rechnungsposition = Dies ist ein statischer Wert, der in allen XSD-Schemata gleich ist bei einem Rabatt. (P-S-I-LINE_DISCOUNT-REASON/P-S-CM-LINE_DISCOUNT-REASON/P-P-I-LINE_DISCOUNT-REASON/P-P-CM-LINE_DISCOUNT-REASON)
  • BT-131 Nettobetrag der Rechnungsposition = Dieser Knoten wird mit dem Zeilenbetrag gefüllt. (P-S-I-LINE_LINETOTALAMOUNT/P-S-CM-LINE_LINETOTALAMOUNT/P-P-I-LINE_LINETOTALAMOUNT/P-P-CM-LINE_LINETOTALAMOUNT)

Zu Punkt 3) Verbesserung der allgemeinen Rechnungsrabattierung für das ZUGFeRD-Format und das XRechnungsformat

 

Wie auf der Zeilenebene mussten wir auf Kopfebene viele Anpassungen und Änderungen vornehmen.

  • BG-20 Abschläge auf Dokumentenebene = Für diesen Knoten gibt es zwei Besonderheiten. 1. Filterung nach MwSt-Prozentsatz. (P-S-I-HEADER_GROUP_LINE_VAT/P-S-CM-HEADER_GROUP_LINE_VAT/P-P-I-HEADER_GROUP_LINE_VAT/P-P-CM-HEADER_GROUP_LINE_VAT) 2. Erstellungsbedingung. Wie bereits auf der Zeilenebene wird dieser Knoten nur erstellt, wenn es eine Rabattierung auf Dokumentenebene gibt - Feld: Rechnungsrabattbetrag >0. (CHECK_P-S-I-HEADER_INVOICE-DISCOUNT/CHECK_P-S-CM-HEADER_INVOICE-DISCOUNT/CHECK_P-P-I-HEADER_INVOICE-DISCOUNT/CHECK_P-P-CM-HEADER_INVOICE-DISCOUNT) 
  • BG-20-1 Indikator für Abschlag, Wert = Steht bei einer Rabattierung auf "false" (P-S-I-LINE_ALLOWANCE-CHARGE-INDICATOR/P-S-CM-LINE_ALLOWANCE-CHARGE-INDICATOR/P-P-I-LINE_ALLOWANCE-CHARGE-INDICATOR/P-P-CM-LINE_ALLOWANCE-CHARGE-INDICATOR)
  • BT-93 Grundbetrag des Abschlags auf Dokumentenebene = Durch die Abfilterung auf die MwSt-Prozentsätze werden direkt auf die Zeilen geleitet, sodass wir den Zeilenbetrag zurückgeben können (P-S-I-LINE_INVOICE-DISCOUNT-BASIS-AMOUNT/P-S-I-LINE_INVOICE-DISCOUNT-BASIS-AMOUNT/P-P-I-LINE_INVOICE-DISCOUNT-BASIS-AMOUNT/P-P-CM-LINE_INVOICE-DISCOUNT-BASIS-AMOUNT)
  • BT-92 Betrag des Abschlags auf Dokumentenebene = In diesem Knoten wird der Rechnungsrabattbetrag zurückgegeben. (P-S-I-LINE_INVOICE-DISCOUNT/P-S-CM-LINE_INVOICE-DISCOUNT/P-P-I-LINE_INVOICE-DISCOUNT/P-P-CM-LINE_INVOICE-DISCOUNT)
  • BT-97 Grund für den Abschlag auf Dokumentenebene = Wie im Knoten BT-139 handelt es sich hier um einen statischen Wert.
  • BT-95-0 Art der Steuer (Code) = Es handelt sich hierbei um einen statischen Wert "VAT". Dieser Knoten wird in allen XSD-Schemata genutzt.
  • BT-95 Code für die Umsatzsteuerkategorie des Abschlages auf Dokumentenebene = In diesem Knoten geben wir die entsprechende Steuerkategorie aus der MwSt.-Buchungsmatrix-Einrichtung zurück. Dies ist durch ein Data-Mapping möglich, indem wir über die beiden Felder "MwSt.-Geschäftsbuchungsgruppe" und "MwSt.-Produktbuchungsgruppe" abfiltern.
  • BT-96 Umsatzsteuersatz für den Abschlag auf Dokumentenebene = In diesem Knoten wir der MwSt-Prozentsatz zurückgegeben.
  • BT-106 Summe der Nettobeträge aller Rechnungspositionen = Aufgrund der Thematik rund um die Rabattierung mussten wir diesen Standard-Knoten erweitern. Wir arbeiten jetzt mit einem Data-Mapping, indem wir vom Kopf auf die Zeilen springen müssen, um von dort die Summe aus alle Beträgen und Rechnungsrabattbeträgen zuerrechnen. (P-S-I-HEADER_LINETOTALAMOUNT/P-S-CM-HEADER_LINETOTALAMOUNT/P-P-I-HEADER_LINETOTALAMOUNT/P-P-CM-HEADER_LINETOTALAMOUNT)
  • BT-108 Summe der Zuschläge auf Dokumentenebene = Dieses Feld ist aktuell noch ein statisches Feld und wir mit 0 gefüllt. In einer der nächsten XSD-Setup-Dateien, wird es eine Ergänzung geben für den BC-Standard.
  • BT-107 Summe der Abschläge auf Dokumentenebene = Hier wird das Feld "Rechnungsrab.-Betrag" genutzt, um die Rabattierung auf Dokumentenebene wiederzugeben. (P-S-I-HEADER_ALLOWANCE-TOTAL-AMOUNT/P-S-CM-HEADER_ALLOWANCE-TOTAL-AMOUNT/P-P-I-HEADER_ALLOWANCE-TOTAL-AMOUNT/P-P-CM-HEADER_ALLOWANCE-TOTAL-AMOUNT)
  • BT-109 Rechnungsgesamtbetrag ohne Umsatzsteuer = Dieser Knoten wird mit Netto-Rechnungsbetrag gefüllt - wir nutzen dafür das Feld "Betrag". (P-S-I-HEADER_TAX-BASIS-TOTAL-AMOUNT/P-S-CM-HEADER_TAX-BASIS-TOTAL-AMOUNT/P-P-I-HEADER_TAX-BASIS-TOTAL-AMOUNT/P-P-CM-HEADER_TAX-BASIS-TOTAL-AMOUNT)
  • BT-111 Steuergesamtbetrag in Buchungswährung = In diesem Knoten wird die Steuer angegeben. Hierzu nehmen wir das Feld "Betrag inkl MwSt." und subtrahieren es mit dem Feld "Betrag". (P-S-I-HEADER_CALCULATETAXTOTALVATAMOUNT/P-S-CM-HEADER_CALCULATETAXTOTALVATAMOUNT/P-P-I-HEADER_CALCULATETAXTOTALVATAMOUNT/P-P-CM-HEADER_CALCULATETAXTOTALVATAMOUNT)
  • BT-112 Rechnungsgesamtbetrag einschließlich Umsatzsteuer = Dieser Knoten wird mit dem Bruttobetrag gefüllt - Feld "Betrag inkl. MwSt.". (P-S-I-HEADER_GRANDTOTALAMOUNT/P-S-CM-HEADER_GRANDTOTALAMOUNT/P-P-I-HEADER_GRANDTOTALAMOUNT/P-P-CM-HEADER_GRANDTOTALAMOUNT)
  • BT-115 Fälliger Zahlungsbetrag = Dieser Knoten wird mit dem Bruttobetrag gefüllt - Feld "Betrag inkl. MwSt.". (P-S-I-HEADER_GRANDTOTALAMOUNT/P-S-CM-HEADER_GRANDTOTALAMOUNT/P-P-I-HEADER_GRANDTOTALAMOUNT/P-P-CM-HEADER_GRANDTOTALAMOUNT)

Für das XRechnungsformat sind die gleichen Anpassungen vorgenommen worden mit einer kleinen zusätzlichen Ergänzung:

  • BT-101 Prozentsatz des Zuschlags auf Dokumentenebene = In diesem Knoten wird verlangt Prozentsatz der Rabattierung auf Dokumentenebene mitzugeben. Dies war leider nicht so einfach, weil wir in BC kein entsprechendes Feld dafür haben, weshalb wir gezwungen waren ein Data-Mapping zu erstellen, indem wir diesen Wert errechnen. (P-S-I-LINE_INVOICE-DISCOUNT-PERCENTAGE/P-S-CM-LINE_INVOICE-DISCOUNT-PERCENTAGE/P-P-I-LINE_INVOICE-DISCOUNT-PERCENTAGE/P-P-CM-LINE_INVOICE-DISCOUNT-PERCENTAGE)