SFTP-Integration: Dateien austauschen

Dokumente über SFTP austauschen: From SFTP (Pull), To SFTP (Push), Ordnerstruktur und Konfiguration.

Nicht jede Integration läuft über eine direkte API-Verbindung. Für Systeme, die mit Dateiaustausch arbeiten, bietet die PSB eine SFTP-Integration. Die PSB holt periodisch Dateien von Ihrem SFTP-Server ab (From SFTP) oder legt empfangene Dokumente auf Ihrem SFTP-Server ab (To SFTP). Beide Flows werden über SFTP-Hooks konfiguriert.

Sie können eine SFTP-Verbindung über die Plattform unter Verbindungen > Neue Allgemeine Verbindung > SFTP Connector erstellen. Die Verbindungsschlüssel, die Sie hier generieren, benötigen Sie später für die Hook-Konfiguration.

From SFTP (Pull)

Mit From SFTP holt die PSB periodisch Dateien von Ihrem SFTP-Server ab und verarbeitet sie als Dokumente. Das ist praktisch, wenn Ihr Quellsystem Dateien in einen Ordner auf einem SFTP-Server exportiert, beispielsweise Rechnungen im UBL- oder XML-Format.

Ordnerstruktur

From SFTP arbeitet mit fünf Ordnern auf Ihrem SFTP-Server:

OrdnerFunktionreadDirectoryHier platziert Ihr System die Dateien, die die PSB abholen sollpendingDirectoryDateien, die die PSB gerade verarbeitet, werden hierhin verschobenduplicateDirectoryDateien, die bereits von der PSB verarbeitet wurden (Duplikaterkennung basierend auf Dokument-Hash)successDirectoryErfolgreich verarbeitete DateienerrorDirectoryDateien, die nicht verarbeitet werden konnten

Die PSB prüft standardmäßig alle 15 Minuten, ob neue Dateien im readDirectory vorhanden sind. Dieses Intervall ist konfigurierbar.

Hook-Konfiguration

Ein From SFTP Hook hat folgende Action:

sftp://gebruiker:wachtwoord@host:poort?readDirectory=/upload&pendingDirectory=/pending&duplicateDirectory=/duplicate&successDirectory=/success&errorDirectory=/error#md5-fingerprint

Der Hook muss außerdem ein publishTopic enthalten, das angibt, wie die abgerufenen Dateien verarbeitet werden sollen, beispielsweise SendInvoice zum Versenden von Rechnungen.

{
  "action": "sftp://user:pass@sftp.bedrijf.nl:22?readDirectory=/out&pendingDirectory=/out/pending&duplicateDirectory=/out/duplicate&successDirectory=/out/success&errorDirectory=/out/error#aa:bb:cc:dd:ee:ff",
  "topics": [],
  "publishTopics": ["SendInvoice"]
}

Bei jeder Abfrage prüft die PSB das readDirectory, verschiebt Dateien nach Pending, verarbeitet sie und legt sie anschließend in Success oder Error ab. Dateien, die bereits verarbeitet wurden, werden in das duplicateDirectory verschoben.

To SFTP (Push)

Mit To SFTP legt die PSB empfangene Dokumente automatisch auf Ihrem SFTP-Server ab. Das ist ideal, wenn Ihr System Dateien aus einem Ordner verarbeitet, anstatt über einen API-Webhook.

Konfiguration

Für To SFTP benötigen Sie nur ein inboxDirectory:

{
  "action": "sftp://user:pass@sftp.bedrijf.nl:22?dirs=/inbox#aa:bb:cc:dd:ee:ff",
  "topics": ["InvoiceReceived"]
}

Jedes empfangene Dokument wird als Datei im inboxDirectory abgelegt. Optional können Sie eine targetDocumentTypeId angeben, um Dokumente automatisch in ein bestimmtes Format transformieren zu lassen, bevor sie auf dem SFTP-Server abgelegt werden.

MD5-Fingerprint

Beide SFTP-Flows verwenden einen MD5-Fingerprint zur Serververifizierung. Der Fingerprint steht hinter dem #-Zeichen in der Hook-Action und stellt sicher, dass die PSB nur eine Verbindung zum richtigen SFTP-Server herstellt. Dies verhindert Man-in-the-Middle-Angriffe.

Den MD5-Fingerprint Ihres SFTP-Servers finden Sie in der Serverkonfiguration oder durch Verbindung über einen SFTP-Client. Das Format ist eine Reihe hexadezimaler Paare, getrennt durch Doppelpunkte, beispielsweise aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99.

Praxisbeispiel

Eine Organisation, die Rechnungen aus ihrem ERP-System versendet und empfangene Rechnungen importieren möchte:

  1. Versenden (From SFTP): Das ERP-System exportiert UBL-Rechnungen nach /sftp/outbox. Die PSB holt sie alle 15 Minuten ab und versendet sie über Peppol.
  2. Empfangen (To SFTP): Die PSB legt empfangene Rechnungen in /sftp/inbox ab. Das ERP-System liest den Ordner periodisch aus und importiert die Dokumente.

Beide Flows laufen unabhängig voneinander und können separat konfiguriert werden.

SFTP-Integration wird in der Praxis häufig bei Verbindungen mit Unit4 ERP CR und ERP7 eingesetzt, wo der Dateiaustausch über einen SFTP-Ordner die Standardmethode für den Austausch von Rechnungsdokumenten ist.

Hinweise

Stellen Sie sicher, dass der SFTP-Benutzer Schreibrechte auf allen konfigurierten Ordnern hat. Die PSB muss Dateien zwischen den Ordnern verschieben können. Prüfen Sie außerdem, ob die Firewall Ihres SFTP-Servers eingehende Verbindungen von den eConnect IP-Adressen zulässt.

Das Pull-Intervall von 15 Minuten ist der Standard. Wenn Sie ein kürzeres oder längeres Intervall benötigen, wenden Sie sich an TechSupport.

Häufig gestellte Fragen
Wofür dient der MD5-Fingerprint hinter dem #-Zeichen in der SFTP-Hook-Action?

Der Fingerprint gehört zum Host Ihres SFTP-Servers und stellt sicher, dass der PSB nur mit dem beabsichtigten Server verbindet. So begrenzen Sie das Risiko von Man-in-the-Middle-Angriffen. Das Format sind hexadezimale Paare, getrennt durch Doppelpunkte, wie in der Dokumentation beschrieben.

Was ist der Unterschied zwischen From SFTP und To SFTP?

Mit From SFTP holt der PSB regelmäßig Dateien aus Ihren Ordnern ab und verarbeitet sie als Dokumente (zum Beispiel Rechnungen nach readDirectory exportieren). Mit To SFTP legt der PSB empfangene Dokumente in Ihrem inboxDirectory ab, damit Ihr System sie aus einem Ordner einlesen kann statt über einen Webhook.

Welche Rechte benötigt der SFTP-Benutzer?

Der Benutzer muss auf allen konfigurierten Ordnern schreiben und Dateien verschieben können, weil der PSB Dateien zwischen unter anderem read, pending, success und error verschiebt. Prüfen Sie außerdem, ob Ihre Firewall eingehende Verbindungen von den eConnect IP-Adressen zulässt.


Möchten Sie mehr über den Dokumentenaustausch über die PSB erfahren? Sehen Sie sich die Übersicht der Multi-Channel-Zustellung an oder lesen Sie, wie Sie Webhooks einrichten für Echtzeitbenachrichtigungen.

API-Dokumentation ansehen