KSeF w Odoo – wszystko, co warto wiedzieć

Wdrożenie Krajowego Systemu e-Faktur (KSeF) to jedna z największych zmian w obszarze fakturowania w ostatnich latach. Wraz z wprowadzeniem obowiązkowego wystawiania faktur ustrukturyzowanych firmy muszą dostosować swoje procesy do nowych wymagań oraz zapewnić sprawną komunikację z systemem Ministerstwa Finansów.

W tym artykule przedstawimy najważniejsze informacje dotyczące KSeF z perspektywy użytkownika. Pokażemy, jak przygotować system Odoo do pracy z KSeF z wykorzystaniem modułu Trilab KSeF, omówimy jego konfigurację oraz zaprezentujemy najważniejsze funkcjonalności, które ułatwiają codzienną pracę z fakturami wysyłanymi do KSeF.

Jeżeli nie posiadasz jeszcze modułu Trilab KSeF, możesz zakupić go w sklepie Odoo Apps.


Czym jest KSeF?


Krajowy System e-Faktur (KSeF) to ogólnopolski system teleinformatyczny prowadzony przez Ministerstwo Finansów, służący do wystawiania, odbierania oraz przechowywania faktur ustrukturyzowanych. Dokumenty są przesyłane bezpośrednio do systemu, gdzie przechodzą proces weryfikacji. Po pozytywnej walidacji każda faktura otrzymuje unikalny numer identyfikacyjny KSeF.

Faktura ustrukturyzowana to dokument wystawiony w ujednoliconym formacie XML, zgodnym ze schematem opracowanym przez Ministerstwo Finansów. Dzięki jednolitej strukturze wszystkie faktury przekazywane do KSeF mają taki sam format, co umożliwia ich automatyczne przetwarzanie zarówno przez systemy ERP, jak i przez sam Krajowy System e-Faktur.

W praktyce KSeF stanowi centralny kanał wymiany faktur pomiędzy przedsiębiorcami, zapewniając jednocześnie ich przechowywanie zgodnie z obowiązującymi przepisami.

Użytkownicy Odoo mogą obsługiwać cały proces związany z KSeF bezpośrednio z poziomu systemu. Po odpowiedniej konfiguracji modułu Trilab KSeF możliwe jest wystawianie i wysyłanie faktur ustrukturyzowanych do KSeF, monitorowanie statusu przesłanych dokumentów oraz pobieranie faktur zakupowych z KSeF. Integracja z modułem pozwala realizować wszystkie te operacje w jednym miejscu, bez konieczności korzystania z dodatkowych aplikacji czy programów.


Konfiguracja KSeF w Odoo krok po kroku


Krok 0. Pozyskanie danych komunikacyjnych z KSeF

W celu umożliwienia komunikacji pomiędzy Odoo a KSeF, należy wygenerować dane uwierzytelniające w Aplikacji Podatnika KSeF.

W zależności od wybranego środowiska skorzystaj z odpowiedniego adresu:

    • Środowisko testowe: https://ap-test.ksef.mf.gov.pl

    • Środowisko przedprodukcyjne: https://ap-demo.ksef.mf.gov.pl

    • Środowisko produkcyjne: https://ap.ksef.mf.gov.pl

Po zalogowaniu do wybranego środowiska wygeneruj token, certyfikat oraz klucz, a następnie skopiuj je do odpowiednich pól w konfiguracji modułu Trilab KSeF w Odoo. Dane te będą wykorzystywane do uwierzytelniania komunikacji pomiędzy systemem Odoo a KSeF.

Generowanie tokenu KSeF

Po zalogowaniu do Aplikacji Podatnika KSeF przejdź do sekcji umożliwiającej zarządzanie tokenami i wybierz opcję Generuj token. W formularzu uzupełnij nazwę tokenu oraz wybierz odpowiednie uprawnienia. Następnie kliknij przycisk Generuj token.

Po wygenerowaniu tokenu system wyświetli jego wartość. Należy ją skopiować i zapisać w bezpiecznym miejscu, ponieważ po zamknięciu okna nie będzie możliwości ponownego wyświetlenia. W przypadku utraty tokenu konieczne będzie wygenerowanie nowego.

Generowanie certyfika​tu KSeF

