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

# E-Mail Vorlagen Variablen

> Alle verfügbaren Variablen für E-Mail Benachrichtigungen

<Note>
  Alle Variablen werden automatisch formatiert. Daten werden entsprechend der Sprache des Empfängers formatiert (Deutsch: `31.12.2024`, Englisch: `12/31/2024`). Geldbeträge werden ebenfalls automatisch formatiert.
</Note>

## Übersicht

Alle Variablen sind bereits formatiert und müssen nicht zusätzlich formatiert werden.

**Wichtig**:

* Alle Daten und Datum/Zeit-Werte werden automatisch formatiert
* Alle Geldbeträge sind bereits formatiert mit Währungssymbolen

## Variablen-Kategorien

### Kundeninformationen

Verfügbar in allen Benachrichtigungen:

* `customer.firstName` - Vorname des Kunden (Text)
* `customer.lastName` - Nachname des Kunden (Text)
* `customer.companyName` - Firmenname, falls vorhanden (Text, optional)
* `customer.customerNumber` - Kundennummer (Text)
* `customer.language` - Sprache des Kunden (Text)
* `customer.locale` - Locale-Code des Kunden (Text)
* `customer.contactPerson.firstName` - Vorname der Kontaktperson (Text, optional)
* `customer.contactPerson.lastName` - Nachname der Kontaktperson (Text, optional)
* `customer.contactPerson.email` - E-Mail der Kontaktperson (Text, optional)

### Organisationsinformationen

Verfügbar in allen Benachrichtigungen:

* `tenant.name` - Name der Organisation (Text)
* `tenant.legalCompanyName` - Rechtlicher Firmenname (Text)
* `tenant.street` - Straße (Text)
* `tenant.housenumber` - Hausnummer (Text)
* `tenant.zip` - Postleitzahl (Text)
* `tenant.city` - Stadt (Text)
* `tenant.email` - E-Mail-Adresse (Text)
* `tenant.phone` - Telefonnummer (Text, optional)
* `tenant.ceo` - Geschäftsführer (Text)
* `tenant.commercialRegisterNumber` - Handelsregisternummer (Text)
* `tenant.commercialRegister` - Handelsregister (Text)

### Rechnungsinformationen

Verfügbar in rechnungsbezogenen Benachrichtigungen:

* `invoice.number` - Rechnungsnummer (Text)
* `invoice.grossAmount` - Gesamtbetrag inklusive Steuern (formatiert)
* `invoice.netAmount` - Nettobetrag ohne Steuern (formatiert)
* `invoice.taxAmount` - Steuerbetrag (formatiert)
* `invoice.dueDate` - Fälligkeitsdatum (formatiert: `d.m.Y` für Deutsch, `m/d/Y` für Englisch)
* `invoice.finalizationDate` - Datum der Rechnungsstellung (formatiert, optional)
* `invoice.payDate` - Zahlungsdatum (formatiert, optional)
* `invoice.documentDate` - Dokumentdatum (formatiert)
* `invoice.customerNumber` - Kundennummer (Text)
* `invoice.referencedInvoiceNumber` - Referenz-Rechnungsnummer (Text, optional)
* `invoice.referencedInvoiceDate` - Referenz-Rechnungsdatum (formatiert, optional)
* `invoice.referencedInvoiceDueDate` - Referenz-Fälligkeitsdatum (formatiert, optional)
* `invoice.referencedInvoiceTotalGrossAmount` - Referenz-Rechnungsbetrag (formatiert, optional)
* `invoice.dueDateInDays` - Tage bis Fälligkeit (Zahl, optional)
* `invoice.dunningLevel` - Mahnstufe (Zahl, optional)
* `invoice.paymentMethod.type` - Zahlungsmethoden-Typ (Text, optional)
* `invoice.paymentMethod.displayName` - Vorfomatieter Anzeigename der Zahlungsmethode (Text, optional)
* `invoice.paymentMethod.card.lastFour` - Letzte vier Ziffern der Karte (Text, optional, nur bei Karten)
* `invoice.paymentMethod.card.expirationDate` - Ablaufdatum der Karte formatiert als "MM/YYYY" (Text, optional, nur bei Karten)

### Transaktionsinformationen

Verfügbar in transaktionsbezogenen Benachrichtigungen:

