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

# BANK- (Bankdaten)

> Die Tags für die Eingabe und Verwaltung von Bankverbindungen: Datenfelder mit ihren Suffixen, gespeicherte Konten, Seitenzustände und SEPA-Mandate.

Bankdaten werden im Shop an zwei Stellen erfasst: im Kundenkonto unter Bankverbindungen und im Bestellprozess, wenn der Käufer per Lastschrift zahlt. Beide Wege führen auf dasselbe Template `ws_bank_manage.htm`, ergänzt um Tags, die auch auf der Bestellübersicht `ws_place_order.htm` zur Verfügung stehen.

Die Tags mit dem Präfix `BANK-` gliedern sich in fünf Gruppen:

* **Datenfelder** wie Kontoinhaber, IBAN oder Bankleitzahl, jeweils mit einer Familie von Suffixen für Eingabefeld, Beschriftung und Fehler.
* **Gespeicherte Bankverbindungen**, also Schleife, Auswahlliste und die Frage, ob mehrere Konten erlaubt sind.
* **Navigation und Aktionen**, also die Links zum Anlegen, Ändern und Löschen.
* **Seitenzustände**, die bestimmen, welcher Teil des Templates gerade gezeigt wird.
* **SEPA**, also Mandatstyp, Mandatsnummer und die maskierte IBAN für das Mandats-PDF.

## Das Gerüst der Verwaltungsseite

Das Template zeigt je nach Zustand entweder die Übersicht der gespeicherten Konten oder das Eingabeformular. Diese beiden Zustände schließen einander aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-Overview}

   {BANK-Data}
      Sie haben ~BANK-Data~ Bankverbindungen hinterlegt.
      {@BANK-Data}
         ~BANK-Position~. {BANK-UserDescr}~BANK-UserDescr~{/BANK-UserDescr}
         {BANK-IBAN}~BANK-IBAN~{/BANK-IBAN}
         {BANK-EditLink}<a href="~BANK-EditLink~">Ändern</a>{/BANK-EditLink}
         {BANK-DeleteBankNoConfirm}<a href="~BANK-DeleteBankNoConfirm~">Löschen</a>{/BANK-DeleteBankNoConfirm}
      {/@BANK-Data}
   {/BANK-Data}

   {!BANK-Data}
      Sie haben noch keine Bankverbindung hinterlegt.
   {/!BANK-Data}

   {BANK-NewBankLink}<a href="~BANK-NewBankLink~">Neue Bankverbindung anlegen</a>{/BANK-NewBankLink}

{/BANK-Overview}

{BANK-Edit}
   <form action="~FORM-BankManage~" method="POST">

      {BANK-InputStepOne}
         <!-- Schritt 1 der Eingabe -->
      {/BANK-InputStepOne}

      {BANK-InputStepTwo}
         <!-- Schritt 2 der Eingabe -->
      {/BANK-InputStepTwo}

   </form>
{/BANK-Edit}

