Unterstützung von Rabatten, Zu-/Abschlägen
Dieses Dokument soll dazu dienen die Zusammenhänge der plus.e-Invoicing-Konfiguration und dem von der Lösung erzeugten elektronischen Rechnungsdokuments nachvollziehen zu können. Der Fokus soll dabei darauf liegen, wie die in einer Rechnung angegebenen Rabatte, Zu- oder Abschläge in ein elektronisches Rechnungsdokument übernommen werden können.
Die Funktionalität zur Behandlung von Rabatten, sowie Zu- und Abschlägen wurde mit der Version 1.1.4.0 eingeführt.
Motivation/Problembeschreibung
In einer Verkaufsrechnung/-gutschrift können Zeilen vom Typ Zu-/Abschlag (Artikel) hinzugefügt werden. Neben den Zu-/Abschlägen auf Zeileneben (Nummer 1+2, siehe Abb.) ist es außerdem möglich, einen Rabatt in der entsprechenden Artikelzeile (Nummer 3, siehe Abb.), sowie für den gesamten Rechnungsbetrag zu gewähren (Nummer 4, siehe Abb.).
Für die Rabatte/Zu-/Aschläge gilt das folgende:
- 1+2: Der Betrag für einen Zu-/Abschlag auf Zeilenebene kann sowohl positiv (Zuschlag) als auch negativ (Abschlag) sein.
- 3: Der Prozentbetrag für einen Zeilenrabatt muss >= 0 sein. Ein Zuschlag durch Eingabe einer negativen Prozentzahl ist somit nicht möglich
- 4: Der Prozentbetrag für einen Rabatt auf den Rechnungsgesamtbetrag kann sowohl positiv als auch negativ sein. Hierdurch können auch Zuschläge dargestellt werden.
Problem: Eine Übertragung der Zu-/Abschläge auf Zeilenebene in Rechnungszeilen eines elektronischen Rechnungsdokuments wie z.B. Xrechnung ist nicht einfach möglich, da Nettobeträge in Rechnungszeilen nicht negativ sein dürfen. Somit sind Abschläge auf diese Weise nicht übertragbar.
Lösungsansatz: Zu-/Abschläge auf Zeilenebene werden nicht als Rechnungszeilen im resultierenden Rechnungsdokument geführt. Stattdessen werden diese auf Dokumentenebene in das Rechnungsdokument eingefügt.
Spezifikation
Zur korrekten Platzierung der Daten, muss die entsprechende Stelle im resultierenden elektronischen Rechnungsdokument identifiziert werden. Hierzu wurde das Dokument ZUGFeRD-2.1.1 - Spezifikation_TA.pdf der ZUGFeRD 2.1.1 Spezifikation verwendet. Die entsprechende Dokumentation kann hier heruntergeladen werden. Dieses Dokument ist sowohl für das Profil ZUGFeRD 2.1.1 als auch für XRECHNUNG (entspricht EN 16931 (COMFORT)) gültig.
Zu-/Abschläge auf Dokumentenebene:
Gemäß der Spezifikation ergibt sich SpecifiedTradeAllowanceCharge
als passendes Element zur Angabe der Zu-/Abschläge auf Dokumentenebene:
Der komplette Pfad des Elements ergibt sich zu: CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeSettlement/SpecifiedTradeAllowanceCharge
Die Kinderelemente sind die folgenden:
Name des Elements | Beschreibung | Kardinalität |
---|---|---|
ChargeIndicator | Logisches Element zur Platzierung des Indicator Elements | 0..1 |
ChargeIndicator/Indicator | Wert für den Schalter für Zu-/Abschläge. true = Zuschlag und false = Abschlag | 1..1 |
SequenceNumeric | Berechnungsreihenfolge | 0..1 |
CalculationPercent | Der Prozentsatz, der in Verbindung mit dem Grundbetrag des Zu- oder Abschlages auf Dokumentenebene zur Berechnung des Betrags des Abschlages auf Dokumentenebene verwendet werden darf. | 0..1 |
BasisAmount | Der Grundbetrag, der in Verbindung mit dem Prozentsatz des Zu- oder Abschlages auf Dokumentenebene zur Berechnung des Betrags des Abschlages auf Dokumentenebene verwendet werden darf | 0..1 |
BasisQuantity | Basismenge des Rabatts | 0..1 |
BasisQuantity/unitCode | Einheit der Preisbasismenge | required |
ActualAmount | Der Betrag eines Zu- oder Abschlags ohne Umsatzsteuer | 1..1 |
ReasonCode | Der als Code angegebene Grund für den Zu- oder Abschlag auf Dokumentenebene | 0..1 |
Reason | Der in Textform angegebene Grund für den Zu- oder Abschlag auf Dokumentenebene | 0..1 |
CategoryTradeTax | Logisches Element zur Platzierung der Elemente zur MwSt. | 1..1 |
CategoryTradeTax/TradeTax | Code für die Umsatzsteuerkategorie des Zu- oder Abschlages auf Dokumentenebene. Fester Wert = "VAT" | 1..1 |
CategoryTradeTax/CategoryCode | Eine codierte Angabe dazu, welche Umsatzsteuerkategorie für den Zu- oder Abschlag auf Dokumentenebene gilt | 1..1 |
CategoryTradeTax/RateApplicablePercent | Der für den Zu- oder Abschlag auf Dokumentenebene geltende und in Prozent angegebene Umsatzsteuersatz | 0..1 |
Zu-/Abschläge auf Zeilenebene:
Gemäß der Spezifikation ergibt sich AppliedTradeAllowanceCharge
als passendes Element zur Angabe der Zu-/Abschläge auf Zeilenebene:
Der komplette Pfad des Elements ergibt sich zu: CrossIndustryInvoice/SupplyChainTradeTransaction/IncludedSupplyChainTradeLineItem/SpecifiedLineTradeAgreement/GrossPriceProductTradePrice/AppliedTradeAllowanceCharge
Die Kinderelemente sind die folgenden:
Name des Elements | Beschreibung | Kardinalität |
---|---|---|
ChargeIndicator | Logisches Element zur Platzierung des Indicator Elements | 0..1 |
ChargeIndicator/Indicator | Wert für den Schalter für Zu-/Abschläge. true = Zuschlag und false = Abschlag | 1..1 |
CalculationPercent | Rabatt bzw. Zuschlag in Prozent | 0..1 |
BasisAmount | Basisbetrag des Rabatts/Zuschlags | 0..1 |
ActualAmount | Der gesamte zur Berechnung des Nettopreises vom Bruttopreis subtrahierte Rabatt | 1..1 |
Reason | Grund des Zu-/Abschlags | 0..1 |
Notwendige Konfiguration
Im folgenden ist die notwendige Konfiguration zur Unterstützung von Rabatten sowie Zu-/Abschlagszeilen beschrieben.
Rabatt auf Zeilenebene: Für Rabatte auf Zeilenebene ist keine explizite Konfigurationsänderung notwendig, da sich dieser Rabatt auf den Zeilengesamtbetrag überträgt. Soll jedoch auch der Rabatt korrekt für den Nettobetrag eines Artikels übernommen werden, so ist es notwendig die entsprechende Setup-Zeile auf den Zeilentyp Special und den Berechnungstyp auf Artikelnettobetrag einzustellen. Hinweis: Diese Änderungen sind bei Verwendung der Standardkonfiguration automatisch eingetragen.
Rabatt auf Rechnungsebene, Zu-/Abschläge: Sowohl für die Ünterstützung des Rabatts auf Rechnungsebene, sowie für die Unterstützung von Zu-/Abschlägen ist es mindestens notwendig eine neue Setup-Zeile vom Typ AllowanceChargePlaceholder einzufügen. Dies sorgt dafür, dass bei der Erstellung eines elektronischen Rechnungsdokuments kein Fehler auftritt. Zur konformen Unterstützung ist das Hinzufügen von Zeilen des Typs AllowanceCharge, mit entsprechender Angabe der Spezialberechnungsmethode vom Typ AllowanceCharge-*, notwendig. Die Bedeutung dieser Spezialberechnungsmethoden ist im Einrichtungsleitfaden SetupLines genauer beschrieben.
Eine weitere notwendige Änderung ist das Einfügen des Wertes für Basiszeile für Rabatte in den Profileinstellungen. Dies gibt den Names des Elternelementes vor, den der Platzhaltereintrag repräsentiert.
Hinweis: Diese Änderungen sind bei Verwendung der Standardkonfiguration automatisch eingetragen.
Beispiel
Die folgende Abbildung zeigt eine Geb. Verkaufsrechnung mit zwei Artikelzeilen, wovon ein Artikel einen Rabatt von 2% erhält. Zusätzlich wird eine Gebühr für die Fracht erhoben und ein Aktionsrabatt erlassen. Auf den gesamten Rechnungsbetrag wird ein Rabatt von 5% erlassen.
Ein Auszug der resultierenden XRechnung ist hier beispielhaft angeführt. Die interessantesten Stellen sind mit entsprechenden Kommentaren markiert.
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
...
<rsm:SupplyChainTradeTransaction>
<ram:IncludedSupplyChainTradeLineItem>
...
<ram:SpecifiedTradeProduct>
<ram:SellerAssignedID>1896-S</ram:SellerAssignedID>
<ram:Name>ATHENS Schreibtisch</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:GrossPriceProductTradePrice>
<ram:ChargeAmount>1005.80</ram:ChargeAmount>
</ram:GrossPriceProductTradePrice>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>985.69</ram:ChargeAmount> <!-- Artikelpreis abzgl. Zeilenrabatt -->
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="C62">2.00</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
...
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>1971.37</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
...
<ram:ApplicableHeaderTradeAgreement>
...
</ram:ApplicableHeaderTradeAgreement>
<ram:ApplicableHeaderTradeDelivery>
...
</ram:ApplicableHeaderTradeDelivery>
<ram:ApplicableHeaderTradeSettlement>
...
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>405.05</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>2131.82</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<!-- Rabatt auf Rechnungsgesamtbetrag von 5% -->
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator>
<udt:Indicator>false</udt:Indicator>
</ram:ChargeIndicator>
<ram:CalculationPercent>5.00</ram:CalculationPercent>
<ram:ActualAmount>108.25</ram:ActualAmount>
<ram:Reason>Rabatt</ram:Reason>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
<!-- Zuschlag für Frachtkosten -->
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator>
<udt:Indicator>true</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>50.00</ram:ActualAmount>
<ram:Reason>Div. Frachtkosten (Verk.)</ram:Reason>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
<!-- Aktionsrabatt -->
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator>
<udt:Indicator>false</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>25.00</ram:ActualAmount>
<ram:Reason>Aktionsrabatt</ram:Reason>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
...
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>2165.07</ram:LineTotalAmount>
<ram:ChargeTotalAmount>50.00</ram:ChargeTotalAmount>
<ram:AllowanceTotalAmount>133.25</ram:AllowanceTotalAmount>
<ram:TaxBasisTotalAmount>2081.82</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">395.55</ram:TaxTotalAmount>
<ram:GrandTotalAmount>2477.37</ram:GrandTotalAmount>
<ram:DuePayableAmount>2477.37</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>