# Übertragungsmodul (SFTP) einrichten

> Versandrückmeldung an Xentral über das Übertragungsmodul — inklusive Chargen, MHD und gelieferten Mengen je Lieferscheinposition.

Standardmäßig meldet FFN Connect nur die **Trackingnummer** über die Xentral-API zurück. Aktivierst du das **Übertragungsmodul**, legt FFN Connect stattdessen für jedes Paket eine XML-Datei auf deinem FTP-/SFTP-Server ab, die Xentral einliest. Nur über diesen Weg lassen sich **Chargen, MHD und gelieferte Mengen je Lieferscheinposition** zurückmelden.

## Wann brauche ich das Übertragungsmodul?

| | Ohne Übertragungsmodul (Standard) | Mit Übertragungsmodul |
|---|---|---|
| Übertragungsweg | Xentral-REST-API | XML-Datei per FTP/SFTP |
| Trackingnummer | ✅ | ✅ |
| Trackinglink und Versandart | — | ✅ |
| Gelieferte Menge je Position | — | ✅ |
| **Chargen** | — | ✅ |
| **MHD (Mindesthaltbarkeitsdatum)** | — | ✅ |
| Lieferschein abschließen | über die Option „Auftrag in xentral archivieren" | Der Lieferschein wird mit Status `abgeschlossen` übergeben |

> [!TIPP]
> Arbeitest du mit chargen- oder MHD-pflichtiger Ware (Lebensmittel, Kosmetik, Pharma), führt am Übertragungsmodul kein Weg vorbei — ohne es kennt Xentral nach dem Versand weder Charge noch MHD der ausgelieferten Ware.

## Voraussetzungen

1. Das **Übertragungsmodul** ist in deinem Xentral aktiv und liest aus einem FTP- oder SFTP-Verzeichnis.
2. Du hast **Zugangsdaten** für dieses Verzeichnis: Host, Benutzername, Passwort und — falls abweichend — Port und Unterverzeichnis.
3. Der Zugang hat **Schreibrechte**. FFN Connect legt die Dateien ab, gelesen werden sie von Xentral.

> [!HINWEIS]
> Welches Verzeichnis überwacht wird, muss auf **beiden** Seiten identisch sein. Sprich die Einrichtung im Zweifel mit deinem Ansprechpartner bei FFN Connect ab.

## Einrichtung in Xentral

Die Xentral-Seite legst du als **Übertragung** an. Du findest das Modul unter **Einstellungen → Administration → Datenaustausch → Übertragungen (CSV/XML/EDI/PDF)** — oder über die **Smart Search** (⌘K) mit `Übertragung`. Ein Klick auf **Neu Anlegen** öffnet das Formular.

### Kommunikation: Verbindung zum Server