{BANK-ConfirmDelete}
   Wollen Sie diese Bankverbindung wirklich löschen?
   <a href="~BANK-DeleteBankConfirm~">Ja, löschen</a>
{/BANK-ConfirmDelete}
```

Ob die Seite aus dem Kundenkonto oder aus dem Bestellprozess aufgerufen wurde, unterscheiden Sie mit `BANK-Mode_Manage` und `BANK-Mode_Order`. Die Unterscheidung brauchen Sie vor allem für die Schaltflächen am Ende des Formulars, denn im Bestellprozess geht es danach weiter zur Bestellung, im Kundenkonto zurück zur Übersicht.

## Die Datenfelder

Acht Felder bilden eine Bankverbindung ab. Jedes davon folgt demselben Muster: Der Tag-Name ohne Suffix liefert den Wert, die Suffixe liefern alles, was ein vollständiges Eingabefeld sonst noch braucht.

| Feld | Bedeutung |
| - | - |
| `BANK-Owner` | Kontoinhaber |
| `BANK-UserDescr` | frei wählbare Bezeichnung dieser Bankverbindung |
| `BANK-IBAN` | IBAN |
| `BANK-BIC` | BIC |
| `BANK-KoNbr` | Kontonummer |
| `BANK-BLZ` | Bankleitzahl |
| `BANK-Bank` | Name der Bank |
| `BANK-Country` | Land der Bank |

### Die Suffixe

| Suffix | Liefert | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag |
| - | - | - | - | - |
| ohne Suffix | den Wert des Feldes | ja | ja | ja |
| `_input` | den technischen Namen des Eingabefeldes | ja | – | – |
| `_text` | die Beschriftung aus der `shop.config` | ja | ja | ja |
| `_error` | die Zeichenfolge `_error` im Fehlerfall | ja | ja | ja |
| `_errortext` | den Fehlertext aus der `shop.config` | ja | ja | ja |
| `_list` | eine fertige Auswahlliste | ja | – | – |

Keines dieser Tags ist ein Schleifen-Tag. Zulässig sind sie auf `ws_bank_manage.htm` und `ws_place_order.htm`.

### Welche Kombination es gibt

Nicht jedes Feld hat jedes Suffix. Die folgende Übersicht zeigt, welche Kombinationen dokumentiert sind.

| Feld | `_input` | `_text` | `_error` | `_errortext` | `_list` |
| - | - | - | - | - | - |
| `BANK-Owner` | ja | ja | ja | ja | – |
| `BANK-UserDescr` | ja | ja | ja | ja | – |
| `BANK-IBAN` | ja | – | ja | ja | – |
| `BANK-BIC` | ja | – | ja | ja | – |
| `BANK-KoNbr` | ja | ja | ja | ja | – |
| `BANK-BLZ` | ja | ja | ja | ja | – |
| `BANK-Bank` | – | ja | ja | ja | ja |
| `BANK-Country` | ja | ja | ja | – | ja |

Die IBAN hat zusätzlich das Suffix `_fillin`, siehe den Abschnitt zu SEPA.

### Ein vollständiges Eingabefeld

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<label for="~BANK-Owner_input~" class="~BANK-Owner_error~">
   {BANK-Owner_text}~BANK-Owner_text~{/BANK-Owner_text}
</label>

<input type="text"
       id="~BANK-Owner_input~"
       name="~BANK-Owner_input~"
       value="~BANK-Owner~"
       class="~BANK-Owner_error~">

{BANK-Owner_errortext}
   <span class="fehler">~BANK-Owner_errortext~</span>
{/BANK-Owner_errortext}
```

`_error` gibt als Einzel-Tag die Zeichenfolge `_error` aus und sonst nichts. Dadurch lässt es sich direkt an einen Klassennamen anhängen: Aus `class="eingabe~BANK-Owner_error~"` wird im Fehlerfall `class="eingabe_error"`.

Der negative Bereich von `_error` und `_errortext` greift in zwei Fällen: beim ersten Aufruf des Formulars, also vor dem Absenden, und nach einer erfolgreichen Prüfung. Er eignet sich deshalb für eine Erfolgsmeldung, aber nicht als Aussage "dieses Feld ist geprüft und in Ordnung".

> [!WARNING]
>
> Ein leeres Pflichtfeld löst denselben Fehler aus wie eine falsche Eingabe. `_error` unterscheidet beides nicht. Die genauere Auskunft steckt im Fehlertext, der je nach Prüfung unterschiedlich ausfällt.

### Die Auswahllisten

`BANK-Country_list` erzeugt eine Auswahlliste mit den Ländern der Bank.

`BANK-Bank_list` verhält sich je nach Datenlage unterschiedlich:

| Ausgangslage | Ergebnis |
| - | - |
| mehrere Banken zur Auswahl | eine Auswahlliste |
| genau eine Bank zur Auswahl | der Name als Text plus ein verstecktes Eingabefeld |
| keine Bank zur Auswahl | ein freies Eingabefeld |

> [!WARNING]
>
> Gestalten Sie den Bereich um `BANK-Bank_list` deshalb so, dass er in allen drei Fällen trägt. Eine feste Beschriftung "Bitte wählen Sie Ihre Bank" passt nicht, wenn dort am Ende ein Eingabefeld steht.

## Gespeicherte Bankverbindungen

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `BANK-Data` | ja | ja | ja | ja |
| `BANK-Position` | ja | – | – | – |
| `BANK-BankSelection` | – | ja | ja | – |
| `BANK-AccountSelected` | – | ja | ja | – |
| `BANK-MultipleDataInput` | – | ja | ja | – |
| `BANK-MultipleDataInputSelection` | ja | ja | ja | – |
| `BANK-SingleDataInput` | – | ja | ja | – |
| `BANK-SavedIndex` | ja | ja | ja | – |
| `BANK-ExternalID` | ja | ja | ja | – |

