- Thema
- Fragen und Antworten
- SDK-Mitglieder
- AddTradeAllowanceCharge()
- Business Terms
- BG-21 Zuschläge auf Dokumentenebene BG-20 Abschläge auf Dokumentenebene BT-99 Betrag des Zuschlags auf Dokumentenebene BT-108 Summe der Zuschläge auf Dokumentenebene BT-92 Betrag des Abschlags auf Dokumentenebene BT-100 Grundbetrag des Zuschlags auf Dokumentenebene BT-101 Prozentsatz des Zuschlags auf Dokumentenebene BT-104 Grund für den Zuschlag auf Dokumentenebene
- Codebeispiele
- XML
- Veröffentlicht
Kurz: Ein Zuschlag auf Rechnungsebene gehört in die Gruppe BG-21 und wird allein über den ChargeIndicator = true gekennzeichnet. Der Betrag bleibt dabei immer positiv. Wird der Zuschlag stattdessen als Abschlag (BG-20, ChargeIndicator = false) mit negativem Betrag angelegt, erscheint er in der Rechnung als Nachlass – und eine strenge XRechnung-/KoSIT-Prüfung weist die Datei zurück.
Das Symptom
Auf dem sichtbaren Beleg ist ein Zuschlag ausgewiesen (z. B. „Allgemeine Geschäftskosten 12 %“, der die Summe erhöht), im XML steht aber:
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>-71.62</ram:ActualAmount>
<ram:Reason>Allgemeine Geschäftskosten</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
false bedeutet Abschlag (Nachlass), nicht Zuschlag – deshalb wird der Posten als Nachlass angezeigt.
Zwei Fehler auf einmal
- Falscher Indikator:
ChargeIndicator = falsesteht für einen Abschlag (BG-20). Ein Zuschlag brauchttrue(BG-21). - Negativer Betrag: In der EN 16931 sind alle Beträge positiv. Das Vorzeichen ergibt sich ausschließlich aus dem ChargeIndicator, nie aus einem Minus. Ein negativer
ActualAmountist nicht zulässig.
Weil der Posten als Abschlag läuft, wird oft zusätzlich die Summe der Positionsnettobeträge (BT-106) künstlich erhöht, damit die Kopfsummen aufgehen. Dann stimmt BT-106 nicht mehr mit der Summe der Positionen überein und die Regel BR-CO-10 schlägt an. Der Rechnungsendbetrag ist zwar richtig, die Struktur aber nicht prüffähig.
So kodieren Sie einen Zuschlag richtig (BG-21)
| Parameter | Business Term | Wert im Beispiel |
|---|---|---|
| ChargeIndicator | true = Zuschlag (BG-21) | True |
| BasisAmount | BT-100 | 596.80 |
| ActualAmount | BT-99 (positiv) | 71.62 |
| CalculationPercent | BT-101 | 12.00 |
| Steuerart / Kategorie / Satz | VAT / S / 19 | VAT / S / 19.00 |
| Grund / Grundcode | BT-104 / BT-105 (UNTDID 7161) | Allgemeine Geschäftskosten |
Mit dem Aloaha ZUGFeRD SDK:
' Zuschlag 12 % auf 596,80 EUR (Allgemeine Geschäftskosten)
alo.AddTradeAllowanceCharge(True, "596.80", "EUR", "71.62", "EUR", _
"VAT", "S", "19.00", "Allgemeine Geschäftskosten", "12.00")
COM/VBA/VB6: alo.AddTradeAllowanceCharge True, "596.80", "EUR", "71.62", "EUR", "VAT", "S", "19.00", "Allgemeine Geschäftskosten", "12.00"
Was dann in den Summen steht
Der Zuschlagsbetrag erscheint in BT-108 (ChargeTotalAmount), nicht in BT-107. BT-106 bleibt die echte Summe der Positionen:
- BT-106 (Summe Positionen) = 596,80 €
- BT-107 (Summe Abschläge) = 0,00 €
- BT-108 (Summe Zuschläge) = 71,62 €
- BT-109 (Steuerbasis) = 596,80 − 0,00 + 71,62 = 668,42 €
- 19 % USt = 127,00 € → Endbetrag 795,42 €
Gleicher Rechnungsbetrag wie zuvor, aber eine saubere Struktur, die der KoSIT-Validator annimmt. Prozentsatz und Grundcode behandelt der Artikel Rabatte und Zuschläge: Prozentsatz und Grundcode; die Prüfung selbst zeigt E-Rechnung im SDK prüfen.
Häufige Fragen
Warum erscheint mein Zuschlag als Nachlass?
Weil er mit ChargeIndicator = false kodiert ist. false steht für einen Abschlag (Nachlass, BG-20), true für einen Zuschlag (BG-21). Prüfen Sie den Indikator des Postens.
Darf der Betrag eines Zuschlags negativ sein?
Nein. In der EN 16931 sind alle Beträge positiv. Ob es ein Ab- oder Zuschlag ist, entscheidet allein der ChargeIndicator, nicht das Vorzeichen. Ein negativer Betrag führt zur Ablehnung durch den Validator.
Worin unterscheiden sich BG-20 und BG-21?
BG-20 sind Abschläge (Nachlässe) auf Rechnungsebene, BG-21 sind Zuschläge. Beide nutzen dieselbe Funktion AddTradeAllowanceCharge; nur der ChargeIndicator (false bzw. true) unterscheidet sie.
Muss ich die Positionssumme (BT-106) anpassen, wenn ich einen Zuschlag habe?
Nein. BT-106 ist immer die Summe der Positionsnettobeträge. Der Zuschlag kommt getrennt in BT-108 dazu; die Steuerbasis BT-109 ergibt sich aus BT-106 − BT-107 + BT-108.
Business Terms in diesem Artikel: BG-21 BG-20 BT-99 BT-108 BT-92 BT-100 BT-101 BT-104 BT-105 BT-106 BT-107 BT-109