Przejdź do zakładki Wnioskuj o certyfikat i rozpocznij proces generowania certyfikatu.

W formularzu nadaj certyfikatowi nazwę oraz ustaw hasło zabezpieczające. Zapamiętaj lub zapisz wybrane hasło, ponieważ będzie ono wymagane podczas konfiguracji certyfikatu w Odoo i należy je wpisać w odpowiednim polu ustawień modułu. Następnie kliknij przycisk Generuj.

W kolejnym kroku wybierz przeznaczenie certyfikatu, a następnie kliknij przycisk Wyślij wniosek o wydanie certyfikatu.

Po pomyślnym przetworzeniu wniosku pojawi się przycisk Pobierz certyfikat.

Po jego kliknięciu system automatycznie wygeneruje i pobierze dwa pliki:

  • certyfikat z rozszerzeniem .crt
  • klucz prywatny z rozszerzeniem .key


Krok 1. Instalacja modułu KSeF

Przejdź do menu Aplikacje, wpisz „Trilab KSeF” w polu wyszukiwania, a następnie kliknij przycisk Aktywuj.

Po zakończeniu instalacji w systemie zostaną udostępnione funkcjonalności niezbędne do obsługi KSeF, w tym dodatkowe ustawienia oraz przyciski umożliwiające wysyłanie i odbieranie faktur ustrukturyzowanych.


Krok 2. Aktywacja funkcji KSeF

Po zainstalowaniu modułu odszukaj sekcję Trilab KSeF w Ustawieniach. W tym celu otwórz menu Ustawienia, a następnie można skorzystać z wyszukiwarki wpisując hasło kseflub przejść do ustawień Księgowości, gdzie dostępna jest konfiguracja modułu.

 

W polu KSeF Ustawienia wybierz środowisko, z którym system będzie się komunikował. Na potrzeby instrukcji wybierzemy środowisko testowe, które pozwala bezpiecznie zweryfikować konfigurację i przetestować działanie integracji przed rozpoczęciem pracy na środowisku produkcyjnym.

Po jego wskazaniu zostaną wyświetlone dodatkowe pola konfiguracyjne, które należy uzupełnić przed rozpoczęciem pracy z KSeF.


Krok 3. Uwierzytelnienie w KSeF Odoo

Po wygenerowaniu wszystkich danych z kroku 0 uzupełnij odpowiednie pola. Wpisz wcześniej wygenerowany token, wprowadź hasło certyfikatu oraz wgraj pobrane pliki .crt i .key.


Przed zapisaniem zmian należy dodatkowo skonfigurować ustawienia dotyczące księgowania i synchronizacji dokumentów:

Dziennik zakupowy - wybierz domyślny dziennik, do którego będą trafiały faktury zakupowe pobierane z KSeF. Warto pamiętać, że na poziomie karty dostawcy można wskazać inny dziennik, który będzie miał pierwszeństwo przy księgowaniu dokumentów (szczegóły omówimy w dalszej części artykułu).

Dziennik zakupów (błędy) - wskaż dziennik, do którego będą trafiały faktury zakupowe, które nie mogą zostać poprawnie przetworzone lub zaksięgowane z poziomu KSeF. Pozwala to na ich późniejszą weryfikację i ręczną obsługę.

Data synchronizacji faktur zakupowych - określ, od jakiego momentu system ma pobierać faktury zakupowe z KSeF. Ustawienie to pozwala kontrolować zakres synchronizowanych dokumentów przy pierwszym uruchomieniu integracji.

Domyślna data lub okres, którego dotyczy faktura - określ domyślny sposób prezentacji daty na fakturach sprzedaży. Do wyboru jest wspólna data dla całej faktury albo osobne daty dla poszczególnych pozycji faktury.

Po uzupełnieniu wszystkich wymaganych informacji zapisz zmiany. Konfiguracja uwierzytelnienia zostanie zakończona, a system będzie gotowy do nawiązania komunikacji z KSeF.

Krok 4. Konfiguracja dziennika sprzedaży

Po zapisaniu ustawień modułu należy wskazać, które dzienniki sprzedaży będą obsługiwały wysyłkę dokumentów do KSeF.

Przejdź do Księgowość → Konfiguracja → Dzienniki i otwórz dziennik sprzedaży z którego będą wystawiane faktury. Następnie przejdź do zakładki Ustawienia zaawansowane i w sekcji Elektroniczna wymiana danych zaznacz opcję KSeF (PL).