### BANK-Data

Als Einzel-Tag die Anzahl der Bankverbindungen, als Bereichs-Tag die Klammerung um die Liste, als Schleife ein Durchlauf je Bankverbindung. Als einziges Tag dieser Gruppe ist es in allen Templates zulässig.

### BANK-Position

Gibt die laufende Nummer innerhalb der Schleife aus.

### BANK-BankSelection

Der Bereich wird angezeigt, wenn gespeicherte Bankdaten zur Auswahl stehen. Innerhalb dieser Klammerung bauen Sie die Auswahlliste aus der Schleife über `BANK-Data`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-BankSelection}
   <select name="~BANK-BankSelection_input~">
      {@BANK-Data}
         <option value="~BANK-BankSelection_code~" ~BANK-BankSelection_selected~>
            {BANK-UserDescr}~BANK-UserDescr~{/BANK-UserDescr}
            {BANK-IBAN}~BANK-IBAN~{/BANK-IBAN}
         </option>
      {/@BANK-Data}
   </select>
{/BANK-BankSelection}
```

Vier Suffixe gehören dazu:

| Tag | Liefert |
| - | - |
| `BANK-BankSelection_input` | den technischen Namen der Auswahlliste |
| `BANK-BankSelection_code` | den Wert für das `value` einer Option |
| `BANK-BankSelection_selected` | das Attribut `selected` für die gewählte Bankverbindung |
| `BANK-BankSelection_error` | die Zeichenfolge `_error`, wenn die Auswahl fehlerhaft war |

> [!WARNING]
>
> Diese vier Suffix-Tags funktionieren ausschließlich innerhalb der positiven Klammerung `{BANK-BankSelection}`. Außerhalb sind sie ungültig. Dasselbe gilt für die Datenfeld-Tags, die Sie in der Auswahlliste anzeigen.

### BANK-AccountSelected

Der Bereich wird angezeigt, wenn der Käufer eine gespeicherte Bankverbindung ausgewählt hat. Der negative Bereich greift, wenn keine ausgewählt wurde oder keine zur Verfügung steht.

### BANK-MultipleDataInput und BANK-SingleDataInput

Diese beiden Tags unterscheiden, ob der Käufer mehrere Bankverbindungen speichern kann oder nur eine einzige eingibt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-MultipleDataInput}
   <!-- Auswahl aus gespeicherten Konten und Möglichkeit, ein weiteres anzulegen -->
{/BANK-MultipleDataInput}

{BANK-SingleDataInput}
   <!-- Einfaches Eingabeformular für eine einmalige Eingabe -->
{/BANK-SingleDataInput}
```

Der Unterschied hängt am Kundenkonto: Mehrere Bankverbindungen kann nur speichern, wer angemeldet ist. Ein Gastbesteller gibt seine Daten einmalig ein, deshalb greift bei ihm `BANK-SingleDataInput`.

### BANK-MultipleDataInputSelection

Die Auswahlliste der gespeicherten Bankverbindungen auf der Bestellübersicht.

### BANK-SavedIndex

Gibt den Index der Bankverbindung aus, die mit der letzten Aktion gespeichert oder aktualisiert wurde. Der Bereich greift nur, wenn tatsächlich gespeichert wurde.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{MSG-Bank_Notify}
   ~MSG-Bank_Notify~
   {BANK-SavedIndex}
      <!-- Weiterleitung mit ~BANK-SavedIndex~ als Parameter -->
   {/BANK-SavedIndex}
{/MSG-Bank_Notify}
```

Gebraucht wird das Tag vor allem im Abo-Modul, um nach dem Anlegen einer Bankverbindung zurück zur Produktdetailansicht zu leiten und dabei die neue Verbindung mitzugeben.

### BANK-ExternalID

Gibt die externe Kennung der Bankverbindung aus, also die Kennung aus einem angebundenen Fremdsystem.

## Navigation und Aktionen

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Zulässig in |
| - | - | - | - | - |
| `BANK-NewBankLink` | ja | ja | ja | beiden Templates |
| `BANK-EditLink` | ja | ja | ja | beiden Templates |
| `BANK-OverviewLink` | ja | – | – | `ws_bank_manage.htm` |
| `BANK-ToOrderLink` | ja | – | – | `ws_bank_manage.htm` |
| `BANK-ConfirmDelete` | – | ja | ja | `ws_bank_manage.htm` |
| `BANK-DeleteBankConfirm` | ja | ja | ja | `ws_bank_manage.htm` |
| `BANK-DeleteBankNoConfirm` | ja | ja | ja | `ws_bank_manage.htm` |

### BANK-NewBankLink

Liefert den Link zum Anlegen einer neuen Bankverbindung. Als Bereichs-Tag greift es nur, wenn eine neue Verbindung angelegt werden darf.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-NewBankLink}
   <a href="~BANK-NewBankLink~">Neue Bankverbindung anlegen</a>
{/BANK-NewBankLink}
```