* `transaction.amount` - Transaktionsbetrag (formatiert)
* `transaction.refundAmount` - Rückerstattungsbetrag (formatiert, optional)
* `transaction.chargedAmount` - Belasteter Betrag (formatiert, optional)
* `transaction.description` - Transaktionsbeschreibung (Text)
* `transaction.documentNumber` - Dokumentreferenznummer (Text)
* `transaction.paidAt` - Datum und Uhrzeit der Zahlung (formatiert: `d.m.Y H:i` für Deutsch, `m/d/Y h:i A` für Englisch, optional)
* `transaction.failedAt` - Datum und Uhrzeit des Fehlschlags (formatiert, optional)
* `transaction.failReason` - Fehlergrund (Text, optional)
* `transaction.offsiteReason` - Grund für Offsite-Autorisierung (Text, optional)
* `transaction.paymentMethod.type` - Zahlungsmethoden-Typ (Text, optional)
* `transaction.paymentMethod.displayName` - Vorfomatieter Anzeigename der Zahlungsmethode (Text, optional)
* `transaction.paymentMethod.card.lastFour` - Letzte vier Ziffern der Karte (Text, optional, nur bei Karten)
* `transaction.paymentMethod.card.expirationDate` - Ablaufdatum der Karte formatiert als "MM/YYYY" (Text, optional, nur bei Karten)

### Zahlungsmethoden-Informationen

Verfügbar in zahlungsmethodenbezogenen Benachrichtigungen:

* `paymentMethod.type` - Zahlungsmethoden-Typ (Text)
* `paymentMethod.displayName` - Vorfomatieter Anzeigename der Zahlungsmethode (Text)
* `paymentMethod.card.lastFour` - Letzte vier Ziffern der Karte (Text, optional, nur bei Karten)
* `paymentMethod.card.expirationDate` - Ablaufdatum der Karte formatiert als "MM/YYYY" (Text, optional, nur bei Karten)

### Abonnement-Informationen

Verfügbar in abonnementbezogenen Benachrichtigungen:

* `subscription.number` - Abonnementnummer (Text)
* `subscription.name` - Abonnementname (Text)
* `subscription.poNumber` - Bestellnummer (Text, optional)
* `subscription.trialEndsOn` - Datum des Testzeitraum-Endes (formatiert, optional)
* `subscription.customFields.<key>` - Wert eines benutzerdefinierten Feldes (Text, optional)

### Preisänderungs-Items

Verfügbar in Preisänderungs-Benachrichtigungen (Array):

* `updateItems[].subscriptionId` - Abonnement-ID (Text)
* `updateItems[].subscriptionNumber` - Abonnementnummer (Text)
* `updateItems[].subscriptionName` - Abonnementname (Text)
* `updateItems[].contractStart` - Vertragsstartdatum und -zeit (formatiert)
* `updateItems[].applyOn` - Datum und Zeit der Anwendung (formatiert)
* `updateItems[].billingInterval` - Abrechnungsintervall (z.B. "monatlich", "jährlich") (Text)
* `updateItems[].oldPrice` - Vorheriger Preis (formatiert)
* `updateItems[].newPrice` - Neuer Preis (formatiert)

## Verwendungsbeispiele

### Einfacher Variablenzugriff

```
Hallo {{ customer.firstName }} {{ customer.lastName }},

Ihre Rechnung {{ invoice.number }} über {{ invoice.totalGrossAmount }} ist fällig.
```

### Verschachtelte Eigenschaften

```
Zahlungsmethode: {{ invoice.paymentMethod.displayName }}

{% if invoice.paymentMethod.card %}
Kartennummer: ****{{ invoice.paymentMethod.card.lastFour }}
Ablaufdatum: {{ invoice.paymentMethod.card.expirationDate }}
{% endif %}
```

### Datumsformatierung

Daten werden automatisch basierend auf der Sprache formatiert:

* Deutsch (`de`): `d.m.Y` (z.B. `31.12.2024`)
* Englisch (`en`): `m/d/Y` (z.B. `12/31/2024`)

Datum/Zeit werden formatiert als:

* Deutsch (`de`): `d.m.Y H:i` (z.B. `31.12.2024 14:30`)
* Englisch (`en`): `m/d/Y h:i A` (z.B. `12/31/2024 02:30 PM`)

```
Fälligkeitsdatum: {{ invoice.dueDate }}
Bezahlt am: {{ transaction.paidAt }}
```

### Array-Iteration

```
{% for item in updateItems %}
Abonnement: {{ item.subscriptionName }} ({{ item.subscriptionNumber }})
Alter Preis: {{ item.oldPrice }} / {{ item.billingInterval }}
Neuer Preis: {{ item.newPrice }} / {{ item.billingInterval }}
Gültig ab: {{ item.applyOn }}
{% endfor %}
```

### Bedingter Zugriff

```
{% if invoice.paymentMethod %}
Zahlungsmethode: {{ invoice.paymentMethod.displayName }}
{% endif %}

{% if transaction.failReason %}
Fehlergrund: {{ transaction.failReason }}
{% endif %}
```

## API-Zugriff

Du kannst alle verfügbaren Variablen programmatisch über die API abrufen:

```
GET /ui/notification-template-variables?notificationType=invoice.finalized
```

Dies gibt eine JSON-Antwort mit allen Variablen zurück, gruppiert nach Kategorien, einschließlich Beschriftungen, Typen und Beschreibungen.