Od tego momentu wszystkie faktury wystawiane z wykorzystaniem tego dziennika będą mogły zostać przesłane do KSeF. Jeżeli w systemie wykorzystywanych jest kilka dzienników sprzedaży, konfigurację należy wykonać dla każdego z nich osobno.

Krok 5. Konfiguracja dzienników zakupowych na kartach dostawców

Oprócz wskazania domyślnego dziennika zakupowego w ustawieniach modułu, Trilab KSeF rozszerza możliwości Odoo o funkcję przypisywania dedykowanego dziennika zakupowego dla poszczególnych dostawców. Dzięki temu faktury pobrane z KSeF mogą być automatycznie kierowane do odpowiednich dzienników, zgodnie z przyjętym obiegiem dokumentów w organizacji.

Aby przypisać dziennik zakupowy do wybranego dostawcy, przejdź do Kontakty, otwórz kartę kontrahenta, następnie przejdź do zakładki Księgowość i w sekcji KSeF wskaż odpowiedni Dziennik zakupów.

Takie rozwiązanie pozwala na automatyczne rozdzielanie dokumentów pomiędzy różne dzienniki, np. dziennik faktur poufnych, magazynowych lub inne dzienniki wykorzystywane w przedsiębiorstwie.

Jeżeli na karcie dostawcy nie zostanie wskazany dedykowany dziennik, faktury zakupowe zostaną przeniesione do domyślnego dziennika zakupowego skonfigurowanego w ustawieniach modułu KSeF.

Krok 6. Mapowanie podatków i warunków płatności

Ostatnim etapem konfiguracji jest zmapowanie podatków oraz warunków płatności na wartości wymagane przez KSeF. Dzięki temu Odoo będzie mogło poprawnie wygenerować fakturę ustrukturyzowaną zgodną z obowiązującą strukturą.

Aby skonfigurować mapowanie podatków, przejdź do Księgowość → Konfiguracja → Podatki, otwórz wybrany podatek i uzupełnij pole KSeF Mapowanie Podatku odpowiednią wartością z listy.

Czynność tą należy wykonać dla wszystkich wykorzystywanych podatków oddzielnie.

Następnie przejdź do Księgowość → Konfiguracja → Warunki płatności, otwórz kolejno wykorzystywane w systemie warunki płatności i uzupełnij pola KSeF Typ Warunków Płatności oraz KSeF Mapowanie statusów płatności. Poniżej znajdują się również Terminy płatności, które należy skonfigurować zgodnie z warunkami obowiązującymi dla danego sposobu płatności.

* Uzupełnienie mapowania warunków płatności nie jest wymagane do wysłania faktury do KSeF. Jeżeli jednak chcesz, aby na wizualizacji faktury w KSeF wyświetlały się informacje dotyczące formy płatności (np. przelew, gotówka, karta) oraz statusu płatności (zapłacono lub brak zapłaty), pola te należy odpowiednio skonfigurować.

UWAGA:

Status płatności przekazywany do KSeF w pierwszej kolejności wynika ze statusu faktury w Odoo. Jeżeli faktura jest rozliczona, do KSeF zostanie przekazany status „Zapłacono”. W pozostałych przypadkach wysyłany jest status „Brak zapłaty”. Jeżeli faktura nie została rozliczona, status może zostać określony na podstawie mapowania skonfigurowanego w warunkach płatności.

Termin płatności jest przekazywany do KSeF wyłącznie dla faktur ze statusem „Brak zapłaty”. Jego wartość pobierana jest z terminu ustawionego na fakturze lub wyznaczana automatycznie na podstawie reguł zdefiniowanych w warunkach płatności (np. 14 dni od daty wystawienia).

Data zapłaty przekazywana jest wyłącznie dla faktur ze statusem „Zapłacono”. W pierwszej kolejności system pobiera ją z operacji bankowej uzgodnionej z fakturą. Natomiast jeżeli faktura nie została jeszcze uzgodniona z wyciągiem bankowym, ale jej warunek płatności ma zmapowany status „Zapłacono” - do KSeF zostanie przekazana data faktury.

