TRADE als Einzelhandels-Warenwirtschaft basiert auf Brutto-Preisen.
Rechnet man von Brutto auf Netto um, entstehen ungerade Cent-Beträge. ZUGFeRD verlangt, dass die Umsatzsteuer auf Basis der Netto-Gesamtsumme berechnet wird.
Da das ZUGFeRD-Datenmodell (basiert auf dem Factur-X / UN/CEFACT Standard) intern strikt auf Nettowerten aufbaut, führt kein Weg an einer präzisen Rundung und Aufteilung vorbei:
1. Einzel-Nettopreis pro Stück: bei 19% MwSt.: Bruttopreis / 1,19 = Netto-Einzelpreis
Dieser Wert wird auf zwei Nachkommastellen gerundet
2. Positions-Nettowert ermitteln: Multiplikation des ermittelten Netto-Einzelpreis mit der Menge der Artikel.
Formel: Netto-Einzelpreis × Menge = Positions-Nettowert (LineTotalAmount)
Rundung: das Ergebnis wird kaufmännisch auf exakt zwei Nachkommastellen gerundet
3. Gesamtsummen der Rechnung: Addition der gerundeten Werte auf der Gesamtebene der Rechnung (HeaderMonetarySummation).
Gesamt-Netto (TaxBasisTotalAmount): Summe aller Positions-Nettowerte.
MwSt.-Betrag (TaxTotalAmount): Gesamt-Netto × Steuersatz (z. B. 0,19).
Kaufmännisch auf zwei Nachkommastellen runden.
Gesamt-Brutto (GrandTotalAmount): Gesamt-Netto + MwSt.-Betrag.
Ein konkretes Rechenbeispiel (19% MwSt.)
Verkauft werden 3,45 Stück eines Artikels für jeweils 10,00 € brutto.
Netto-Einzelpreis: 10,00 € / 1,19 = 8,4034 € (gerundet auf 4 Stellen für die XML)
Positions-Nettowert: 8,4034 € × 3 = 25,2102 € → gerundet 25,21 €
MwSt.-Betrag auf Position: 25,21 € × 0,19 = 4,7899 € → gerundet 4,79 €
Endbetrag (Kontrolle): 25,21 € + 4,79 € = 30,00 € brutto
Netto-Einzelpreis: 10,00 € / 1,19 = 8,40 € (gerundet auf 2 Stellen)
Positions-Nettowert: 8,40 € × 3 = 25,20 €
MwSt.-Betrag auf Position: 25,20 € × 0,19 = 4,7899 € → gerundet auf 2 Stellen 4,79 €
Endbetrag (Kontrolle): 25,20 € + 4,79 € = 20,99 € brutto
Wichtige ZUGFeRD-Besonderheit (Rundungsdifferenzen)Wenn Sie von Brutto auf Netto umrechnen, entstehen ungerade Cent-Beträge. ZUGFeRD verlangt, dass die Umsatzsteuer auf Basis der Netto-Gesamtsumme berechnet wird.Falls sich durch Rundungen eine Differenz von 1 Cent zum ursprünglichen Bruttowert ergibt, müssen Sie diesen Cent-Unterschied über das XML-Feld für Gebühren/Abschläge (AllowanceCharge) ausgleichen oder den Netto-Einzelpreis minimal anpassen, damit die finale XML-Validierung fehlerfrei durchläuft.