Proces przesyłania dokumentów przez KSeF API

Współczesny przepływ faktur coraz częściej odbywa się pomiędzy kilkoma aplikacjami, które odpowiadają za różne fragmenty tego samego procesu. Dokument może zostać zaprojektowany w systemie sprzedażowym, następnie trafić do dalszego przetwarzania, a informacje o nim mogą być wykorzystywane jeszcze w księgowości lub innych modułach. W takim środowisku znaczenie ma nie tylko miejsce przechowywania faktury, lecz też sposób przekazywania danych.

KSeF API pozwala aplikacjom komunikować się z Krajowym Systemem e-Faktur bez konieczności ręcznego przenoszenia każdej informacji. Z punktu widzenia technicznej jest to jednakże coś więcej niż pojedyncza funkcja wysyłania dokumentu. Trzeba określić sposób uwierzytelniania, przygotowanie komunikatu, odbieranie odpowiedzi a także zapis informacji o wykonanej operacji. W praktyce już na tym etapie warto uwzględnić sytuacje, w których dokument nie może zostać przekazany albo wynik operacji nie jest dostępny zaraz. Pominięcie takich przypadków zwykle nie jest widoczne przy pierwszych testach, ale staje się kłopotem przy większej liczbie dokumentów.

Duże znaczenie ma sposób przygotowania danych przed ich przekazaniem. System, w którym powstaje faktura, może stosować własnych pól, oznaczeń i zależności, podczas gdy komunikacja z zewnętrznym systemem wymaga określonej struktury informacji. Integracja z KSeF API może zatem wymagać przekształcania danych, sprawdzania ich kompletności a także obsługi wartości, które w systemie źródłowym są dopuszczalne, niemniej jednak w komunikacie docelowym muszą zostać przedstawione zupełnie inaczej. Warto wykonywać część testom jeszcze przed rozpoczęciem komunikacji. Jeżeli już aplikacja wykryje brak niezbędnej informacji na wcześniejszym etapie, użytkownik w tym samym momencie wie, gdzie trzeba poprawić dokument. Gdy ten sam problem zostanie wykryty dopiero po wysłaniu danych, analiza staje się bardziej złożona. Trzeba wtedy ustalić, czy błąd wynika z faktury, sposobu jej przekształcenia, konfiguracji czy samej komunikacji. Przy dużej liczbie dokumentów różnica ta ma praktyczne znaczenie, ponieważ pojedyncza nieprawidłowość może wystąpić w wielu fakturach równocześnie.

Kolejną kwestią jest zachowanie systemu w czasie, gdy operacja nie przebiega zgodnie z kluczowym scenariuszem. Aplikacja może nie otrzymać odpowiedzi w przewidywanym czasie, może otrzymać komunikat o błędzie lub może utracić połączenie po przekazaniu danych. Nie można wówczas bez sprawdzenia przyjąć, że dokument nie został obsłużony. Jednocześnie ponowne wykonanie tej samej czynności także wymaga ostrożności. Jeśli pierwsza operacja została zrobiona, lecz system źródłowy nie otrzymał potwierdzenia, automatyczne ponowienie może prowadzić do niejasności dotyczących stanu dokumentu. Z tego powodu przydatne są mechanizmy pozwalające zapisywać identyfikatory, znaczniki czasu, wyniki poszczególnych etapów a także komunikaty związane z błędami. Historia operacji ułatwia późniejsze zobowiązanie, co wydarzyło się z konkretną fakturą. Ma to znaczenie także podczas ręcznej sprawdzeniu, ponieważ użytkownik nie powinien być zmuszony do odtwarzania całego przebiegu zdarzeń na bazie kilku niespójnych informacji.

Wraz ze wzrostem liczby dokumentów zmieniają się również oczekiwania dotyczące organizacji pracy systemu. Przy niewielkim obciążeniu część operacji może być wykonywana prawie że natychmiast, natomiast większy ruch może wymagać kolejkowania obowiązków i kontrolowania kolejności ich realizacji. Trzeba również uwzględnić możliwość czasowego wstrzymania przetwarzania bez utraty informacji o dokumentach oczekujących na obsługę. Osobnym zagadnieniem pozostaje utrzymanie integracji po jej uruchomieniu. Zmiana konfiguracji kodu, modyfikacja procesu wystawiania faktur czy update stosowanych mechanizmów może wpłynąć na wcześniejsze założenia. Dlatego testowanie powinno obejmować nie tylko i wyłącznie poprawne dokumenty, niemniej jednak także przypadki błędne, ponowienia i sytuacje przerwania komunikacji. KSeF API staje się wówczas jednym z elementów większego procesu, którego właściwe działanie uzależniony jest od współpracy przygotowania danych, komunikacji, sprawdzeniu statusów a także późniejszej obsługi informacji zwrotnych.

Zobacz również: dokumentacja KSeF API.

Leave a comment