# Einstellungen

Datenbank, SelectLine-API, Lizenz, Server, E-Mail-Versand und EU-Auslands-Kontengruppen.

# SelectLine - Einstellungen

Unter **SelectLine → Einstellungen** liegen alle Angaben, mit denen sich FINN.ghost in Ihre
Datenstruktur einfügt. Jede Karte hat hier eine eigene Seite.

![Menü SelectLine, Einstellungen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-einstellungen-8aa34880-menue-einstellungen.png)

## Die Karten

| Karte | Inhalt |
| ------------------------------- | ------------------------------------------------- |
| [Datenbank](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/datenbank) | Verbindung zur MSSQL-Datenbank des Mandanten |
| [SelectLine-API](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/selectline-api) | Adresse, AppKey und Benutzer der SelectLine-API |
| [Lizenz und Module](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/lizenz-und-module) | der Lizenzschlüssel und was er freischaltet |
| [Server und Oberfläche](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/server-und-oberflache) | Port, Bildformat, Bildqualität, Benutzeranmeldung |
| [SSL mit Let's Encrypt](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/ssl-mit-lets-encrypt) | Zertifikat automatisch beantragen und erneuern |
| [E-Mail-Versand](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/e-mail-versand) | SMTP für Fehlermeldungen |
| [E-Mail über Microsoft 365](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/e-mail-uber-microsoft-365) | OAuth und App-Only statt Kennwort |
| [EU-Auslands-Kontengruppen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/eu-auslands-kontengruppen) | Kontengruppen je Land für das OSS-Verfahren |

<p class="callout info">Die Karten erscheinen nacheinander: ohne Datenbankverbindung keine API-Karte, ohne API keine Lizenz, ohne Lizenz keine Modulkarten. Eine fehlende Karte heißt also, dass der Schritt davor noch offen ist.</p>

## Wann die Anwendung neu startet

Manche Änderungen wirken erst nach einem Neustart des Dienstes — den löst FINN.ghost selbst
aus:

| Geändert | Was passiert |
| -------------------------------- | ------------------------------------------ |
| Lizenz | Neustart, damit die Module geladen werden |
| Port, Bildformat, Anmeldung | Neustart, danach ist die Oberfläche unter dem neuen Port erreichbar |
| Zertifikat geholt oder importiert | Neustart, damit es der Webserver verwendet |
| Datenbank, API, E-Mail | kein Neustart |

<p class="callout warning">Wird der Port geändert, ist die Oberfläche unter der alten Adresse nicht mehr erreichbar. Der Browser wird auf die neue Adresse geschickt — Lesezeichen und Verknüpfungen gehören danach angepasst.</p>

## Wo die Angaben landen

In der `config.json` im Installationsordner. Felder mit Kennwörtern werden dabei
verschlüsselt. Siehe [Anpassungen über die config.json](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/anpassungen-uber-die-configjson).

## Nächster Schritt

[Datenbank](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/datenbank)

# Datenbank

Die Verbindung zur MSSQL-Datenbank des SelectLine-Mandanten. Sie ist die erste Einstellung —
ohne sie erscheinen die weiteren Karten nicht.

![Karte Datenbank](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-datenbank-7173c8cd-einstellungen-datenbank.png)

## Die Felder

| Feld | Inhalt | Beispiel |
| ------------- | ------------------------------------------- | ------------------------ |
| **Name** | Datenbank des gewünschten Mandanten | `SL_M1000` |
| **Host** | SQL-Server und Instanz | `SQL02\SQLSRV17` |
| **Nutzer** | SQL-Benutzer | `sa` |
| **Passwort** | dessen Kennwort | |

<p class="callout danger">Der Benutzer braucht Rechte auf die Tabellen dieser Datenbank <strong>und</strong> das Recht, Tabellen anzulegen — FINN.ghost legt eigene Tabellen im Mandanten an. Ein reines Leserecht genügt nicht.</p>

<p class="callout info">Der Datenbankname bestimmt, in <strong>welchem Mandanten</strong> gearbeitet wird. Bei mehreren Mandanten lohnt der doppelte Blick: Alles, was FINN.ghost später schreibt, landet in diesem.</p>

## Wozu der direkte Zugriff dient

Gelesen wird direkt aus der Datenbank, geschrieben über die SelectLine-API.

<p class="callout success">Der Grund ist Tempo: Ein Artikelexport prüft zehntausende Datensätze auf Änderungen. Über die API wäre das um ein Vielfaches langsamer. Geschäftslogik — Nummernkreise, Preisfindung, Buchungen — bleibt trotzdem der SelectLine überlassen.</p>

Siehe [SelectLine-API](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/selectline-api).

## Wenn die Verbindung nicht zustande kommt

| Meldung oder Symptom | Ursache |
| ---------------------------------------- | ------------------------------------ |
| Anmeldung fehlgeschlagen | Benutzer oder Kennwort falsch |
| Server nicht erreichbar | Instanzname falsch, oder der SQL-Browser-Dienst läuft nicht |
| Zeitüberschreibung | Firewall zwischen FINN.ghost und SQL-Server |
| Verbindung steht, Module bleiben leer | falsche Datenbank — ein anderer Mandant |

<p class="callout info">Bei einer benannten Instanz muss der Dienst <strong>SQL Server Browser</strong> laufen, sonst lässt sich <code>Server\Instanz</code> nicht auflösen. Alternativ den Port direkt angeben.</p>

Die genaue Meldung steht im Protokoll. Siehe [Log Informationen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/log-informationen).

## Nächster Schritt

[SelectLine-API](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/selectline-api)

# SelectLine-API

Über die SelectLine-API schreibt FINN.ghost in den Mandanten — Belege, Adressen, Artikel,
Journale, Buchungen. Sie gehört zu sl.mobile.

![Karte API](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-api-22254d3d-einstellungen-api.png)

## Die Felder

| Feld | Inhalt |
| ------------- | ---------------------------------------------------------- |
| **URL** | Adresse der API |
| **AppKey** | der bei SelectLine hinterlegte AppKey |
| **Nutzer** | in der SelectLine angelegter API-Benutzer |
| **Passwort** | dessen Kennwort |

### URL

Die Adresse von sl.mobile, mit `slmobileApi` statt `slmobile`:

```text
https://localhost/slmobileApi
```

<p class="callout info">Läuft FINN.ghost auf demselben Server wie sl.mobile, ist <code>localhost</code> die zuverlässigste Angabe — sie ist unabhängig von Rechnernamen und DNS.</p>

### AppKey

Der AppKey wurde beim Kauf der API bei SelectLine angegeben. Einzusehen in der SelectLine
unter **Hilfe → Lizenzierung → AppKeys**.

<p class="callout warning">Weicht der Eintrag hier vom AppKey in der SelectLine ab, meldet die API die Anmeldung ab. In diesem Fall den Wert aus der SelectLine übernehmen — nicht umgekehrt.</p>

<p class="callout info">Bei der Lizenz <strong>SelectLine Shopify-Anbindung</strong> ist die API in der Lizenz enthalten; das Feld bleibt dann leer. In der Oberfläche steht deshalb <em>für Shopify nicht notwendig</em>.</p>

### Nutzer und Passwort

Der in der API-Konfiguration von sl.mobile eingerichtete API-Benutzer.

<p class="callout danger">Dieser Benutzer arbeitet mit seinen SelectLine-Rechten. Er braucht Rechte auf den Mandanten und auf die Bereiche, die die eingesetzten Module berühren — Artikel, Adressen, Belege, Journale. Fehlt ein Recht, scheitert genau die Übertragung, die es braucht.</p>

## Ob die Verbindung steht

Steht sie, zeigt die Karte oben rechts den **Namen des Mandanten**. Ein Klick darauf öffnet
die Angaben zum angemeldeten Benutzer.

<p class="callout success">Das ist die verlässlichste Einzelprüfung der Einrichtung: Der Name kommt aus der SelectLine — er erscheint nur, wenn Adresse, Benutzer, Kennwort und API-Lizenz zusammenpassen.</p>

## Wenn die Anmeldung scheitert

| Symptom | Ursache |
| ------------------------------------------- | ----------------------------------- |
| kein Mandantenname, Fehler im Protokoll | Benutzer, Kennwort oder AppKey falsch |
| Adresse nicht erreichbar | sl.mobile läuft nicht, oder die URL zeigt auf `slmobile` statt `slmobileApi` |
| Zertifikatsfehler | das Zertifikat von sl.mobile wird nicht anerkannt |
| Anmeldung geht, Schreiben scheitert | dem SelectLine-Benutzer fehlen Rechte |

Siehe [Log Informationen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/log-informationen).

## Nächster Schritt

[Lizenz und Module](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/lizenz-und-module)

# Lizenz und Module

Die Lizenz entscheidet, welche Module FINN.ghost lädt. Was nicht lizenziert ist, erscheint
nicht — weder im Menü noch in der Zeitsteuerung.

![Karte Lizenz](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-lizenz-944a3fc2-einstellungen-lizenz.png)

## Der Schlüssel

Ein Feld, in das der Lizenzschlüssel eingetragen wird. Er kommt vom Fachhändler oder von
DAKO-IT.

<p class="callout info">Nach dem Speichern startet die Anwendung neu, damit die freigeschalteten Module geladen werden. Das dauert einige Sekunden; danach die Seite neu laden.</p>

## Was danach im Menü steht

Je Modul ein Menüpunkt.

![Menü mit den lizenzierten Modulen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-lizenz-21bd9e67-menue-module.png)

| Modul | Was es macht |
| ---------------------------- | -------------------------------------------- |
| **Shopware6** | Anbindung an Shopware 6 |
| **Shopify** | Anbindung an Shopify |
| **FINN.webshop \| B2B** | eigener Webshop |
| **FINN.lager** | Lagermodul mit Boards und Kommissionierung |
| **Merkmale / Varianten** | Sachmerkmale pflegen, Varianten erzeugen |
| **FINN.mail2sl** | E-Mails automatisch als Journal ablegen |
| **GetMyInvoices** | Eingangsrechnungen aus dem Portal |
| **FINN.AI MCP** | Zugriff für KI-Anwendungen |
| **Pipedrive** | Abgleich mit dem CRM |
| **Übersetzungen** | Artikeltexte übersetzen |

<p class="callout info">Zu jedem Modul gibt es ein eigenes Handbuch. Die Liste steht im Überblick.</p>

Siehe [Überblick](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/uberblick).

## Wenn ein Modul fehlt

| Prüfung | |
| ------------------------------------------------ | ------------------------ |
| Ist der Schlüssel vollständig eingetragen? | Karte *Lizenz* |
| Wurde nach dem Speichern neu gestartet? | Seite neu laden |
| Ist das Modul überhaupt lizenziert? | beim Fachhändler erfragen |
| Steht im Protokoll ein Fehler zur Lizenz? | [Log Informationen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/log-informationen) |

<p class="callout warning">Die Lizenz wird gegen einen Dienst von DAKO-IT geprüft. Ohne ausgehende Internetverbindung kann diese Prüfung fehlschlagen — dann fehlen die Module, obwohl der Schlüssel richtig ist.</p>

## Nächster Schritt

[Server und Oberfläche](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/server-und-oberflache)

# Server und Oberfläche

Die Karte **FINN.ghost** regelt, unter welchem Port die Oberfläche läuft, wie Bilder an die
Drittsysteme übertragen werden und ob eine Anmeldung nötig ist.

![Einstellungen Server](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-server-5a6862dd-einstellungen-server.png)

## Port

Der Port, unter dem die Oberfläche erreichbar ist. Standard ist **8083**.

<p class="callout warning">Laufen mehrere FINN.ghost-Installationen auf einem Server, braucht jede einen eigenen Port. Sonst startet die zweite nicht — im Protokoll steht dann, dass der Port belegt ist.</p>

<p class="callout info">Nach dem Speichern startet die Anwendung neu und der Browser wird auf die neue Adresse geschickt. Lesezeichen, Verknüpfungen und die Einbindung in die SelectLine-Dashboards gehören danach angepasst.</p>

## Bildformat

In welchem Format Bilder aus der SelectLine an das angeschlossene System übertragen werden —
unabhängig davon, wie sie in der SelectLine abgelegt sind.

| Wert | Wann |
| ------------ | -------------------------------------------------- |
| **webp** | moderne Shops; kleinste Dateien bei gleicher Qualität |
| **jpg** | breiteste Verträglichkeit, für Fotos |
| **png** | wenn Transparenz gebraucht wird |
| **original** | keine Umwandlung; überträgt, was in der SelectLine liegt |

<p class="callout info">Umgewandelt wird beim Übertragen. Eine Änderung wirkt deshalb erst auf Bilder, die danach übertragen werden — für die bereits übertragenen braucht es einen Lauf, der die Bilder erneut schickt.</p>

## Bildqualität

Ein Wert von 1 bis 100, Vorgabe **80**. Gilt für die verlustbehafteten Formate.

<p class="callout success">80 ist ein bewusst gewählter Kompromiss: Unterschiede zum Original sind im Shop kaum zu sehen, die Dateien aber deutlich kleiner. Höhere Werte lohnen selten, niedrigere werden bei Produktbildern sichtbar.</p>

<p class="callout info">Bei <em>original</em> hat die Angabe keine Wirkung.</p>

## Nutzeranmeldung

Ist der Haken gesetzt, verlangt die Oberfläche eine Anmeldung. Angemeldet wird sich mit den
**API-Benutzern aus sl.mobile**.

<p class="callout danger">Ohne diesen Haken kann jeder, der den Server im Netz erreicht, die Oberfläche öffnen — und damit Einstellungen ändern und Übertragungen starten. Für jede Installation, die über <code>localhost</code> hinaus erreichbar ist, gehört die Anmeldung eingeschaltet.</p>

<p class="callout warning">Vor dem Einschalten prüfen, dass ein passender API-Benutzer existiert und das Kennwort bekannt ist — sonst sperrt man sich aus. Wieder hinein kommt man dann nur über die <code>config.json</code> auf dem Server.</p>

Siehe [Anpassungen über die config.json](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/anpassungen-uber-die-configjson).

## Zertifikate herunterladen

Zwei Schaltflächen in derselben Karte:

| Schaltfläche | Was sie liefert |
| ----------------------------- | ------------------------------------------- |
| **ROOT ZERTIFIKAT DOWNLOAD** | das Stammzertifikat für den Arbeitsplatz |
| **ZERTIFIKATE DOWNLOAD** | Zertifikat und Schlüssel für diese Installation |

Das ist der ältere Weg zu einer sicheren Verbindung. Siehe
[Zertifikat einrichten](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/zertifikat-einrichten).

<p class="callout success">Für Installationen mit einer öffentlich erreichbaren Domain ist Let's Encrypt einfacher — dort entfällt das Verteilen von Zertifikaten an die Arbeitsplätze.</p>

Siehe [SSL mit Let's Encrypt](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/ssl-mit-lets-encrypt).

## Nächster Schritt

[SSL mit Let's Encrypt](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/ssl-mit-lets-encrypt)

# E-Mail-Versand

FINN.ghost verschickt Fehlermeldungen und Zusammenfassungen per E-Mail. Der Versand ist
technisch optional — praktisch ist er das Frühwarnsystem der Installation.

![Einstellungen Mail](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-mail-f94d6c89-einstellungen-mail.png)

<p class="callout success">Ohne Mailversand merkt niemand, dass eine Übertragung seit Tagen scheitert — die Meldung steht nur im Protokoll, und dort sieht niemand von selbst hinein. Diese Karte gehört deshalb zur Grundeinrichtung.</p>

## Ein- und ausschalten

Der Schalter in der Kartenüberschrift. Ausgeschaltet werden keine Mails verschickt und die
Felder sind ausgeblendet.

## Drei Wege

Die Karte hat drei Reiter:

| Reiter | Wann |
| ------------------- | -------------------------------------------------- |
| **Standard** | ein SMTP-Konto mit Benutzer und Kennwort |
| **M365-OAuth** | Microsoft 365, Versand über ein angemeldetes Konto |
| **M365-App-Only** | Microsoft 365, Versand ohne Benutzeranmeldung |

Die beiden Microsoft-Wege stehen auf einer eigenen Seite. Siehe
[E-Mail über Microsoft 365](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/e-mail-uber-microsoft-365).

## Reiter Standard

| Feld | Inhalt |
| ------------------------------ | ------------------------------------------- |
| **Host** | SMTP-Server des Kontos |
| **Port** | üblich 465 (SSL) oder 587 (STARTTLS) |
| **Verschlüsselte Verbindung** | Verschlüsselung einschalten |
| **Outlook365** | Besonderheiten von Microsoft-365-Postfächern |
| **Nutzer**, **Passwort** | Zugang zum Postfach |
| **Absender** | abweichende Absenderadresse |
| **Absender Name** | Anzeigename |
| **Empfänger** | Ziele, mehrere mit Komma getrennt |
| **Betreff** | Betreff der Meldungsmails |
| **Interval** | Zeitspanne in Minuten |

<p class="callout info">Beim Speichern wird sofort eine <strong>Testmail</strong> verschickt. Kommt sie nicht an, stimmt etwas an den Angaben — dann lohnt der Blick ins Protokoll, dort steht die Antwort des Mailservers.</p>

## Was das Intervall bedeutet

Meldungen werden gesammelt und im eingestellten Abstand verschickt — nicht einzeln.

<p class="callout success">Das ist Absicht: Bei einer Störung entstehen viele gleichartige Fehler. Gesammelt ergibt das eine Mail, einzeln hunderte.</p>

<p class="callout info">10 Minuten sind ein guter Startwert. Wer nur die Tagesübersicht braucht, kann höher gehen; unter 5 Minuten wird es unruhig.</p>

## Ein sinnvoller Betreff

Der Betreff steht in jeder Mail. Bei mehreren Installationen gehört hinein, um **welche** es
sich handelt — etwa `FINN.ghost Shop` und `FINN.ghost Lager`.

<p class="callout warning">Sonst sind die Mails nicht auseinanderzuhalten, sobald der zweite Ghost dazukommt.</p>

## Wenn keine Mails ankommen

| Ursache | Abhilfe |
| ------------------------------------------ | ----------------------------------- |
| Schalter aus | einschalten |
| Empfänger leer | Adresse eintragen |
| Anmeldung abgelehnt | Kennwort prüfen; bei Microsoft 365 einen der M365-Reiter nutzen |
| Port blockiert | Firewall für ausgehendes SMTP öffnen |
| Mails im Spam | Absenderadresse zur eigenen Domain passend wählen |

<p class="callout warning">Microsoft hat die Anmeldung per Benutzer und Kennwort für SMTP abgeschaltet. Für Microsoft 365 führt der Reiter <em>Standard</em> deshalb in der Regel nicht mehr zum Ziel.</p>

Siehe [E-Mail über Microsoft 365](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/e-mail-uber-microsoft-365).

## Nächster Schritt

[E-Mail über Microsoft 365](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/e-mail-uber-microsoft-365)

# E-Mail über Microsoft 365

Microsoft hat die Anmeldung mit Benutzer und Kennwort für SMTP abgeschaltet. Für Postfächer
in Microsoft 365 führt deshalb einer der beiden folgenden Wege zum Ziel. Beide brauchen
einmalig eine **App-Registrierung** im Azure-Portal.

## Welchen Weg wählen

| | **OAuth** | **App-Only** |
| ------------------- | ------------------------------ | ------------------------------ |
| Versand als | ein angemeldetes Benutzerkonto | die Anwendung selbst |
| Anmeldung | einmalig im Browser | keine |
| Absender | das angemeldete Postfach | ein frei angegebenes Postfach |
| Nötige Rechte | Delegiert: `SMTP.Send`, `offline_access` | Anwendung: `Mail.Send` |

<p class="callout success">Für einen Server, der jahrelang unbeaufsichtigt läuft, ist <strong>App-Only</strong> der robustere Weg: Es hängt kein Benutzerkonto daran, das gesperrt werden oder das Kennwort wechseln könnte.</p>

<p class="callout danger">App-Only mit <code>Mail.Send</code> als Anwendungsberechtigung erlaubt der Registrierung, als <strong>jedes</strong> Postfach der Organisation zu senden. Wer das eng ziehen will, beschränkt die Registrierung in Exchange Online über eine Anwendungszugriffsrichtlinie auf das eine Absenderpostfach. Das gehört mit der Microsoft-365-Administration abgestimmt.</p>

## Weg 1 — OAuth

![Reiter M365-OAuth](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-e933b566-m365-oauth-1-tab.png)

### 1. App registrieren

Im Azure-Portal eine neue App-Registrierung anlegen, mit einem eindeutigen Namen. Als
**Umleitungs-URI** wird die Adresse dieser FINN.ghost-Installation eingetragen, endend auf
`/api/mail/oauth/redirect`:

```text
https://finn.kunde.de:8083/api/mail/oauth/redirect
```

![App-Registrierung anlegen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-a925f20d-m365-oauth-2-appregistrierung.png)

<p class="callout danger">Die Umleitungs-URI muss <strong>zeichengenau</strong> mit der Adresse übereinstimmen, unter der FINN.ghost erreichbar ist — samt Port. Weicht sie ab, bricht Microsoft die Anmeldung mit einer Meldung zur Redirect-URI ab. Das ist der häufigste Stolperstein.</p>

<p class="callout warning">In älteren Fassungen dieser Anleitung endete die Adresse auf <code>/api/settings/oauth/redirect</code>. Das gilt nicht mehr — der Pfad lautet <code>/api/mail/oauth/redirect</code>.</p>

### 2. Clientschlüssel erstellen

Unter **Zertifikate & Geheimnisse** einen neuen Clientschlüssel anlegen und den **Wert**
sofort notieren.

![Clientschlüssel erstellen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-72f97cbd-m365-oauth-3-clientschluessel.png)

<p class="callout warning">Der Wert wird nur einmal angezeigt. Wer ihn nicht notiert, muss einen neuen Schlüssel anlegen. Clientschlüssel laufen außerdem ab — das Ablaufdatum gehört notiert, sonst bleibt der Mailversand irgendwann ohne Vorwarnung stehen.</p>

### 3. Berechtigungen setzen

Unter **API-Berechtigungen** zwei delegierte Berechtigungen von **Microsoft Graph**
hinzufügen und die Zustimmung erteilen:

| Berechtigung | Wofür |
| ---------------- | -------------------------------------------- |
| `SMTP.Send` | Mails über SMTP AUTH senden |
| `offline_access` | Zugriff behalten, ohne erneute Anmeldung |

![API-Berechtigungen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-3bed4cd7-m365-oauth-4-berechtigungen.png)

<p class="callout info"><code>User.Read</code> steht dort in der Regel schon — es wird beim Anlegen der Registrierung mitgegeben und kann bleiben. Wichtig ist der grüne Haken bei <em>Status</em>: ohne erteilte Zustimmung greifen die Berechtigungen nicht.</p>

### 4. Werte übertragen

Aus dem Reiter **Übersicht** der Registrierung:

| Feld in Azure | Feld in FINN.ghost |
| ------------------------------- | ------------------ |
| Anwendungs-ID (Client) | **Client ID** |
| Verzeichnis-ID (Mandant) | **Tenant ID** |
| beim Anlegen hinterlegte Umleitungs-URI | **Redirect URI** |
| notierter Wert des Clientschlüssels | **Client Secret** |

![Werte in FINN.ghost eintragen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-0737a4b9-m365-oauth-5-felder.png)

### 5. Verbinden

Nach dem Klick auf **Verbinden** fragt Microsoft nach der Anmeldung. Danach steht die
Verbindung, und in der Karte erscheint die Adresse des verbundenen Kontos.

<p class="callout info">Angemeldet wird das Postfach, aus dem gesendet wird. Es muss ein Postfach in derselben Organisation sein.</p>

## Weg 2 — App-Only

![Reiter M365-App-Only](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-07385ff4-m365-apponly-1-tab.png)

### 1. App registrieren

Wie oben eine neue App-Registrierung mit eindeutigem Namen. Eine Umleitungs-URI wird hier
**nicht** gebraucht.

![App-Registrierung anlegen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-2e774cfd-m365-apponly-2-appregistrierung.png)

### 2. Clientschlüssel erstellen

Unter **Zertifikate & Geheimnisse**, Wert notieren.

![Clientschlüssel erstellen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-97ff022d-m365-apponly-3-clientschluessel.png)

### 3. Berechtigung setzen

Unter **API-Berechtigungen** eine **Anwendungsberechtigung** von Microsoft Graph hinzufügen
und die Zustimmung erteilen:

| Berechtigung | Typ |
| ------------ | ------------------------ |
| `Mail.Send` | Anwendung |

![API-Berechtigung Mail.Send](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-eef69e85-m365-apponly-4-berechtigungen.png)

<p class="callout warning">Anwendungsberechtigungen brauchen immer die <strong>Administratorzustimmung</strong>. Ohne sie schlägt der Versand mit einer Rechtemeldung fehl, obwohl alle Werte richtig eingetragen sind.</p>

### 4. Werte übertragen

| Feld in Azure | Feld in FINN.ghost |
| ------------------------ | ------------------- |
| Anwendungs-ID (Client) | **Client ID** |
| Verzeichnis-ID (Mandant) | **Tenant ID** |
| Wert des Clientschlüssels | **Client Secret** |
| — | **Absender-E-Mail** |

![Werte in FINN.ghost eintragen](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-m365-65dfcf5d-m365-apponly-5-felder.png)

Die **Absender-E-Mail** ist das Postfach, aus dem gesendet wird.

<p class="callout info">Nach dem Speichern verschickt FINN.ghost eine Testmail an die eingetragenen Empfänger und bestätigt das in der Karte. Kommt sie nicht an, fehlt meist die Administratorzustimmung.</p>

Über **Trennen** wird die Verbindung wieder gelöst.

## Wenn der Versand nicht geht

| Meldung oder Symptom | Ursache |
| -------------------------------------------- | ----------------------------------- |
| Fehler zur Redirect-URI beim Verbinden | Umleitungs-URI weicht ab |
| Anmeldung geht, Versand scheitert | Berechtigung fehlt oder ohne Zustimmung |
| lief monatelang, jetzt nicht mehr | Clientschlüssel abgelaufen |
| App-Only meldet fehlende Rechte | Administratorzustimmung nicht erteilt |
| Absender wird abgelehnt | Postfach gehört nicht zur Organisation |

Die Antwort von Microsoft steht im Protokoll. Siehe [Log Informationen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/log-informationen).

## Nächster Schritt

[EU-Auslands-Kontengruppen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/eu-auslands-kontengruppen)

# EU-Auslands-Kontengruppen

Beim Import von Bestellungen aus einem Shop entscheidet die **Kontengruppe** des Kunden,
mit welchen Erlöskonten gebucht wird. Für Lieferungen in andere EU-Länder ist das je Land
unterschiedlich — das ist das **OSS-Verfahren**.

![Einstellungen OSS](https://wiki.dako-it.com/uploads/images/gallery/2026-09/ghostdocs-finnghost-systemhandbuch-sys-oss-e680a00a-einstellungen-oss.png)


## Was eingestellt wird

Je Land eine Zeile:

| Spalte | Inhalt |
| --------------------------- | ------------------------------------------- |
| **Land (ISO)** | Länderkennzeichen mit zwei Zeichen, etwa `AT` |
| **Kontengruppe ohne VAT** | für Kunden ohne gültige Umsatzsteuer-Identnummer |
| **Kontengruppe mit VAT** | für Kunden mit gültiger Umsatzsteuer-Identnummer |

Hinzugefügt wird ein Land über das Feld **Land hinzufügen (ISO2)**; die Kontengruppen kommen
aus der Auswahl der im Mandanten vorhandenen Gruppen.

<p class="callout info">Es gibt zusätzlich eine <strong>Vorgabe</strong> für alle Länder ohne eigene Zeile. Damit genügt es, die Länder einzutragen, die abweichend behandelt werden.</p>

## Welche Adresse zählt

Maßgeblich ist das Land der **Lieferadresse** der Bestellung, nicht das der Rechnungsadresse.

<p class="callout success">Das entspricht dem OSS-Verfahren: Besteuert wird dort, wo die Ware ankommt.</p>

## Wann es wirkt

Beim Anlegen oder Aktualisieren eines Kunden im Rahmen des Bestellimports. Bestehende Kunden
und bereits importierte Bestellungen werden nicht nachträglich geändert.

<p class="callout warning">Diese Einstellung gehört <strong>vor</strong> dem ersten Bestellimport gesetzt. Sonst liegen die ersten Bestellungen mit der falschen Kontengruppe im Mandanten und müssen von Hand korrigiert werden.</p>

## Wer das entscheidet

<p class="callout danger">Welche Kontengruppe für welches Land richtig ist, ist eine steuerliche Frage. Sie gehört mit der Buchhaltung oder dem Steuerberater geklärt — nicht in der Schnittstelle geraten.</p>

## Zurück zur Übersicht

[SelectLine - Einstellungen](https://wiki.dako-it.com/books/finnghost-systemhandbuch/page/selectline-einstellungen)