Ma to szczególne znaczenie w przypadku faktur zaliczkowych. Na ich wizualizacji KSeF, oprócz Daty zapłaty prezentowanej w sekcji Płatność, wyświetlana jest również Data otrzymania zapłaty w sekcji Szczegóły (nad pozycjami faktury). Wartość ta pobierana jest z pola Data sprzedaży/kursu w Odoo i jej przekazanie do KSeF jest wymagane.

Aby uniknąć sytuacji, w której na wizualizacji KSeF pojawią się dwie różne daty, rekomendujemy przed wysłaniem faktury zaliczkowej do KSeF:

  1. Zweryfikować rzeczywistą datę wpływu środków.
  2. Ustawić ją w polu Data sprzedaży/kursu.
  3. Uzgodnić płatność z fakturą.
  4. Dopiero po wykonaniu powyższych czynności wysłać fakturę do KSeF.


Wysyłka wsadowa faktur do KSeF

Moduł Trilab KSeF umożliwia wysyłanie faktur do KSeF na dwa sposoby – interaktywnie oraz wsadowo.

Wysyłka interaktywna

Wysyłka interaktywna polega na ręcznym przesłaniu pojedynczej faktury przez użytkownika. Po utworzeniu i zatwierdzeniu dokumentu sprzedaży na fakturze wyświetli się komunikat „Faktura zostanie wkrótce wysłana do KSeF (PL)” wraz z przyciskiem Przetwórz teraz, który umożliwia natychmiastową wysyłkę dokumentu do KSeF. Ten sposób sprawdzi się przede wszystkim w przypadku sporadycznej wysyłki pojedynczych dokumentów lub gdy zachodzi potrzeba niezwłocznego przekazania konkretnej faktury do KSeF.


Wysyłka wsadowa

W przypadku większej liczby dokumentów znacznie wygodniejszym rozwiązaniem jest wysyłka wsadowa. Odpowiada za nią standardowa zaplanowana akcja (cron) EDI: Wykonywanie operacji usług sieciowych, która automatycznie wysyła oczekujące faktury do KSeF.

Aby przejść do listy zaplanowanych akcji, otwórz menu Ustawienia → Techniczne → Zaplanowane akcje, a następnie odszukaj zadanie EDI: Wykonywanie operacji usług sieciowych.

Standardowo, od wersji Odoo 16, zadanie to uruchamia się automatycznie, krótko po zatwierdzeniu faktury. Oznacza to, że użytkownik nie musi ręcznie inicjować wysyłki - dokument zostanie przesłany przez system w tle.

Jeżeli jednak procesy w firmie zakładają wysyłkę faktur o określonych porach (np. raz dziennie po zakończeniu pracy), standardowe zadanie należy wyłączyć i utworzyć jego kopię z własnym harmonogramem wykonywania.


Zadania harmonogramu wykorzystywane przez moduł KSeF

Moduł wykorzystuje kilka automatycznych zadań odpowiedzialnych za komunikację z KSeF:

    • EDI: Wykonywanie operacji usług sieciowych - wysyła faktury sprzedaży do KSeF,

    • KSeF Sprawdzanie statusu faktur - pobiera numer KSeF oraz UPO dla wysłanych faktur sprzedaży,

    • KSeF Rozpocznij import partii faktur - inicjuje proces pobierania faktur zakupowych z KSeF poprzez wysłanie żądania do API,

    • KSeF Sprawdź status importu partii faktur - sprawdza, czy faktury zakupowe są gotowe do pobrania, a następnie importuje je do Odoo.

 

Ręczny import faktur zakupowych z KSeF

Oprócz automatycznej synchronizacji faktur zakupowych Odoo umożliwia również ręczne pobranie paczki dokumentów z KSeF. Aby rozpocząć import, przejdź do Księgowość → Księgowość → KSeF Import Paczki

Następnie wskaż przedział czasowy, z którego mają zostać pobrane faktury zakupowe z KSeF i kliknij Rozpocznij Import. System przekaże żądanie do KSeF i utworzy odpowiednie zapisy w Odoo.


Dodatkowe informacje na wizualizacji faktury KSeF

Moduł Trilab KSeF umożliwia uzupełnienie wizualizacji faktury KSeF o dodatkowe informacje dotyczące przedsiębiorstwa. Aby skonfigurować te dane, przejdź do Ustawienia → Księgowość → Trilab KSeF.

 

