> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# USt-IdNr. abfragen

> Wie Sie in WEBSALE V8s die Umsatzsteuer-Identifikationsnummer bei Rechnungs- und Lieferadresse abfragen, syntaktisch prüfen lassen und daran die Mehrwertsteuerbefreiung knüpfen.

Geschäftskunden aus dem EU-Ausland erwarten, dass sie ohne deutsche Mehrwertsteuer bestellen können. Dafür brauchen Sie ihre Umsatzsteuer-Identifikationsnummer, und zwar in einer Form, die sich weiterverarbeiten lässt.

WEBSALE V8s nimmt die Nummer entgegen und prüft sie syntaktisch, länderabhängig und für die gesamte Europäische Union. Grundlage sind die Vorgaben des Bundeszentralamts für Steuern. Auf Wunsch entfällt bei einer syntaktisch korrekten Nummer die deutsche Mehrwertsteuer.

> [!WARNING]
>
> Die Prüfung ist eine reine Syntaxprüfung. Sie stellt fest, ob die Nummer dem Aufbau des jeweiligen Landes entspricht, nicht ob sie vergeben und gültig ist. Eine erfundene Nummer mit richtigem Aufbau besteht die Prüfung.

## Bei der Rechnungsadresse

Für die Rechnungsadresse gibt es ein eigenes Feld namens `TaxID`.

### Schritt 1: Feld anlegen

Ein Adressfeld ist aktiv, sobald hinter dem Gleichheitszeichen ein Wert steht. Dieser Wert dient zugleich als Beschriftung im Shop.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<AddressFields-Txt>
   TaxID = Umsatzsteueridentifikationsnummer (USt-IdNr.)
</AddressFields-Txt>
```

Referenz: [Abschnitt AddressFields-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md#addressfields-txt)

### Schritt 2: Pflichtfeld festlegen

Soll die Eingabe freiwillig bleiben, überspringen Sie diesen Schritt.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<InputCheck>
   <ErrorMessages>
      EmptyTaxIDError = Bitte füllen Sie das Feld "~FieldName~" aus.
   </ErrorMessages>

   <+InputCheck>
      AddressField   = TaxID
      AddressType    = bill
      Type           = minlen
      Len            = 1
      ErrorMessageID = EmptyTaxIDError
   </+InputCheck>
</InputCheck>
```

Fehlermeldungen definieren Sie einmal im Unterabschnitt `<ErrorMessages>` und beziehen sich danach über `ErrorMessageID` darauf. Der Platzhalter `~FieldName~` setzt die Beschriftung des betroffenen Feldes ein, sodass dieselbe Meldung für mehrere Felder taugt.