### BANK-EditLink

Liefert den Link zum Bearbeiten der Bankverbindung. Als Bereichs-Tag greift es nur, wenn sie bearbeitet werden darf.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-EditLink}
   <a href="~BANK-EditLink~">Ändern</a>
{/BANK-EditLink}
```

Beide Links gehören in ihre Klammerung. Ob geändert oder neu angelegt werden darf, entscheidet der Shop, und ein Link auf eine verbotene Aktion führt ins Leere.

### BANK-OverviewLink und BANK-ToOrderLink

`BANK-OverviewLink` führt zurück zur Übersicht der Bankverbindungen, `BANK-ToOrderLink` bricht die Eingabe ab und führt zurück auf `ws_place_order.htm`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-Mode_Manage}
   <a href="~BANK-OverviewLink~">Zur Übersicht</a>
{/BANK-Mode_Manage}

{BANK-Mode_Order}
   <a href="~BANK-ToOrderLink~">Weiter zur Bestellung</a>
{/BANK-Mode_Order}
```

### Löschen

Für das Löschen gibt es zwei Wege, mit und ohne Sicherheitsabfrage.

| Tag | Rolle |
| - | - |
| `BANK-DeleteBankNoConfirm` | Link, der sofort löscht |
| `BANK-ConfirmDelete` | Bereich, in dem die Sicherheitsabfrage steht |
| `BANK-DeleteBankConfirm` | Schaltfläche, die das Löschen nach der Abfrage bestätigt |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@BANK-Data}
   {BANK-DeleteBankNoConfirm}
      <a href="~BANK-DeleteBankNoConfirm~">Löschen</a>
   {/BANK-DeleteBankNoConfirm}
{/@BANK-Data}

{BANK-ConfirmDelete}
   Wollen Sie diese Bankverbindung wirklich löschen?
   <a href="~BANK-DeleteBankConfirm~">Ja, löschen</a>
   <a href="~BANK-OverviewLink~">Abbrechen</a>
{/BANK-ConfirmDelete}
```

> [!WARNING]
>
> `BANK-DeleteBankNoConfirm` löscht ohne Rückfrage. Verwenden Sie den Weg über `BANK-ConfirmDelete` und `BANK-DeleteBankConfirm`, wenn die Bankverbindung nicht mit einem Fehlklick verschwinden soll.

Die negativen Bereiche der beiden Delete-Tags sind für eine Fehlermeldung gedacht, wenn das Löschen nicht möglich war. Der positive Bereich von `BANK-DeleteBankConfirm` ist dagegen die Erfolgsmeldung nach dem Löschen. Die beiden Tags haben also je nach Form eine andere Bedeutung.

## Seitenzustände

Diese sechs Tags sind reine Bereichs-Tags und bestimmen, welcher Teil des Templates gerade greift. Als Einzel-Tag ist keines verwendbar.

| Tag | Greift, wenn |
| - | - |
| `BANK-Overview` | die Übersicht der Bankverbindungen gewählt wurde |
| `BANK-Edit` | eine Bankverbindung bearbeitet wird |
| `BANK-InputStepOne` | Schritt 1 der Eingabe angezeigt wird |
| `BANK-InputStepTwo` | Schritt 2 der Eingabe angezeigt wird |
| `BANK-Mode_Manage` | die Seite aus dem Kundenkonto aufgerufen wurde |
| `BANK-Mode_Order` | die Seite aus dem Bestellprozess aufgerufen wurde |

Die beiden Schritte trennen die Eingabe der Kontodaten von ihrer Bestätigung. Welche Felder in welchem Schritt stehen, entscheiden Sie im Template. Beide Bereiche gehören in dasselbe Formular.

## SEPA

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag |
| - | - | - | - |
| `BANK-SEPAMode` | – | ja | ja |
| `BANK-SEPADirectMandateType()` | ja | ja | ja |
| `BANK-SEPALastDirectMandate` | ja | ja | ja |
| `BANK-NoSEPABankDataExists` | – | ja | ja |
| `BANK-IBAN_fillin` | ja | ja | ja |

### BANK-SEPAMode

Der Bereich wird angezeigt, wenn der SEPA-Modus aktiv ist, also auf `on` oder `test` steht. Der negative Bereich greift bei `off`.

### BANK-SEPADirectMandateType()

Ohne Parameter gibt das Einzel-Tag den Typ des Mandats aus. Mit Parameter prüfen Sie einen bestimmten Typ.

| Parameter | Positiver Bereich greift, wenn |
| - | - |
| 0 | kein Mandat vorliegt |
| 1 | ein einmaliges Mandat vorliegt |
| 2 | ein wiederkehrendes Mandat vorliegt |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-SEPADirectMandateType(2)}
   Für diese Bankverbindung liegt ein wiederkehrendes Mandat vor.
{/BANK-SEPADirectMandateType(2)}

{BANK-SEPADirectMandateType(0)}
   Für diese Bankverbindung liegt noch kein Mandat vor.
{/BANK-SEPADirectMandateType(0)}
```

