Wymiana faktur pomiędzy systemami informatycznymi nie ogranicza się do samego przesłania pliku albo komunikatu. W prawdziwym obiegu dokument przechodzi przez kilka etapów, a właściwie każdy z nich może posiadać znaczenie dla następnej pracy. Faktura stworzona w systemie sprzedażowym może wymagać wcześniejszego sprawdzenia, przekształcenia danych, przekazania do Krajowego Systemu e-Faktur, a następnie zapisania informacji o wyniku całej operacji.
KSeF API pozwala programową komunikację z tym systemem, ale sposób użycia interfejsu zależy od tego, jak zorganizowany jest przepływ dokumentów. Przy projektowaniu rozwiązania warto więc rozpocząć od przemyślenia faktycznego procesu, zamiast w tym samym momencie skupiać się na samych wywołaniach technicznych. Częstym uchybieniem jest założenie, że skoro dokument można wysłać automatycznie, to pozostałe czynności także mogą zostać wykonane bez dodatkowych reguł. W praktyce szybko ukazują się pytania dotyczące statusów, błędów, ponowień i sposobu informowania użytkownika o problemie.
Dużo sugestie wymaga przygotowanie informacji przekazywanych wśród systemami. Program wykorzystywany do wystawiania faktur może mieć własną strukturę danych, nazewnictwo oraz sposób zapisywania poszczególnych wartości. Przy przesyłaniu informacji należy natomiast uwzględnić strukturę wymaganą przez interfejs. Dlatego integracja z KSeF API na prawdę bardzo często obejmuje dodatkową warstwę odpowiedzialną za mapowanie danych. Na tym etapie powinno się rozstrzygnąć między innymi, skąd pobierane są dokładnie sprecyzowane wartości, jak traktowane są pola nieuzupełnione oraz co dzieje się z informacjami, których system docelowy nie wykorzystuje. W praktyce kłopoty mogą wynikać z pozornie drobnych różnic. Data zapisana w innym formacie, nieoczekiwany znak w danych tekstowych czy brak wartości w określonym miejscu mogą spowodować, że cały komunikat nie zostanie przetworzony zgodnie z założeniami. Z tego powodu sprawdzanie danych przed wysłaniem ma inne znaczenie niż kontrola przeprowadzana dopiero po otrzymaniu odpowiedzi.
Kolejnym obszarem, który wymaga rozważenia, jest obsługa operacji wykonywanych w tle. Jeżeli już faktury są przesyłane samoczynnie, użytkownik nie obserwuje każdego wywołania systemu. Musi jednak mieć sposobność ustalenia, co stało się z konkretnym dokumentem. Sam zapis informujący o rozpoczęciu wysyłki może być niewystarczający, w szczególności gdy przetwarzanie trwa dłużej lub odpowiedź nie pojawia się natychmiast. Potrzebne jest rozróżnienie w gronie dokumentem przygotowanym, przekazanym do obsługi, oczekującym na wynik oraz wymagającym interwencji. Znaczenie ma też sposób reagowania na przerwy w komunikacji. Automatyczne ponawianie operacji może być przydatne w określonych przypadkach, ale powinno uwzględniać możliwość, że wcześniejsza próba została przyjęta, a jedynie odpowiedź nie dotarła do aplikacji źródłowej. Z drugiej strony pozostawienie wszystkich nieudanych operacji bez dalszego działania oznacza konieczność ręcznego wyszukiwania problemów. Dlatego mechanizm obsługi błędów powinien rozróżniać przyczyny i pozwalać ustalić dalszy sposób postępowania.
Na działanie takiego rozwiązania wpływa też skala prowadzonej działalności i sposób generowania dokumentów. Przy niewielkiej liczbie faktur możliwa jest ręczna kontrola części przypadków, jednakże przy sporym wolumenie konieczne stają się rozwiązania pozwalające śledzić sporo operacji równocześnie. Wtedy znaczenia nabiera kolejkowanie obowiązków, rejestrowanie zdarzeń a także sposobność ponownego przetworzenia konkretnego dokumentu bez uruchamiania całego procesu od początku. Istotne jest też rozdzielenie środowiska testowego od rzeczywistego a także sprawdzanie zachowania aplikacji po zmianach w jej konfiguracji. Integracja nie powinna być traktowana jako szczegół całkowicie niezmienny, ponieważ modyfikacje procesu wystawiania faktur lub pozostałych systemów mogą wpłynąć na wcześniejsze założenia. Praktyczny jest zatem mechanizm pozwalający szybko znaleźć źródło problemu i określić, czy dotyczy on danych, komunikacji, konfiguracji czy sposobu obsługi odpowiedzi. Właśnie te najmniejsze elementy decydują o tym, jak system zachowuje się nie w standardowym przypadku, lecz wtedy, gdy przebieg operacji odbiega od przyjętego schematu.
Sprawdź tutaj: KSeF API integracja.