Referenz: [Abschnitt InputCheck](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md#inputcheck)

### Schritt 3: Zeichenzahl begrenzen

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<AddressMaxInputLen>
   TaxID = 15
</AddressMaxInputLen>
```

Referenz: [Abschnitt AddressMaxInputLen](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md#addressmaxinputlen)

### Schritt 4: Eingabefeld einbauen

Das Feld gehört in das Formular auf beiden Templates, die eine Rechnungsadresse entgegennehmen: `ws_address_combined.htm` im Bestellablauf und `ws_address_manage.htm` im Kundenkonto.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-TaxID_visible}
   <label for="~A-TaxID_input~">~A-TaxID_text~ {A-TaxID_required}*{/A-TaxID_required}</label>
   <input type="text" name="~A-TaxID_input~" id="~A-TaxID_input~"
      maxlength="~A-TaxID_max~" value="~A-TaxID~" class="input~A-TaxID_error~">
   {A-TaxID_errormessage}~A-TaxID_errormessage~{/A-TaxID_errormessage}
{/A-TaxID_visible}
```

### Schritt 5: Eingabe anzeigen

Zeigen Sie die eingegebene Nummer dort, wo der Käufer seine Angaben noch einmal prüft: auf der Bestellübersicht (`ws_place_order.htm`) und in der Bestelleingangsbestätigung (`ws_confirm.htm`).

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{A-TaxID}
   ~A-TaxID_text~: ~A-TaxID~
{/A-TaxID}
```

Die Klammerung sorgt dafür, dass bei leerer Eingabe keine Beschriftung ohne Wert stehen bleibt.

## Bei der Lieferadresse

> [!WARNING]
>
> Für die Lieferadresse gibt es **kein** Feld `TaxID`. Verwenden Sie dafür eines der freien Suffix-Felder. Die folgenden Beispiele nutzen `Suffix45`.

Die Einrichtung entspricht der Rechnungsadresse, nur mit `Suffix45` statt `TaxID` und `delivery` statt `bill`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<DeliveryAddressFields-Txt>
   Suffix45 = Umsatzsteueridentifikationsnummer (USt-IdNr.)
</DeliveryAddressFields-Txt>
```

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<InputCheck>
   <ErrorMessages>
      EmptyTaxIDError = Bitte füllen Sie das Feld "~FieldName~" aus.
   </ErrorMessages>

   <+InputCheck>
      AddressField   = Suffix45
      AddressType    = delivery
      Type           = minlen
      Len            = 1
      ErrorMessageID = EmptyTaxIDError
   </+InputCheck>
</InputCheck>
```

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<AddressMaxInputLen>
   Suffix45 = 15
</AddressMaxInputLen>
```

Im Template setzen Sie das Feld mit `D-`-Tags, auf `ws_address_combined.htm` und `ws_deliv_address_manage.htm`:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{D-Suffix45_visible}
   <label for="~D-Suffix45_input~">~D-Suffix45_text~ {D-Suffix45_required}*{/D-Suffix45_required}</label>
   <input type="text" name="~D-Suffix45_input~" id="~D-Suffix45_input~"
      maxlength="~D-Suffix45_max~" value="~D-Suffix45~" class="input~D-Suffix45_error~">
   {D-Suffix45_errormessage}~D-Suffix45_errormessage~{/D-Suffix45_errormessage}
{/D-Suffix45_visible}
```

Die Anzeige auf Bestellübersicht und Bestätigung folgt demselben Muster wie bei der Rechnungsadresse:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{D-Suffix45}
   ~D-Suffix45_text~: ~D-Suffix45~
{/D-Suffix45}
```

Notieren Sie sich, welches Suffix-Feld Sie gewählt haben. Der Shop kennt für dieses Feld keine besondere Bedeutung, Sie teilen sie ihm im nächsten Abschnitt ausdrücklich mit.

### Mehrwertsteuerbefreiung an die Lieferadresse knüpfen

Soll sich die Befreiung nach der Nummer in der Lieferadresse richten statt nach der in der Rechnungsadresse, teilen Sie dem Shop im Abschnitt `<VAT>` mit, welches Suffix-Feld die Nummer enthält.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<VAT>
   TaxFree4TaxID-DeliveryDependent   = yes
   TaxFree4TaxID-DelivAddrTaxIDField = Suffix45
</VAT>
```

Referenz: [Abschnitt VAT](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/preise-steuern-und-waehrung.md#vat) · Wegweiser: [Mehrwertsteuer](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/preise-steuern-und-waehrung.md#mehrwertsteuer)

## Nur bei Firmenkunden abfragen

Ein Privatkunde hat keine Umsatzsteuer-Identifikationsnummer. Das Feld ihm trotzdem zu zeigen, kostet ihn Aufmerksamkeit und Ihnen möglicherweise die Bestellung.

Blenden Sie es deshalb nur bei Geschäftskunden ein. Dafür brauchen Sie eine Auswahl des Adresstyps, die auf einer eigenen Seite beschrieben ist. Dort ist die Umsatzsteuer-Identifikationsnummer als Beispielfeld bereits enthalten.

Wegweiser: [Auswahl zwischen Privat- und Geschäftsadresse](https://dokumentation.websale.de/v8s/adressdaten/auswahl-zwischen-privat-und-geschaeftsadresse.md)

## Syntaxprüfung einschalten

Die Pflichtfeldprüfung aus Schritt 2 stellt nur fest, **ob** etwas eingegeben wurde. Ob die Eingabe eine Umsatzsteuer-Identifikationsnummer sein kann, prüft eine zweite Regel mit `Type = taxid`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<InputCheck>
   <ErrorMessages>
      WrongTaxID = Diese ~FieldName~ ist leider falsch. Bitte überprüfen Sie die Schreibweise.
   </ErrorMessages>

   <+InputCheck>
      AddressField   = TaxID
      AddressType    = bill
      Type           = taxid
      ErrorMessageID = WrongTaxID
   </+InputCheck>
</InputCheck>
```

Welches Länderformat geprüft wird, ergibt sich aus der Adresse, zu der das Feld gehört:

| Situation | Geprüft wird gegen |
| - | - |
| Feld gehört zur Rechnungsadresse | das dort gewählte Land |
| kein Land gewählt | das deutsche Format |

Beide Regeln lassen sich kombinieren: eine mit `minlen` für die Pflicht und eine mit `taxid` für die Form. Der Käufer bekommt dann je nach Fehler die passende Meldung, statt zweimal denselben Satz zu lesen.

## Mehrwertsteuerbefreiung für Firmenkunden

Bei einer syntaktisch korrekten Nummer kann die deutsche Mehrwertsteuer entfallen. Für welche Länder das gelten soll, legen Sie im Abschnitt `<VAT>` mit dem Parameter `TaxIDCountries` fest.

Die Einzelheiten dazu, auch für Lieferungen in Drittländer, stehen bei der Mehrwertsteuer.

Wegweiser: [Mehrwertsteuer](https://dokumentation.websale.de/v8s/preise/mehrwertsteuer.md)

## Verwandte Themen

* Wegweiser: [Rechnungsadresse abfragen](https://dokumentation.websale.de/v8s/adressdaten/rechnungsadresse-abfragen.md)
* Wegweiser: [Abweichende Lieferadresse abfragen](https://dokumentation.websale.de/v8s/adressdaten/abweichende-lieferadresse-abfragen.md)
* Wegweiser: [Auswahl zwischen Privat- und Geschäftsadresse](https://dokumentation.websale.de/v8s/adressdaten/auswahl-zwischen-privat-und-geschaeftsadresse.md)
* Wegweiser: [Mehrwertsteuer](https://dokumentation.websale.de/v8s/preise/mehrwertsteuer.md)


## Related topics

- [Mehrwertsteuer](https://dokumentation.websale.de/v8s/preise/mehrwertsteuer.md)
- [Prüfung von Kundendaten festlegen](https://dokumentation.websale.de/v8s/adressdaten/pruefung-von-kundendaten-festlegen.md)
- [Prüfungen von Adressdaten festlegen](https://dokumentation.websale.de/v8s/adressdaten/pruefungen-von-adressdaten-festlegen.md)
- [PayPal](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal.md)
- [Adressen und Eingabeprüfungen](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/adressen-und-eingabepruefung.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.