W sekcji Rejestry możesz uzupełnić informacje rejestrowe firmy, takie jak:

  • pełna nazwa rejestrowa przedsiębiorstwa,
  • numer KRS,
  • numer REGON,
  • numer BDO.

Po zapisaniu zmian dane te będą prezentowane na wizualizacji faktury KSeF w sekcji Rejestry.

Dodatkowo moduł umożliwia uzupełnienie pola Stopka faktury. Wprowadzona w nim treść zostanie przeniesiona na wizualizację faktury KSeF i wyświetlona w sekcji Pozostałe informacje, znajdującej się bezpośrednio pod sekcją Rejestry. Pole to można wykorzystać do umieszczenia dodatkowych informacji, które mają być prezentowane odbiorcy dokumentu.

 

Moduł udostępnia również szereg dodatkowych parametrów pozwalających dostosować sposób generowania oraz wysyłki faktur do potrzeb przedsiębiorstwa. W ustawieniach dostępne są następujące opcje:

  • Włącz kody kreskowe - umożliwia przesyłanie kodu kreskowego do KSeF w dedykowanym polu struktury XML faktury,
  • Nie wysyłaj linii o zerowej kwocie - pomija podczas generowania pliku XML pozycje, których wartość wynosi 0,00,
  • Włącz dane kontaktowe dla sprzedającego - przekazuje do KSeF dane kontaktowe sprzedawcy (np. adres e-mail lub numer telefonu), jeżeli zostały uzupełnione w systemie,
  • Włącz dane kontaktowe dla kupującego - przekazuje do KSeF dane kontaktowe nabywcy, jeśli są dostępne na jego karcie,
  • KSeF Włącz WZ - umożliwia przekazywanie do KSeF informacji o dokumentach wydania zewnętrznego powiązanych z fakturą,
  • KSeF Wyłącz adres dostawy jako podmiot trzeci - powoduje, że adres dostawy przypisany do kontrahenta nie jest uwzględniany w strukturze KSeF jako podmiot trzeci,
  • KSeF Wyślij konto bankowe PLN dla sprzedaży walutowej z MPP - w przypadku faktur walutowych objętych mechanizmem podzielonej płatności przesyła do KSeF rachunek bankowy prowadzony w walucie PLN,
  • KSeF Włącz faktury dla osób fizycznych - uruchamia wysyłkę do KSeF faktur wystawianych dla osób fizycznych nieprowadzących działalności gospodarczej,
  • KSeF Dopasuj źródło faktury dostawcy do zamówień zakupu - podczas importu faktur zakupowych z KSeF system automatycznie próbuje powiązać dokument z odpowiednim zamówieniem zakupu w Odoo na podstawie informacji zawartych na fakturze.

Warto również pamiętać, że część funkcjonalności dostępna jest bezpośrednio na ustawieniach faktury. W zakładce PL VAT można m.in. wskazać podmiot trzeci wraz z jego klasyfikacją, jeżeli uczestniczy on w transakcji.

Aby dodać podmiot trzeci do faktury, przejdź do zakładki PL VAT. W sekcji KSeF Podmioty trzecie wybierz odpowiedniego kontrahenta, a następnie wskaż jego klasyfikację zgodnie z rolą, jaką pełni w transakcji.

Jeżeli dany kontrahent często występuje w roli podmiotu trzeciego, jego klasyfikację warto zdefiniować bezpośrednio na karcie kontaktu. W tym celu otwórz kartę kontrahenta, przejdź do zakładki Sprzedaż i zamówienia, a następnie w sekcji KSeF wybierz odpowiednią klasyfikację. Dzięki temu podczas wystawiania kolejnych dokumentów z udziałem tego kontrahenta jako podmiotu trzeciego wartość ta będzie uzupełniana automatycznie.

Zdefiniowana klasyfikacja zostanie również wykorzystana w przypadku, gdy dany kontakt zostanie wskazany jako adres dostawy, a opcja „KSeF Wyłącz adres dostawy jako podmiot trzeci” pozostanie wyłączona. W takiej sytuacji adres dostawy zostanie uwzględniony w strukturze KSeF jako podmiot trzeci wraz z przypisaną do niego klasyfikacją.


