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.
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.
From SFTP arbeitet mit fünf Ordnern auf Ihrem SFTP-Server:
Die PSB prüft standardmäßig alle 15 Minuten, ob neue Dateien im readDirectory vorhanden sind. Dieses Intervall ist konfigurierbar.
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.
Neben dem primären publishTopic sind die zugehörigen Supporting Topics nötig, damit der Hook Dateien in den richtigen Statusordner verschieben kann:
SendInvoiceInvoiceSent, InvoiceSentErrorReceiveInvoiceInvoiceReceived, InvoiceReceivedErrorDateien mit einem zwischenzeitlichen *Retry-Status (z. B. InvoiceSentRetry) bleiben im pendingDirectory, bis ein endgültiger Status folgt.
{
"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.
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.
Für To SFTP benötigen Sie nur ein inboxDirectory:
{
"action": "sftp://user:pass@sftp.bedrijf.nl:22?inboxDirectory=/inbox#aa:bb:cc:dd:ee:ff",
"topics": ["InvoiceReceived"]
}
Jedes empfangene Dokument wird als Datei im inboxDirectory abgelegt. Standardmäßig lädt To SFTP pro Dokument hoch, nicht als periodischen ZIP-Batch. Periodische Massenverarbeitung braucht einen eigenen Batch-Hook. Optional filtert targetDocumentTypeId auf einen bestimmten Dokumenttyp. Es ist keine automatische Transformation.
Kann der Absender PDF und XML nicht in getrennte Ordner legen (beide Dateien kommen im selben SFTP-Ordner an), nutzen Sie den Query-Parameter fileNameFilter auf den SFTP-Hooks. Der Parameter steht vor dem Fingerprint (#) in der Hook-Action.
Konfigurieren Sie zwei From-SFTP-Hooks auf demselben Host und Ordner:
.xmlSendInvoiceInvoiceSent, InvoiceSentError.pdfReceiveAttachmentAttachmentReceived, AttachmentReceivedErrorDer PDF-Hook darf optional read-and-delete sein: dann reicht ein readDirectory und die PSB löscht die Datei nach der Verarbeitung, statt sie zu verschieben. Sie können auch dieselben Statusordner (pending, success, error, duplicate) wie beim XML-Hook setzen.
Nach dem Abruf beider Dateien koppelt ein Join-Hook XML und PDF zu einem zusammengeführten Dokument (SendInvoiceJoined). Siehe Join-Hooks.
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.
Eine SFTP-Zustellung und ein folgender ERP-Import (zum Beispiel To-SFTP Richtung Unit4 ERP CR) sind zwei getrennte, unabhängig arbeitende Hooks — keine einzelne Kette mit einem gemeinsamen Status.
Ein Dokument, das in eConnect als heruntergeladen steht, bestätigt nur, dass der zustellende Hook die Datei abgeholt oder abgelegt hat. Es sagt für sich nichts darüber, ob das ERP die Datei danach erfolgreich eingelesen hat.
Für jeden Hook einzeln gibt es Monitoring über die Topics HookSentError (endgültiger Fehler) und HookSentRetry (zwischenzeitlicher Versuch). Richten Sie pro Hook eine Monitoring-Aktion auf diese Topics ein, über einen Mail-Hook oder einen zweiten Webhook.
Eine Organisation, die Rechnungen aus ihrem ERP-System versendet und empfangene Rechnungen importieren möchte:
/sftp/outbox. Die PSB holt sie alle 15 Minuten ab und versendet sie über Peppol./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.
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.
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.
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.
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.
Nein. Heruntergeladen bestätigt nur, dass der zustellende Hook (To SFTP) die Datei abgeholt oder auf dem SFTP-Server abgelegt hat. Der ERP-Import danach ist ein eigener, unabhängiger Hook. Richten Sie für jeden Hook separat Monitoring über HookSentError und HookSentRetry ein.
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