> ## 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.

# PAY- (Zusatzfelder zur Zahlungsart)

> Zahlungsarten, die mehr als einen Klick brauchen: freie Eingabefelder, länderspezifische Zusatzangaben aus dem Abschnitt CountryRule und die Sonderfelder einzelner Anbieter.

Die meisten Zahlungsarten sind mit einem Klick auf den Radiobutton erledigt. Manche nicht: eine Kostenstelle braucht eine Nummer, ein Ratenkauf in bestimmten Ländern ein Geburtsdatum, ein Firmenkunde eine Auftragsnummer für die Rechnung. Diese Angaben holt das Shopsystem direkt in der Zahlungsartenliste ab, bei der Zahlungsart, zu der sie gehören.

Diese Seite beschreibt die Tags dieser Zusatzfelder. Die Schleife über die Zahlungsarten, in der sie alle stehen, sowie Name, Kosten und Auswahlfeld stehen bei PAY- (Zahlungsarten anzeigen und auswählen).

Wegweiser: [Auswahl der Zahlungsart](https://dokumentation.websale.de/v8s/versandarten-anlegen/ausgabe-im-bestellprozess.md)

## Drei Arten von Zusatzfeldern

Es gibt sie in drei Bauformen, und sie unterscheiden sich darin, wer sie einrichtet und wovon sie abhängen.

| Art | Wovon sie abhängt | Anzahl |
| - | - | - |
| freie Eingabefelder | im Shop zur Zahlungsart eingerichtet | bis zu drei |
| länderspezifische Zusatzangaben | Zahlungsart und Lieferland | beliebig viele |
| Sonderfelder | fest an eine bestimmte Zahlungsart gebunden | je Anbieter |

Alle drei stehen innerhalb der Zahlungsarten-Schleife und gehören optisch unter den Namen der Zahlungsart. Ob für eine Zahlungsart überhaupt eines davon anfällt, beantwortet `PAY-Data_html_container_remarks` in einem Zug.

## Freie Eingabefelder

Zu jeder Zahlungsart lassen sich bis zu drei freie Eingabefelder einrichten. Jedes hat denselben Satz von vier Tags, unterschieden durch die Nummer.

| Tag | Liefert |
| - | - |
| `PAY-Data_InputSuffix1_descr` | die Beschriftung des Feldes |
| `PAY-Data_InputSuffix1_input` | den Feldnamen für das `input`-Element |
| `PAY-Data_InputSuffix1` | den bereits eingegebenen Wert |
| `PAY-Data_InputSuffix1_required` | greift, wenn das Feld ein Pflichtfeld ist |

Für das zweite und dritte Feld heißen die Tags entsprechend `PAY-Data_InputSuffix2…` und `PAY-Data_InputSuffix3…`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_InputSuffix1_input}
   <p id="~PAY-Data_html_id(inputsuffix1_name)~"
      class="~PAY-Data_html_class_global(inputsuffix1_name)~">
      ~PAY-Data_InputSuffix1_descr~{PAY-Data_InputSuffix1_required}*{/PAY-Data_InputSuffix1_required}
   </p>

   <input type="text"
          id="~PAY-Data_html_id(inputsuffix1_input)~"
          class="~PAY-Data_html_class_global(inputsuffix1_input)~"
          name="~PAY-Data_InputSuffix1_input~"
          value="~PAY-Data_InputSuffix1~">
{/PAY-Data_InputSuffix1_input}
```

Klammern Sie den Block mit `PAY-Data_InputSuffix1_input`, nicht mit `PAY-Data_InputSuffix1`. Der Feldname liegt nur vor, wenn das Feld für diese Zahlungsart überhaupt eingerichtet ist. Der Wert dagegen ist beim ersten Aufruf leer, auch wenn es das Feld gibt, und der Block würde dann fehlen.

Das Sternchen hinter der Beschriftung kommt aus `PAY-Data_InputSuffix1_required`. Sie bestimmen damit selbst, wie Sie Pflichtfelder kennzeichnen. Das Shopsystem prüft die Pflicht unabhängig davon beim Absenden.

## Länderspezifische Zusatzangaben

Manche Zahlungsarten brauchen Angaben, die nur in bestimmten Ländern anfallen. Eingerichtet werden sie in der Shopkonfiguration `shop.config` im Abschnitt `<+CountryRule>` der jeweiligen Zahlungsart. Das Shopsystem blendet sie ein, sobald Zahlungsart und Lieferland zusammenpassen.

Referenz: [Abschnitt +CountryRule](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md#countryrule)

### Die Schleife

`PAY-Data_CountryRule` läuft über die Zusatzangaben, die für diese Zahlungsart gerade greifen. Als Einzel-Tag gibt es deren Anzahl aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_CountryRule}
   {@PAY-Data_CountryRule}
      <div id="~PAY-Data_html_id(paymentcountryrule)~"
           class="~PAY-Data_html_class_countryrule_global(paymentcountryrule)~
                  ~PAY-Data_html_class_global(paymentcountryrule)~">
         <!-- ein Zusatzfeld -->
      </div>
   {/@PAY-Data_CountryRule}
{/PAY-Data_CountryRule}
```

