Dane przekazywane pomiędzy systemem a KSeF API

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

KSeF API umożliwia aplikacjom komunikować się z Krajowym Systemem e-Faktur bez konieczności ręcznego przenoszenia każdej informacji. Z perspektywy technicznej jest to jednakże coś więcej niż pojedyncza funkcja wysyłania dokumentu. Należy określić sposób uwierzytelniania, przygotowanie komunikatu, odbieranie odpowiedzi oraz 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 od razu. Pominięcie takich przypadków zwykle nie jest widoczne przy pierwszych testach, niemniej jednak 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 współzależności, podczas gdy komunikacja z zewnętrznym systemem wymaga określonej struktury informacji. Integracja z KSeF API może więc wymagać przekształcania danych, sprawdzania ich kompletności a także obsługi wartości, które w systemie źródłowym są dopuszczalne, ale w komunikacie docelowym muszą zostać przedstawione inaczej. Warto wykonywać część kontroli jeszcze przed rozpoczęciem komunikacji. O ile aplikacja wykryje brak niezbędnej informacji na wcześniejszym etapie, użytkownik w tej samej chwili wie, gdzie trzeba poprawić dokument. Gdy ten sam problem zostanie wykryty dopiero po wysłaniu danych, analiza staje się bardziej złożona. Powinno się wówczas ustalić, czy błąd wynika z faktury, sposobu jej przekształcenia, konfiguracji czy samej komunikacji. Przy ogromnej 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 zasadniczym scenariuszem. Aplikacja może nie otrzymać odpowiedzi w przewidywanym czasie, może otrzymać komunikat o błędzie albo może utracić połączenie po przekazaniu danych. Nie można wówczas bez sprawdzenia przyjąć, że dokument nie został obsłużony. Równocześnie ponowne wykonanie tej samej czynności także wymaga ostrożności. O ile pierwsza operacja została zrealizowana, 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 oraz komunikaty związane z błędami. Historia operacji ułatwia późniejsze uwarunkowanie, co wydarzyło się z konkretną fakturą. Ma to znaczenie również podczas ręcznej kontroli, 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ę także oczekiwania dotyczące organizacji pracy systemu. Przy niewielkim obciążeniu część operacji może być wykonywana nieomalże natychmiast, natomiast większy ruch może wymagać kolejkowania zadań i kontrolowania kolejności ich realizacji. Powinno się 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 programu, modyfikacja procesu wystawiania faktur czy uaktualnienie używanych mechanizmów może wpłynąć na wcześniejsze założenia. Dlatego testowanie powinno obejmować nie tylko poprawne dokumenty, niemniej jednak też przypadki błędne, ponowienia i sytuacje przerwania komunikacji. KSeF API staje się wtedy 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 oraz późniejszej obsługi informacji zwrotnych.

Więcej: KSeF API dokumentacja.

Leave a Comment