- Thema
- VB.NET
- SDK-Mitglieder
- addItemSpecifiedTradeAllowanceCharge() AddProduct_Comfort() AddTradeAllowanceCharge() AddTradeTax() WriteTotals()
- Business Terms
- BG-21 Zuschläge auf Dokumentenebene BG-28 Zuschläge auf Ebene der Rechnungsposition BT-99 Betrag des Zuschlags auf Dokumentenebene BT-141 Betrag des Zuschlags auf Ebene der Rechnungsposition BT-104 Grund für den Zuschlag auf Dokumentenebene BT-105 Code des Grundes für den Zuschlag auf BT-108 Summe der Zuschläge auf Dokumentenebene BT-131 Nettobetrag der Rechnungsposition
- Codebeispiele
- VB.NET
- Veröffentlicht
Kurz: Frachtkosten („ab Werk“, Lieferung wird extra berechnet) lassen sich in einer E-Rechnung auf drei Wegen abbilden, die alle in EN 16931 und XRechnung erlaubt sind – ein Wechsel ins Profil EXTENDED ist dafür nicht nötig: als eigene Rechnungsposition, als Zuschlag auf die ganze Rechnung (BG-21, Code FC = Frachtkosten) mit AddTradeAllowanceCharge oder als Zuschlag auf die Position (BG-28) mit addItemSpecifiedTradeAllowanceCharge. Bei „frei Bau“ (Lieferung im Preis enthalten) steht einfach der Preis je Tonne in der Position – es gibt nichts Zusätzliches anzugeben.
Andere Begriffe für dasselbe: Versandkosten, Lieferkosten, Fuhrlohn, Anfahrtspauschale, Transportkosten, Frachtzuschlag, Lieferung frei Baustelle, Abholpreis ab Werk, Schüttgut je Tonne mit Fracht.
Auf einen Blick
| Weg | So sieht es aus | SDK-Aufruf | Profil |
|---|---|---|---|
| Frei Bau (Fracht im Preis) | Pos. 1: Schotter 0/32, 25,40 t × 25,30 € | AddProduct_Comfort | EN 16931 / XRechnung |
| Ab Werk – eigene Position | Pos. 1: Schotter 25,40 t × 18,00 € Pos. 2: Frachtkosten Lieferung LS-4711, 1 × 185,00 € | zweimal AddProduct_Comfort | EN 16931 / XRechnung |
| Ab Werk – Zuschlag auf die Rechnung | Pos. 1: Schotter; darunter Zuschlag „Frachtkosten“ 185,00 € | AddTradeAllowanceCharge (BG-21) | EN 16931 / XRechnung |
| Ab Werk – Zuschlag auf die Position | Pos. 1: Schotter 457,20 € + Fracht 185,00 € = 642,20 € | addItemSpecifiedTradeAllowanceCharge (BG-28) | EN 16931 / XRechnung |
Unsere Empfehlung für Lieferungen, die einzeln berechnet werden: die eigene Position. Sie ist für jeden Empfänger und jede Buchhaltung sofort lesbar, trägt die Lieferscheinnummer im Text und braucht keine Zuschlagslogik. Alle vier Varianten haben wir mit dem KoSIT-Validator (XRechnung 3.0.2) geprüft: ohne Fehler.
Variante 1: Fracht als eigene Position
' Pos. 1: Material je Tonne (TNE = Tonne)
alo.AddProduct_Comfort("1", "", "SCH-032", "25.40", "TNE", "Schotter 0/32", "", "", "EUR", "", "TNE", _
False, "", "", "", "18.00", "EUR", "1", "TNE", "VAT", "S", "19.00", "", "457.20", "EUR", "", "")
' Pos. 2: Fracht als Leistung (C62 = Einheit/Stück)
alo.AddProduct_Comfort("2", "", "FRACHT", "1", "C62", "Frachtkosten Lieferung LS-4711", "", "", "EUR", "", "C62", _
False, "", "", "", "185.00", "EUR", "1", "C62", "VAT", "S", "19.00", "", "185.00", "EUR", "", "")
alo.AddTradeTax("122.02", "EUR", "642.20", "EUR", "VAT", "S", "19.00")
alo.WriteTotals("642.20", "764.22", "764.22", "642.20", "122.02")
Die Fracht kann auch je Tonne berechnet werden – dann Menge in TNE und den Frachtsatz als Preis. Statt C62 ist auch H87 (Stück) zulässig; beide stehen in der Liste der Mengeneinheiten.
Variante 2: Zuschlag auf die ganze Rechnung (BG-21)
alo.AddProduct_Comfort("1", "", "SCH-032", "25.40", "TNE", "Schotter 0/32", "", "", "EUR", "", "TNE", _
False, "", "", "", "18.00", "EUR", "1", "TNE", "VAT", "S", "19.00", "", "457.20", "EUR", "", "")
' Zuschlag: ChargeIndicator True, Betrag, Steuer der Fracht, Grund und Code FC (UNTDID 7161)
alo.AddTradeAllowanceCharge(True, "", "EUR", "185.00", "EUR", "VAT", "S", "19.00", "Frachtkosten", "", "FC")
alo.AddTradeTax("122.02", "EUR", "642.20", "EUR", "VAT", "S", "19.00")
' Positionssumme 457,20 – Zuschläge 185,00 (letzter Parameter, BT-108) – Steuerbasis 642,20
alo.WriteTotals("457.20", "764.22", "764.22", "642.20", "122.02", "0.00", "0.00", "0.00", "185.00")
Der Zuschlag braucht eine eigene Steuerkategorie und einen eigenen Steuersatz (BT-102/BT-103) und einen Grund als Text (BT-104) und/oder Code (BT-105). Mehr zu Prozentsatz und Grundcode: Rabatte und Zuschläge: Prozentsatz und Grundcode.
Variante 3: Zuschlag auf die Position (BG-28)
Dim p As Integer = alo.AddProduct_Comfort("1", "", "SCH-032", "25.40", "TNE", "Schotter 0/32", "", "", "EUR", "", "TNE", _
False, "", "", "", "18.00", "EUR", "1", "TNE", "VAT", "S", "19.00", "", "642.20", "EUR", "", "")
' Index der Position (ab 0), Zuschlag, Prozentsatz, Grundbetrag, Betrag, Code, Grund
alo.addItemSpecifiedTradeAllowanceCharge(0, True, "", "", "185.00", "FC", "Frachtkosten Lieferung LS-4711")
alo.AddTradeTax("122.02", "EUR", "642.20", "EUR", "VAT", "S", "19.00")
alo.WriteTotals("642.20", "764.22", "764.22", "642.20", "122.02")
Wichtig: Der Nettobetrag der Position (BT-131) enthält dann den Zuschlag – hier 25,40 × 18,00 + 185,00 = 642,20 €. Der Zuschlag hat in der Position keine eigene Steuer; er gilt mit dem Steuersatz der Position.
Frei Bau: Fracht im Preis
Wird die Lieferung in den Materialpreis eingerechnet, ist die Fracht kein eigener Betrag der Rechnung. Die Position enthält den Preis frei Baustelle; ein Hinweis wie „frei Baustelle“ im Artikeltext genügt. Eine strukturierte Lieferbedingung (Incoterms) gibt es nur im Profil EXTENDED – für eine XRechnung ist sie nicht nötig.
Mehrere Lieferungen auf einer Rechnung
Rechnen Sie mehrere Lieferungen ab, erhält jede Lieferung ihre eigene Frachtposition mit der Lieferscheinnummer im Artikeltext („Frachtkosten Lieferung LS-4711“, „… LS-4712“). Eine Lieferscheinnummer im Rechnungskopf (BT-16, SetDespatchAdviceReferencedDocument) ist nur einmal je Rechnung möglich. Einen Lieferschein je Position (AddDeliveryNoteItem) gibt es nur in EXTENDED – das SDK stellt dann um.
Typische Fehler
AddLogisticsServiceChargeverwendet: Die „Logistikkosten“ gibt es nur in EXTENDED; das SDK stellt die Rechnung darauf um, und viele Empfänger lehnen EXTENDED ab. Verwenden Sie stattdessen einen der drei Wege oben – siehe auch Warum wird meine XRechnung EXTENDED?- Zuschläge in den Summen vergessen: Bei Variante 2 muss der Zuschlag in der Summe der Zuschläge (BT-108) und in der Steuerbasis stehen, bei Variante 3 im Positionsbetrag.
- Grund und Code passen nicht zusammen: Für Fracht den Code
FCaus der UNTDID 7161 verwenden, nicht einen Rabattcode aus der UNTDID 5189. - Fracht ohne Steuer: Die Fracht ist in der Regel eine Nebenleistung und hat denselben Steuersatz wie das Material. Im Zweifel klären Sie das mit Ihrer Steuerberatung.
Häufige Fragen
Brauche ich für Frachtkosten das Profil EXTENDED?
Nein. Eigene Position, Zuschlag auf die Rechnung (BG-21) und Zuschlag auf die Position (BG-28) sind Teil von EN 16931 und XRechnung. Nur AddLogisticsServiceCharge und ein Lieferschein je Position führen zu EXTENDED.
Ist Fracht als eigene Rechnungsposition erlaubt?
Ja. Eine Position darf auch eine Leistung wie Fracht sein, zum Beispiel 1 × 185,00 € mit der Einheit C62 und der Lieferscheinnummer im Text.
Welcher Code steht für Frachtkosten?
Der Zuschlagscode FC (Freight service) aus der UNTDID 7161, zusammen mit einem Grund als Text wie „Frachtkosten“.
Wie bilde ich „frei Bau“ ab?
Mit dem Preis frei Baustelle in der Position, ohne zusätzlichen Betrag. Ein Hinweis „frei Baustelle“ im Artikeltext reicht.
Welche Mengeneinheit nehme ich für Schüttgut und Fracht?
TNE für Tonnen, MTQ für Kubikmeter; für eine Frachtpauschale C62 (Einheit) oder H87 (Stück).
Business Terms in diesem Artikel: BG-21 BG-28 BT-99 BT-141 BT-104 BT-105 BT-108 BT-131 BT-144 BT-145 BT-129 BT-130 BT-146 BT-16