`PAY-Data_html_class_countryrule_global` nimmt als einziges Argument `paymentcountryrule`. Es liefert die Klasse, die auch die Blockausgabe an dieser Stelle setzt, und ergänzt damit die vier allgemeinen Klassen-Tags.

### Welche Art von Feld

Jede Zusatzangabe ist eines von vier Dingen. Welches, sagen vier Klammerungen und ein Code.

| Klammerung | Greift bei | Code |
| - | - | - |
| `PAY-Data_CountryRule_Type_isListbox` | einer Auswahlliste | 0 |
| `PAY-Data_CountryRule_Type_isInput` | einem Texteingabefeld | 1 |
| `PAY-Data_CountryRule_Type_isDateOfBirth` | den drei Listen für das Geburtsdatum | 2 |
| `PAY-Data_CountryRule_Type_isCheckbox` | einem Kontrollkästchen | 3 |

`PAY-Data_CountryRule_Type_code` gibt denselben Code als Zahl aus.

Für das Template brauchen Sie den Code nicht. Die vier Klammerungen sind lesbarer und halten das Template auch dann noch verständlich, wenn später eine fünfte Art dazukommt. Der Code ist für den Fall gedacht, dass Sie die Art an JavaScript weiterreichen wollen.

### Die gemeinsamen Angaben

Diese Tags gelten unabhängig von der Art des Feldes.

| Tag | Liefert |
| - | - |
| `PAY-Data_CountryRule_ID` | die technische Kennung der Zusatzangabe |
| `PAY-Data_CountryRule_descr` | die Beschriftung aus `FieldDescr-Txt` |
| `PAY-Data_CountryRule_input` | den Feldnamen für das Eingabeelement |
| `PAY-Data_CountryRule_value` | den bereits eingegebenen technischen Wert |
| `PAY-Data_CountryRule_required` | greift, wenn die Angabe verpflichtend ist |
| `PAY-Data_CountryRule_maxlength` | die zulässige Höchstlänge |
| `PAY-Data_CountryRule_error` | greift, wenn die Eingabe fehlerhaft war |
| `PAY-Data_CountryRule_errormessage` | die hinterlegte Fehlermeldung |

`PAY-Data_CountryRule_maxlength` greift nur, wenn für das Feld überhaupt eine Höchstlänge eingerichtet ist. Setzen Sie das Attribut deshalb geklammert, sonst steht im Markup ein leeres `maxlength`.

`PAY-Data_CountryRule_errormessage` greift nur, wenn es einen Eingabefehler gibt **und** für diese Zusatzangabe eine Fehlermeldung hinterlegt ist. Für den Fall ohne hinterlegten Text sollten Sie über `PAY-Data_CountryRule_error` einen allgemeinen Hinweis bereithalten.

### Texteingabefeld und Kontrollkästchen

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_CountryRule_Type_isInput}
   <label>
      ~PAY-Data_CountryRule_descr~{PAY-Data_CountryRule_required}*{/PAY-Data_CountryRule_required}
      <input type="text"
             name="~PAY-Data_CountryRule_input~"
             value="~PAY-Data_CountryRule_value~"
             {PAY-Data_CountryRule_maxlength}maxlength="~PAY-Data_CountryRule_maxlength~"{/PAY-Data_CountryRule_maxlength}>
   </label>
{/PAY-Data_CountryRule_Type_isInput}

