Zum Hauptinhalt springen
csv2zugferd

docs

BT-152 Umsatzsteuersatz je Position in ZUGFeRD richtig mappen

BT-152 ist der Umsatzsteuersatz je Position in ZUGFeRD und XRechnung. So mappen Sie ihn in csv2zugferd auf lineItems.fields.taxPercent – mit CSV-Beispiel und typischen Fehlern.

BT-152 ist der Umsatzsteuersatz je Position – der Prozentsatz, mit dem eine einzelne Rechnungsposition besteuert wird. In csv2zugferd mappen Sie ihn auf lineItems.fields.taxPercent. Er ist die Grundlage für korrekte Steuersummen und MwSt-Gruppen.

Was ist BT-152?
#

BT-152 (Invoiced item VAT rate) gibt den Umsatzsteuersatz der Position als Prozentzahl an, etwa 19 oder 7. Zusammen mit der Steuerkategorie (taxCategoryCode, z. B. S für den Standardsatz) bestimmt er, wie die Position in den Steuergruppen der Rechnung verrechnet wird.

Pflicht oder optional?
#

Faktisch erforderlich. Für steuerpflichtige Positionen (Kategorie S) muss ein Steuersatz angegeben sein, damit Steuerbasis und MwSt-Beträge berechnet werden können. Fehlt BT-152, sind die Summen nicht ableitbar und die Rechnung nicht konform.

YAML-Key in csv2zugferd
#

lineItems:
  fields:
    taxPercent:
      column: "INVOICE_TAX"
  fixedFields:
    taxType:
      value: "VAT"
    taxCategoryCode:
      value: "S"

taxPercent entspricht BT-152. taxCategoryCode (Steuerkategorie) und taxType ergänzen den Satz fachlich konsistent.

CSV-Beispiel
#

PRODUCT_NAME_0INVOICE_TAX
Demo Software 9 Light Lizenz19.00

INVOICE_TAX (19.00) wird auf BT-152 gemappt. Im Beispiel ist es eine globale Spalte: Der Wert steht einmal in der CSV und gilt für jede erzeugte Position.

So landet der Wert im ZUGFeRD-XML
#

taxPercent wird je Position als anzuwendender Steuersatz (ApplicableTradeTaxRateApplicablePercent) geschrieben und steuert die Zuordnung zu den MwSt-Gruppen sowie die Berechnung der Steuerbeträge.

Typischer Fehler
#

  • Globaler Steuersatz fälschlich positionsbezogen erwartet – oder umgekehrt: ein positionsbezogener Satz wird global gesetzt, obwohl Positionen unterschiedlich besteuert sind.
  • Falsches Dezimalformat – etwa 0,19 statt 19, wodurch die Steuersummen um den Faktor 100 daneben liegen.
  • Steuerkategorie und Steuersatz inkonsistent – z. B. Kategorie Z (Nullsatz) mit einem Satz von 19.

Praxishinweis für csv2zugferd
#

Haben alle Positionen denselben Satz, genügt eine globale Spalte wie INVOICE_TAX in fields.taxPercent. Bei gemischten Sätzen muss taxPercent aus einer positionsbezogenen Spalte (TAX_0, TAX_1, …) kommen und zur jeweiligen taxCategoryCode passen.

Weiterführende Links#

Häufige Fragen

Wird BT-152 pro Position oder pro Rechnung gesetzt?

BT-152 ist der Umsatzsteuersatz je Rechnungsposition. In csv2zugferd kann er aus einer positionsbezogenen Spalte oder – wenn alle Positionen denselben Satz haben – aus einer globalen CSV-Spalte wie INVOICE_TAX kommen.

In welchem Format muss der Steuersatz in der CSV stehen?

Als Prozentzahl ohne Prozentzeichen, etwa 19 oder 19.00, mit dem in csv.decimalSeparator konfigurierten Dezimaltrennzeichen. 0,19 statt 19 ist ein häufiger Fehler und führt zu falschen Steuersummen.