![Xentral: Bereich „Kommunikation" einer Übertragung mit Übertragungsformat, Typ, Verbindungstest, Server, Port, SSL, Username und Passwort](https://ffn-connect.de/docs-assets/merchants/xentral/transfer-module/_images/02-xentral-kommunikation.png)

| Feld | Wert für FFN Connect |
|------|----------------------|
| **Übertragungsformat** | **XML** — FFN Connect schreibt XML-Dateien |
| **Typ** | **FTP**, **FTPS (Benutzername und Passwort)** oder **SFTP** — passend zu deinem Server, identisch zur Einstellung in FFN Connect |
| **Server**, **Port** | Host und Port desselben Servers, den du in FFN Connect hinterlegst |
| **Username**, **Passwort** | Zugangsdaten des Servers |
| **Codierung (Senden)** | UTF-8 |
| **API** | leer lassen — dieses Feld verknüpft eine Übertragung mit einem API-Konto und wird für den Dateiaustausch nicht gebraucht |

Über **Verbindungstest** prüfst du direkt in Xentral, ob der Server erreichbar ist.

> [!TIPP]
> Die Felder **OAuth Client ID / Secret / URL** gehören zum Typ **API** und bleiben bei einer FTP-/SFTP-Übertragung leer.

### Speicherorte: wo die Dateien liegen

![Xentral: Felder Speicherort (Ausgang), Dateiname Prefix, Antwort-Speicherort (Eingang), Antwort-Dateiname Prefix und „Nach Download vom Server löschen"](https://ffn-connect.de/docs-assets/merchants/xentral/transfer-module/_images/03-xentral-speicherorte.png)

Entscheidend ist der **Antwort-Speicherort (Eingang)**: Das ist das Verzeichnis, aus dem Xentral die Rückmeldungen liest — also genau der Ordner, in den FFN Connect schreibt.

| Feld | Bedeutung |
|------|-----------|
| **Speicherort (Ausgang)** | Verzeichnis, in das Xentral Belege exportiert. Nur nötig, wenn Xentral zusätzlich Dokumente ausliefern soll. |
| **Antwort-Speicherort (Eingang)** | Verzeichnis, aus dem Xentral die Rückmeldungen liest — muss dem `response`-Ordner unterhalb des in FFN Connect gesetzten **FTP-Root** entsprechen. |
| **Antwort-Dateiname Prefix** | Optionaler Filter auf den Dateinamen. Leer lassen — FFN Connect benennt die Dateien nach dem Beleg. |
| **Nach Download vom Server löschen** | Räumt verarbeitete Dateien weg. Empfohlen, damit das Verzeichnis nicht unbegrenzt wächst. |

> [!WICHTIG]
> FFN Connect legt die Dateien immer unter `<FTP-Root>/response/` ab. Trägst du in FFN Connect als FTP-Root z. B. `./` ein, muss der **Antwort-Speicherort (Eingang)** in Xentral auf dasselbe `response`-Verzeichnis zeigen. Passt das nicht zusammen, schreibt FFN Connect ins Leere und Xentral wartet vergeblich.

### Belege empfangen: was Xentral mit der Rückmeldung macht

![Xentral: Bereich „Belege empfangen" mit Lagerzahlen empfangen, Einlagerungsverhalten, Tracking empfangen, Gemeldete MHD / Chargen auslagern und Automatische Rückmeldung](https://ffn-connect.de/docs-assets/merchants/xentral/transfer-module/_images/04-xentral-belege-empfangen.png)

| Option | Empfehlung |
|--------|------------|
| **Tracking empfangen** | **einschalten** — sonst landen Trackingnummer und Trackinglink nicht am Lieferschein |
| **Gemeldete MHD / Chargen auslagern** | **einschalten**, wenn du chargen- oder MHD-pflichtige Ware führst — damit bucht Xentral genau die gemeldeten Chargen aus |
| **Versandart im Lieferschein anpassen** | einschalten, wenn die tatsächlich genutzte Versandart den Beleg aktualisieren soll |
| **Fehlermeldung für unbekannte Artikel anzeigen** | einschalten — meldet Positionen, die Xentral nicht zuordnen kann, im Übertragungen-Monitor |
| **Automatische Rückmeldung** | Anzahl Tage, nach denen Xentral eine Lieferung selbsttätig als erledigt meldet. Nur setzen, wenn du das bewusst willst. |
| Aufträge/Angebote empfangen, Bestellungen empfangen, Verbindlichkeiten, Lagerzahlen empfangen | **aus** — diese Daten kommen bei FFN Connect über die API, nicht über Dateien |

Vergiss zum Schluss nicht, oben im Bereich **Einstellungen** den Haken bei **Aktiv** zu setzen und eine **Bezeichnung** zu vergeben (z. B. `FFN Connect Rückmeldung`).

> [!HINWEIS]
> Die Bereiche **Belege versenden**, **Lagerzahlen**, **Verkaufsreport** und **Sonstige Aktionen** brauchst du für die Versandrückmeldung nicht. Sie gehören zu Aufbauten, in denen Xentral selbst Belege exportiert oder Bestände an ein Fremdsystem schickt — bei FFN Connect übernimmt das die API-Anbindung.

Nach dem Speichern siehst du im Kopf der Übertragung **Letzter Status** und **Letzte Übertragung**; die Reiter **Dateien**, **Tracking** und **Fehler** zeigen dir, was verarbeitet wurde.

## Einrichtung in FFN Connect

1. Öffne **Verkaufskanäle → dein Xentral-Kanal → Einstellungen → Bestellungen**.
2. Aktiviere im Bereich **Xentral Einstellungen** den Schalter **Übertragungsmodul für Versandrückmeldung verwenden (Empfohlen)**. Darunter klappen die Verbindungsfelder auf.
3. Trage die Zugangsdaten ein und klicke auf **Verbindung testen & speichern**.

![FFN Connect: Karte „Xentral Einstellungen" mit aktiviertem Übertragungsmodul und den Feldern FTP-Host, FTP-Port, FTP-Benutzername, FTP-Passwort, FTP-Root und Protokollauswahl](https://ffn-connect.de/docs-assets/merchants/xentral/transfer-module/_images/01-uebertragungsmodul-einstellungen.png)

| Feld | Pflicht | Hinweis |
|------|---------|---------|
| **FTP-Host** | ja | Hostname oder IP des Servers, z. B. `ftp.mein-xentral.de` — ohne `ftp://` |
| **FTP-Port** | nein | Leer lassen für den Standardport. Ohne Angabe verwendet FFN Connect **21**; für SFTP trägst du in der Regel **22** ein. |
| **FTP-Benutzername** | ja | |
| **FTP-Passwort** | ja | |
| **FTP-Root** | nein | Unterverzeichnis, in dem das Übertragungsmodul liegt, z. B. `./`. FFN Connect hängt daran automatisch `/response` an — das zeigt dir das Feld als Präfix an. |
| **Protokoll** | ja | **SFTP** oder **FTP**. Voreingestellt ist FTP — stelle bei einem SSH-Zugang (Port 22) unbedingt auf SFTP um. |

> [!WICHTIG]
> Die Zugangsdaten werden **erst nach einem erfolgreichen Verbindungstest gespeichert**. Schlägt der Test fehl, bleibt die vorherige Konfiguration bestehen. Der Test macht drei Dinge: Wurzelverzeichnis auflisten, Testdatei schreiben, Testdatei wieder löschen.

### Fehlermeldungen beim Verbindungstest

| Meldung | Ursache |
|---------|---------|
| „Authentifizierung am FTP-Server fehlgeschlagen." | Benutzername oder Passwort stimmen nicht — oder du hast FTP statt SFTP gewählt (bzw. umgekehrt). |
| „Der FTP-Server konnte nicht erreicht werden." | Host oder Port falsch, oder eine Firewall blockt die Verbindung. Prüfe, ob der Server Zugriffe von außen zulässt. |
| „Schreibrechte verweigert oder die Datei konnte auf dem Server nicht erzeugt werden." | Verbindung steht, aber der Benutzer darf im angegebenen Verzeichnis nicht schreiben. Prüfe **FTP-Root** und die Rechte. |
| „Es ist ein unerwarteter FTP-Fehler aufgetreten: …" | Alles andere. Die Originalmeldung des Servers steht am Ende — halte sie für den Support bereit. |

## Was FFN Connect überträgt

Sobald dein Fulfillment-Dienstleister ein Paket versendet hat, legt FFN Connect **eine XML-Datei pro Paket** ab:

```
<FTP-Root>/response/<Beleg-ID>_fulfillment_<Fulfillment-ID>_<Paket-ID>.xml
```

Die **Beleg-ID** ist die Xentral-ID des importierten Belegs (im Lieferschein-Modus der Lieferschein, im Auftrags-Modus der Auftrag), die **Fulfillment-ID** und die **Paket-ID** vergibt FFN Connect.

Die Datei enthält den Lieferschein im Status `abgeschlossen` samt Trackingdaten und den gelieferten Positionen:

```xml
<response>
  <xml>
    <lieferschein_list>
      <lieferschein>
        <status>abgeschlossen</status>
        <belegnr>LS1042</belegnr>
        <versandart>standard</versandart>
        <tracking_link>https://nolp.dhl.de/...</tracking_link>
        <tracking>00340434161094012345</tracking>
        <lieferschein_position_list>
          <lieferschein_position>
            <mhd_charge_block>
              <charge>CH-2026-04</charge>
              <mhd>2027-03-31</mhd>
              <menge>2</menge>
            </mhd_charge_block>
            <id>9911</id>
            <geliefert>2</geliefert>
          </lieferschein_position>
        </lieferschein_position_list>
      </lieferschein>
    </lieferschein_list>
  </xml>
</response>
```

| Feld | Bedeutung |
|------|-----------|
| `belegnr` | Nummer des Lieferscheins, auf den sich die Rückmeldung bezieht |
| `versandart` | Versandart, mit der tatsächlich versendet wurde |
| `tracking`, `tracking_link` | Trackingnummer und Sendungsverfolgungslink des Pakets |
| `id` | ID der **Lieferscheinposition** in Xentral — darüber ordnet Xentral die Rückmeldung zu |
| `geliefert` | tatsächlich gelieferte Menge dieser Position |
| `mhd_charge_block` | je Charge/MHD ein Block mit Charge, Mindesthaltbarkeitsdatum und Menge |

> [!HINWEIS]
> Bei Teillieferungen entsteht pro Paket eine eigene Datei. Bereits übertragene Pakete werden nicht erneut hochgeladen.

## Zusammenspiel mit der Abrufart

Das Übertragungsmodul arbeitet auf Ebene der **Lieferscheinpositionen** — es braucht also einen Xentral-Lieferschein mitsamt Positions-IDs.

- **Abrufart „Lieferschein"** (empfohlen): Lieferschein und Positions-IDs sind vom Import an bekannt. Nichts weiter zu tun.
- **Abrufart „Auftrag"**: Zum Zeitpunkt des Versands existiert noch kein Lieferschein. FFN Connect legt ihn dann an bzw. holt ihn und ergänzt die Positions-IDs, bevor die Datei geschrieben wird. Klappt das nicht sofort, wird die Rückmeldung **später erneut versucht** und im Aktivitätsprotokoll der Bestellung vermerkt.

Mehr zur Abrufart: [Xentral-Einstellungen für Bestellungen](/docs/merchants/xentral/order-settings).

## Wenn die Rückmeldung ausbleibt

1. **Verbindung prüfen:** Öffne die Einstellungen und klicke erneut auf **Verbindung testen & speichern**. Zugangsdaten ändern sich gerne mal.
2. **Verzeichnis prüfen:** Liegen die Dateien im Ordner `response` unterhalb deines FTP-Roots? Überwacht das Xentral-Übertragungsmodul genau dieses Verzeichnis?
3. **Aktivitätsprotokoll der Bestellung prüfen:** Dort wird jeder Upload protokolliert — ebenso ein fehlgeschlagener Upload oder ein noch fehlender Lieferschein.
4. **Xentral-Seite prüfen:** Wird die Datei zwar geschrieben, aber nicht verarbeitet, liegt es an der Konfiguration des Übertragungsmoduls in Xentral (Verzeichnis, Format, Intervall) — nicht an FFN Connect.