{PAY-Data_CountryRule_Type_isCheckbox}
   <label>
      <input type="checkbox" name="~PAY-Data_CountryRule_input~" ~PAY-Data_CountryRule_value~>
      ~PAY-Data_CountryRule_descr~
   </label>
{/PAY-Data_CountryRule_Type_isCheckbox}

{PAY-Data_CountryRule_error}
   <p class="fehler">~PAY-Data_CountryRule_errormessage~</p>
{/PAY-Data_CountryRule_error}
```

`PAY-Data_CountryRule_value` verhält sich je nach Art unterschiedlich. Beim Texteingabefeld ist es die Eingabe des Käufers, beim Kontrollkästchen gibt es `checked` aus, und bei einer Auswahlliste den technischen Wert des gewählten Eintrags. Das eine Tag deckt damit alle Fälle ab, Sie setzen es nur an die jeweils passende Stelle im Markup.

### Auswahlliste

Die Einträge der Liste holen Sie mit einer zweiten Schleife.

| Tag | Liefert |
| - | - |
| `PAY-Data_CountryRule_listbox` | die Schleife über die Einträge, als Einzel-Tag deren Anzahl |
| `PAY-Data_CountryRule_listbox_value` | den technischen Wert des Eintrags |
| `PAY-Data_CountryRule_listbox_value_txt` | den angezeigten Text aus `Entry-Txt` |
| `PAY-Data_CountryRule_listbox_selected` | greift beim gewählten Eintrag |
| `PAY-Data_CountryRule_value_txt` | den angezeigten Text des bereits gewählten Eintrags |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_CountryRule_Type_isListbox}
   <label>
      ~PAY-Data_CountryRule_descr~
      <select name="~PAY-Data_CountryRule_input~">
         {@PAY-Data_CountryRule_listbox}
            <option value="~PAY-Data_CountryRule_listbox_value~"
                    ~PAY-Data_CountryRule_listbox_selected~>
               ~PAY-Data_CountryRule_listbox_value_txt~
            </option>
         {/@PAY-Data_CountryRule_listbox}
      </select>
   </label>
{/PAY-Data_CountryRule_Type_isListbox}
```

> [!WARNING]
>
> Als Einzel-Tag gibt `PAY-Data_CountryRule_listbox_selected` das Wort `selected` ohne führendes Leerzeichen aus. Anders als bei den `checked`-Tags der Zahlungsartenauswahl müssen Sie hier selbst für den Abstand zum vorangehenden Attribut sorgen.

`PAY-Data_CountryRule_value` liefert den technischen Wert der Auswahl, `PAY-Data_CountryRule_value_txt` den dazugehörigen Anzeigetext. Bei einer Länderliste wäre das `DEU` und `Deutschland`. Für die Anzeige der getroffenen Wahl an anderer Stelle der Seite ist `value_txt` das richtige Tag, für versteckte Felder und JavaScript `value`.

`PAY-Data_CountryRule_value_txt` ist nur bei Auswahllisten gefüllt. Bei den anderen drei Arten bleibt es leer, und die Klammerung greift nicht.

Die drei `listbox_`Tags arbeiten ausschließlich innerhalb von `{@PAY-Data_CountryRule_listbox}`. Außerhalb gelten sie als ungültiges Tag.

### Geburtsdatum

