Integracja SFTP: wymiana plików

Wymiana dokumentów przez SFTP: From SFTP (pull), To SFTP (push), struktura katalogów i konfiguracja.

Nie każda integracja odbywa się przez bezpośrednie połączenie API. Dla systemów pracujących z wymianą plików PSB oferuje integrację SFTP. PSB okresowo pobiera pliki z serwera SFTP (From SFTP) lub umieszcza otrzymane dokumenty na serwerze SFTP (To SFTP). Oba przepływy konfiguruje się za pomocą hooków SFTP.

Połączenie SFTP można utworzyć przez platformę w Połączenia > Nowe połączenie ogólne > SFTP Connector. Wygenerowane klucze połączenia są potrzebne później przy konfiguracji hooka.

From SFTP (pull)

Za pomocą From SFTP, PSB okresowo pobiera pliki z serwera SFTP i przetwarza je jako dokumenty. Przydatne, gdy system źródłowy eksportuje pliki do katalogu na serwerze SFTP, na przykład faktury w formacie UBL lub XML.

Struktura katalogów

From SFTP pracuje z pięcioma katalogami na serwerze SFTP:

KatalogFunkcjareadDirectoryTutaj system umieszcza pliki, które PSB ma pobraćpendingDirectoryPliki przetwarzane przez PSB są tu przenoszoneduplicateDirectoryPliki już przetworzone przez PSB (wykrywanie duplikatów na podstawie hashu dokumentu)successDirectoryPomyślnie przetworzone plikierrorDirectoryPliki, które nie mogły zostać przetworzone

PSB domyślnie sprawdza co 15 minut, czy w readDirectory pojawiły się nowe pliki. Ten interwał jest konfigurowalny.

Konfiguracja hooka

Hook From SFTP ma następującą akcję:

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

Hook musi również zawierać publishTopic wskazujący, jak mają być przetwarzane pobrane pliki, na przykład SendInvoice do wysyłania faktur.

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

Przy każdym cyklu pollingu PSB sprawdza readDirectory, przenosi pliki do pending, przetwarza je, a następnie przenosi do success lub error. Pliki już wcześniej przetworzone trafiają do duplicateDirectory.

To SFTP (push)

Za pomocą To SFTP, PSB automatycznie umieszcza otrzymane dokumenty na serwerze SFTP. Idealne, gdy system przetwarza pliki z katalogu zamiast przez webhook API.

Konfiguracja

Dla To SFTP potrzebny jest tylko inboxDirectory:

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

Każdy otrzymany dokument jest umieszczany jako plik w inboxDirectory. Opcjonalnie można podać targetDocumentTypeId, aby dokumenty były automatycznie transformowane do określonego formatu przed umieszczeniem na serwerze SFTP.

MD5 fingerprint

Oba przepływy SFTP używają MD5 fingerprint do weryfikacji serwera. Fingerprint znajduje się za znakiem # w akcji hooka i zapewnia, że PSB łączy się tylko z właściwym serwerem SFTP. Zapobiega to atakom man-in-the-middle.

MD5 fingerprint serwera SFTP znajduje się w konfiguracji serwera lub można go uzyskać łącząc się przez klienta SFTP. Format to seria par heksadecymalnych oddzielonych dwukropkami, na przykład aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99.

Przykład praktyczny

Organizacja wysyłająca faktury ze swojego systemu ERP i chcąca importować otrzymane faktury:

  1. Wysyłanie (From SFTP): system ERP eksportuje faktury UBL do /sftp/outbox. PSB pobiera je co 15 minut i wysyła przez Peppol.
  2. Odbieranie (To SFTP): PSB umieszcza otrzymane faktury w /sftp/inbox. System ERP okresowo odczytuje katalog i importuje dokumenty.

Oba przepływy działają niezależnie od siebie i mogą być konfigurowane oddzielnie.

Integracja SFTP jest w praktyce często stosowana przy połączeniach z Unit4 ERP CR i ERP7, gdzie wymiana plików przez katalog SFTP jest standardową metodą wymiany dokumentów fakturowych.

Ważne uwagi

Należy upewnić się, że użytkownik SFTP ma uprawnienia do zapisu we wszystkich skonfigurowanych katalogach. PSB musi móc przenosić pliki między katalogami. Należy też sprawdzić, czy firewall serwera SFTP zezwala na połączenia przychodzące z adresów IP eConnect.

Interwał pollingu wynoszący 15 minut jest domyślny. Jeśli potrzebny jest krótszy lub dłuższy interwał, należy skontaktować się z TechSupport.

Najczęściej zadawane pytania
Do czego służy odcisk MD5 za znakiem # w akcji hooka SFTP?

Odcisk odnosi się do hosta serwera SFTP i zapewnia, że PSB łączy się tylko z właściwym serwerem. Ogranicza to ryzyko ataków man-in-the-middle. Format to pary szesnastkowe oddzielone dwukropkami, zgodnie z opisem w dokumentacji.

Czym różnią się From SFTP i To SFTP?

Przy From SFTP PSB okresowo pobiera pliki z katalogów i przetwarza je jako dokumenty (na przykład eksport faktur do readDirectory). Przy To SFTP PSB umieszcza odebrane dokumenty w inboxDirectory, aby system mógł je odczytać z katalogu zamiast przez webhook.

Jakie uprawnienia powinien mieć użytkownik SFTP?

Użytkownik musi mieć możliwość zapisu we wszystkich skonfigurowanych katalogach oraz przenoszenia plików, ponieważ PSB przenosi pliki między innymi read, pending, success i error. Należy także sprawdzić, czy zapora sieciowa zezwala na połączenia przychodzące z adresów IP eConnect.


Chcą Państwo dowiedzieć się więcej o wymianie dokumentów przez PSB? Przegląd dostarczania multi-channel lub artykuł o konfiguracji webhooków dla powiadomień w czasie rzeczywistym.

Zobacz dokumentację API