W tej samej sekcji na karcie kontaktu istnieje również możliwość uzupełnienia dodatkowych identyfikatorów wykorzystywanych przez KSeF, takich jak ID wewnętrzne, kod GLN oraz numer EORI.

W zakładce PL VAT dostępna jest również sekcja KSeF Referencje, która zawiera informacje uzupełniane automatycznie po wysłaniu faktury do KSeF.

Po pomyślnym przetworzeniu dokumentu wyświetlane są tam m.in.: numer KSeF nadany fakturze, numery referencyjne oraz status faktury.

Informacje te umożliwiają bieżące monitorowanie procesu wymiany dokumentów z KSeF oraz pozwalają szybko zweryfikować, czy wysyłka faktury zakończyła się powodzeniem, czy też wymaga dodatkowej weryfikacji i ponownej wysyłki.


Weryfikacja błędów XML i ponowna wysyłka faktury

Jeżeli podczas próby wysyłki faktury do KSeF wystąpi błąd (np. „KSeF Status faktury: 450 - Błąd weryfikacji semantyki dokumentu faktury”) moduł umożliwia szybką identyfikację jego przyczyny.

W tym celu na formularzu faktury kliknij ikonę koła zębatego, a następnie wybierz opcję KSeF Weryfikuj XML faktury. System przeanalizuje wygenerowany plik XML i wskaże błędy, które uniemożliwiają poprawne przetworzenie dokumentu przez KSeF.

Po usunięciu wskazanych nieprawidłowości i zapisaniu zmian fakturę można ponownie wysłać do KSeF. Dzięki temu nie ma potrzeby wystawiania dokumentu od nowa – wystarczy poprawić dane i ponowić próbę wysyłki.


Korekta zbiorcza z tytułu udzielonego rabatu

Moduł Trilab KSeF umożliwia również wystawianie korekt zbiorczych z tytułu udzielonego rabatu, zgodnie z wymaganiami KSeF.

Aby utworzyć taki dokument, przejdź do Księgowość → Klienci → Noty kredytowe, a następnie utwórz nową fakturę korygującą i wybierz kontrahenta, którego dotyczy korekta. Następnie przejdź do zakładki PL VAT i zaznacz opcję KSeF Korekta Zbiorcza. Po jej aktywowaniu ręcznie uzupełnij pole KSeF Okres Korygowanej, a następnie wskaż faktury objęte korektą.



Po wybraniu dokumentów przejdź do zakładki Pozycje faktury i dodaj pozycję korygującą. Najprostszym rozwiązaniem jest utworzenie produktu o nazwie „Rabat” i wprowadzenie wartości udzielonego rabatu jako kwoty korekty.

Po wysłaniu dokumentu do KSeF wygenerowana wizualizacja będzie zawierała wartość korekty oraz informację, że dokument stanowi korektę zbiorczą z tytułu udzielonego rabatu.


Wydruk faktury w trybie offline

Moduł Trilab KSeF umożliwia wygenerowanie wydruku faktury przed jej wysłaniem do KseF wykorzystując tryb offline. Jest to szczególnie przydatne w sytuacjach, gdy dokument musi zostać niezwłocznie przekazany kontrahentowi, zaś jego wysyłka do KSeF - najczęściej z przyczyn technicznych - musi zostać zrealizowana w późniejszym terminie.

Wydruk faktury w trybie offline zawiera kody QR, zgodne z wymaganiami KSeF, które identyfikują dokument jako wystawiony poza systemem KSeF i umożliwiają jego weryfikację. Po przywróceniu komunikacji z KseF, faktura może zostać wysłana do systemu Ministerstwa Finansów zgodnie z obowiązującymi przepisami.

Funkcja ta pozwala zachować ciągłość procesu sprzedaży i wystawiania dokumentów nawet w przypadku czasowej niedostępności KSeF.


Wskazówka

Przed przejściem na środowisko produkcyjne warto przeprowadzić testową wysyłkę faktury do środowiska testowego KSeF. Pozwala to zweryfikować poprawność konfiguracji oraz upewnić się, że komunikacja pomiędzy Odoo a KSeF działa prawidłowo.

 

Udostępnij ten artykuł
Zaloguj się by zostawić komentarz
Korekty i faktury końcowe do dokumentów sprzed wdrożenia Odoo