Bei der Art Geburtsdatum erzeugt das Shopsystem die drei Auswahllisten für Tag, Monat und Jahr selbst.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_CountryRule_Type_isDateOfBirth}
   <label>
      ~PAY-Data_CountryRule_descr~{PAY-Data_CountryRule_required}*{/PAY-Data_CountryRule_required}
      ~PAY-Data_CountryRule_dateofbirth_list~
   </label>
{/PAY-Data_CountryRule_Type_isDateOfBirth}
```

> [!WARNING]
>
> `PAY-Data_CountryRule_dateofbirth_list` ist ausschließlich ein Einzel-Tag und arbeitet ausschließlich bei der Art Geburtsdatum. Als Klammerung oder bei einer anderen Art gilt es als ungültiges Tag. Die Prüfung, ob der Fall überhaupt vorliegt, übernimmt `PAY-Data_CountryRule_Type_isDateOfBirth`.

Die Listen werden mit dem Geburtsdatum aus der Rechnungsadresse vorbelegt, sofern dort eines steht. Der Käufer muss es dann nicht erneut eingeben.

## Sonderfelder einzelner Zahlungsarten

Drei Zahlungsarten bringen eigene Felder mit, die nur bei ihnen erscheinen.

### Kostenstelle

Bei der Zahlungsart Kostenstelle gibt der Käufer eine Kostenstellen-Nummer und die E-Mail-Adresse des Freigebers an. Beide Felder haben denselben Satz von vier Tags.

| Tag | Liefert |
| - | - |
| `PAY-Data_Special_costcenter_number_descr` | die Beschriftung des Nummernfeldes |
| `PAY-Data_Special_costcenter_number_input` | dessen Feldnamen |
| `PAY-Data_Special_costcenter_number` | den eingegebenen Wert |
| `PAY-Data_Special_costcenter_number_required` | greift, wenn die Nummer verpflichtend ist |
| `PAY-Data_Special_costcenter_email_descr` | die Beschriftung des E-Mail-Feldes |
| `PAY-Data_Special_costcenter_email_input` | dessen Feldnamen |
| `PAY-Data_Special_costcenter_email` | die eingegebene Adresse |
| `PAY-Data_Special_costcenter_email_required` | greift, wenn die Adresse verpflichtend ist |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_Special_costcenter_number_input}
   <p id="~PAY-Data_html_id(costcenternumber_name)~"
      class="~PAY-Data_html_class_global(costcenternumber_name)~">
      ~PAY-Data_Special_costcenter_number_descr~{PAY-Data_Special_costcenter_number_required}*{/PAY-Data_Special_costcenter_number_required}
   </p>

   <input type="text" maxlength="64"
          id="~PAY-Data_html_id(costcenternumber_input)~"
          class="~PAY-Data_html_class_global(costcenternumber_input)~"
          name="~PAY-Data_Special_costcenter_number_input~"
          value="~PAY-Data_Special_costcenter_number~">
{/PAY-Data_Special_costcenter_number_input}
```

Die beiden Felder lassen sich einzeln einrichten. Klammern Sie deshalb jedes für sich mit seinem `_input`-Tag, statt beide gemeinsam zu klammern. Sonst verschwindet das eingerichtete Feld, sobald das andere fehlt.

Die Höchstlänge beider Felder beträgt 64 Zeichen. Setzen Sie `maxlength` selbst, es gibt dafür kein Tag.

### Bankauswahl bei PayEx

`PAY-Data_Special_payexbankselection` erzeugt die fertige Auswahl des Bankinstituts. Sie erscheint nur bei der Zahlungsart Lastschrift über PayEx.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_Special_payexbankselection}
   <div id="~PAY-Data_html_id(payexbank)~"
        class="~PAY-Data_html_class_global(payexbank)~">
      ~PAY-Data_Special_payexbankselection~
   </div>
{/PAY-Data_Special_payexbankselection}
```

### Container für die PayPal-Zahlungsarten

`PAY-Data_Special_PayPalMethodsDivContainerID` liefert die ID des Containers, in den PayPal seine eigene Zahlungsartenauswahl nachlädt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PAY-Data_Special_PayPalMethodsDivContainerID}
   <div id="~PAY-Data_Special_PayPalMethodsDivContainerID~"></div>
{/PAY-Data_Special_PayPalMethodsDivContainerID}
```