Der negative Bereich kehrt die jeweilige Aussage um. `{!BANK-SEPADirectMandateType(0)}` greift also, wenn ein Mandat vorliegt, gleich welcher Art.

### BANK-SEPALastDirectMandate

Gibt die zuletzt verwendete Mandatsnummer aus.

### BANK-NoSEPABankDataExists

Der Bereich wird angezeigt, wenn für diesen Kunden Kontodaten vorliegen, die nicht dem SEPA-Format entsprechen, also noch mit Kontonummer und Bankleitzahl statt mit IBAN und BIC.

Damit weisen Sie Bestandskunden darauf hin, dass sie ihre Bankverbindung auf IBAN umstellen sollten, bevor die alten Daten nicht mehr verwendbar sind.

### BANK-IBAN\_fillin

Gibt die IBAN teilweise maskiert aus, in der Form `DE123456______123`.

* Mindestens fünf Zeichen werden maskiert.
* Am Anfang bleiben bis zu zwölf Zeichen im Klartext.
* Am Ende bleiben drei Zeichen im Klartext.
* Die Länge der eingegebenen IBAN bleibt erhalten.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{BANK-IBAN_fillin}
   IBAN: ~BANK-IBAN_fillin~
{/BANK-IBAN_fillin}

{!BANK-IBAN_fillin}
   Keine IBAN vorhanden.
{/!BANK-IBAN_fillin}
```

> [!WARNING]
>
> Dieses Tag ist ausschließlich für die SEPA-Mandats-PDFs vorgesehen, also für die Templates, die in der `shop.config` im Abschnitt `<CustomerMail>` unter `SEPACustomerPDFTemplate` und `SEPACompanyPDFTemplate` eingetragen sind, beispielsweise `pdf_sepa_customer.htm` und `pdf_sepa_company.htm`. Verwenden Sie es nicht als allgemeine Maskierung auf Shopseiten.

## Verwandte Themen

* Wegweiser: [Lastschrift](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/lastschrift.md)
* Wegweiser: [Kundenkonto](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/kundenkonto.md)
* Wegweiser: [Abo-Modul](https://dokumentation.websale.de/v8s/marketing-funktionen/abo-modul.md)
* Referenz: [Abschnitt CustomerMail](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/e-mails.md#customermail)


## Related topics

- [Schaltflächen der Zahlungsarten](https://dokumentation.websale.de/v8s/referenz/tags/bt/zahlungsarten.md)
- [CC- (Kreditkartendaten)](https://dokumentation.websale.de/v8s/referenz/tags/cc.md)
- [accounts - Benutzerkonten](https://dokumentation.websale.de/konfiguration/accounts-benutzerkonten.md)
- [Volltextsuche für Kundendaten anbieten](https://dokumentation.websale.de/v8s/kundenkonto/volltextsuche-fuer-kundendaten-anbieten.md)
- [API-Referenz Kundendaten](https://dokumentation.websale.de/schnittstellen/admin-interface-api/api-referenz-kundendaten.md)


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