Intégration SFTP : échanger des fichiers

Échanger des documents via SFTP : From SFTP (pull), To SFTP (push), structure de dossiers et configuration.

Toutes les intégrations ne passent pas par une connexion API directe. Pour les systèmes qui fonctionnent avec l'échange de fichiers, le PSB propose une intégration SFTP. Le PSB récupère périodiquement des fichiers depuis votre serveur SFTP (From SFTP) ou dépose les documents reçus sur votre serveur SFTP (To SFTP). Les deux flux sont configurés via des hooks SFTP.

Vous pouvez créer une connexion SFTP via la plateforme sous Connexions > Nouvelle connexion générale > SFTP Connector. Les clés de connexion que vous générez ici seront nécessaires pour la configuration du hook.

From SFTP (pull)

Avec From SFTP, le PSB récupère périodiquement des fichiers depuis votre serveur SFTP et les traite comme des documents. C'est pratique lorsque votre système source exporte des fichiers vers un dossier sur un serveur SFTP, par exemple des factures au format UBL ou XML.

Structure de dossiers

From SFTP fonctionne avec cinq dossiers sur votre serveur SFTP :

DossierFonctionreadDirectoryVotre système dépose ici les fichiers que le PSB doit récupérerpendingDirectoryLes fichiers en cours de traitement par le PSB sont déplacés iciduplicateDirectoryLes fichiers déjà traités par le PSB (détection de doublons basée sur le hash du document)successDirectoryLes fichiers traités avec succèserrorDirectoryLes fichiers qui n'ont pas pu être traités

Le PSB vérifie par défaut toutes les 15 minutes si de nouveaux fichiers se trouvent dans le readDirectory. Cet intervalle est configurable.

Configuration du hook

Un hook From SFTP a l'action suivante :

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

Le hook doit également contenir un publishTopic qui indique comment les fichiers récupérés doivent être traités, par exemple SendInvoice pour l'envoi de factures.

{
  "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"]
}

À chaque cycle de polling, le PSB vérifie le readDirectory, déplace les fichiers vers pending, les traite puis les place dans success ou error. Les fichiers déjà traités sont déplacés vers le duplicateDirectory.

To SFTP (push)

Avec To SFTP, le PSB dépose automatiquement les documents reçus sur votre serveur SFTP. C'est idéal lorsque votre système traite des fichiers depuis un dossier plutôt que via un webhook API.

Configuration

Pour To SFTP, vous avez uniquement besoin d'un inboxDirectory :

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

Chaque document reçu est déposé comme fichier dans le inboxDirectory. Vous pouvez optionnellement spécifier un targetDocumentTypeId pour transformer automatiquement les documents dans un format spécifique avant leur dépôt sur le serveur SFTP.

Empreinte MD5

Les deux flux SFTP utilisent une empreinte MD5 pour la vérification du serveur. L'empreinte se trouve après le caractère # dans l'action du hook et garantit que le PSB se connecte uniquement au bon serveur SFTP. Cela prévient les attaques de type man-in-the-middle.

Vous trouverez l'empreinte MD5 de votre serveur SFTP dans la configuration du serveur ou en vous connectant via un client SFTP. Le format est une série de paires hexadécimales séparées par des deux-points, par exemple aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99.

Exemple pratique

Une organisation qui envoie des factures depuis son système ERP et souhaite importer les factures reçues :

  1. Envoi (From SFTP) : le système ERP exporte des factures UBL vers /sftp/outbox. Le PSB les récupère toutes les 15 minutes et les envoie via Peppol.
  2. Réception (To SFTP) : le PSB dépose les factures reçues dans /sftp/inbox. Le système ERP lit périodiquement le dossier et importe les documents.

Les deux flux fonctionnent indépendamment l'un de l'autre et peuvent être configurés séparément.

L'intégration SFTP est couramment utilisée dans la pratique pour les connexions avec Unit4 ERP CR et ERP7, où l'échange de fichiers via un dossier SFTP est la méthode standard pour l'échange de documents de facturation.

Points d'attention

Assurez-vous que l'utilisateur SFTP dispose des droits d'écriture sur tous les dossiers configurés. Le PSB doit pouvoir déplacer des fichiers entre les dossiers. Vérifiez également que le pare-feu de votre serveur SFTP autorise les connexions entrantes depuis les adresses IP d'eConnect.

L'intervalle de polling de 15 minutes est le paramètre par défaut. Si vous avez besoin d'un intervalle plus court ou plus long, contactez TechSupport.

Questions fréquentes
À quoi sert l'empreinte MD5 après le caractère # dans l'action du hook SFTP ?

L'empreinte correspond à l'hôte de votre serveur SFTP et garantit que le PSB ne se connecte qu'au serveur prévu. Vous limitez ainsi le risque d'attaques de type man-in-the-middle. Le format est des paires hexadécimales séparées par des deux-points, comme décrit dans la documentation.

Quelle est la différence entre From SFTP et To SFTP ?

Avec From SFTP, le PSB récupère périodiquement des fichiers dans vos dossiers et les traite comme des documents (par exemple export de factures vers readDirectory). Avec To SFTP, le PSB dépose les documents reçus dans votre inboxDirectory afin que votre système puisse les lire depuis un dossier plutôt que via un webhook.

Quels droits l'utilisateur SFTP doit-il avoir ?

L'utilisateur doit pouvoir écrire sur tous les dossiers configurés et déplacer des fichiers, car le PSB déplace des fichiers entre notamment read, pending, success et error. Vérifiez également que votre pare-feu autorise les connexions entrantes depuis les adresses IP d'eConnect.


Vous souhaitez en savoir plus sur l'échange de documents via le PSB ? Consultez l'aperçu de la livraison multi-channel ou découvrez comment configurer les webhooks pour des notifications en temps réel.

Consulter la documentation API