Der Container bleibt leer, bis das PayPal-Skript ihn füllt. Legen Sie ihn deshalb an, ohne eigenen Inhalt und ohne feste Höhe, und nehmen Sie die ID immer aus dem Tag.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `PAY-Data_InputSuffix1` bis `3` | ja | ja | ja | – |
| `PAY-Data_InputSuffix1_descr` bis `3_descr` | ja | ja | ja | – |
| `PAY-Data_InputSuffix1_input` bis `3_input` | ja | ja | ja | – |
| `PAY-Data_InputSuffix1_required` bis `3_required` | – | ja | ja | – |
| `PAY-Data_CountryRule` | ja | ja | ja | ja |
| `PAY-Data_CountryRule_ID` | ja | ja | ja | – |
| `PAY-Data_CountryRule_Type_code` | ja | ja | ja | – |
| `PAY-Data_CountryRule_Type_isInput` | – | ja | ja | – |
| `PAY-Data_CountryRule_Type_isListbox` | – | ja | ja | – |
| `PAY-Data_CountryRule_Type_isDateOfBirth` | – | ja | ja | – |
| `PAY-Data_CountryRule_Type_isCheckbox` | – | ja | ja | – |
| `PAY-Data_CountryRule_descr` | ja | ja | ja | – |
| `PAY-Data_CountryRule_input` | ja | ja | ja | – |
| `PAY-Data_CountryRule_value` | ja | ja | ja | – |
| `PAY-Data_CountryRule_value_txt` | ja | ja | ja | – |
| `PAY-Data_CountryRule_required` | – | ja | ja | – |
| `PAY-Data_CountryRule_maxlength` | ja | ja | ja | – |
| `PAY-Data_CountryRule_error` | – | ja | ja | – |
| `PAY-Data_CountryRule_errormessage` | ja | ja | ja | – |
| `PAY-Data_CountryRule_listbox` | ja | ja | ja | ja |
| `PAY-Data_CountryRule_listbox_value` | ja | ja | ja | – |
| `PAY-Data_CountryRule_listbox_value_txt` | ja | ja | ja | – |
| `PAY-Data_CountryRule_listbox_selected` | ja | ja | ja | – |
| `PAY-Data_CountryRule_dateofbirth_list` | ja | – | – | – |
| `PAY-Data_Special_costcenter_number` | ja | ja | ja | – |
| `PAY-Data_Special_costcenter_number_descr` | ja | ja | ja | – |
| `PAY-Data_Special_costcenter_number_input` | ja | ja | ja | – |
| `PAY-Data_Special_costcenter_number_required` | – | ja | ja | – |
| `PAY-Data_Special_costcenter_email` | ja | ja | ja | – |
| `PAY-Data_Special_costcenter_email_descr` | ja | ja | ja | – |
| `PAY-Data_Special_costcenter_email_input` | ja | ja | ja | – |
| `PAY-Data_Special_costcenter_email_required` | – | ja | ja | – |
| `PAY-Data_Special_payexbankselection` | ja | ja | ja | – |
| `PAY-Data_Special_PayPalMethodsDivContainerID` | ja | ja | ja | – |

Alle Tags gelten auf der Zahlungs- und Versandartenseite `ws_pay_deliv.htm` innerhalb der `@PAY-Data`-Schleife. Die `listbox_`Tags zusätzlich nur innerhalb von `{@PAY-Data_CountryRule_listbox}`.

## Verwandte Themen

* Referenz: [PAY- (Zahlungsarten anzeigen und auswählen)](https://dokumentation.websale.de/v8s/referenz/tags/pay/zahlungsarten-anzeigen-und-auswaehlen.md)
* Referenz: [Abschnitt +CountryRule](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md#countryrule)
* Wegweiser: Auswahl der Zahlungsart
* Wegweiser: [Zahlungsarten anlegen](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/zahlungsarten-anlegen.md)


## Related topics

- [PAY- (Zahlungsarten anzeigen und auswählen)](https://dokumentation.websale.de/v8s/referenz/tags/pay/zahlungsarten-anzeigen-und-auswaehlen.md)
- [payment - Zahlungsmethoden](https://dokumentation.websale.de/konfiguration/payment-zahlungsmethoden.md)
- [$wsPayPalCheckout - PayPal](https://dokumentation.websale.de/frontend/referenz/module/wspaypalcheckout.md)
- [Checkout](https://dokumentation.websale.de/frontend/referenz/aktionen/checkout.md)
- [Validierungs- und Prüfservices](https://dokumentation.websale.de/konfiguration/validierungs-und-prufservices.md)


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