Kategorie

Wersja systemu

7.6

Integracja z KSeF

Zanim zaczniemy konfigurować formularze czy procesy pod integrację z KSeF warto przeczytać artykuł o przygotowaniu systemu do integracji.

Akcje

Aktualna wersj implementacji KSeF znacząco różni się sposobem działania od implementacji wersji 1.0. Akcje wyglądają podobnie ale zmienił się cały schemat działania. Ogólnie proces wysyłania faktur do KSeF wymaga następujących kroków:

  1. Przygotowanie pliku XML na podstawie danych formularza
  2. Przygotowanie do wysłania faktury
    1. Interaktywnie – jedną akcją na dokumencie faktury
    2. Wsadowo – poprzez dokument techniczny Paczka faktur do którego przypisane są faktury
  3. Pobranie informacji o sesji KSeF. W tej akcji uzupełniane są pola na dokumentach faktur niezależnie od sposobu wysłania
    1. W przypadku wysłania interaktywnego – na dokumencie faktury
    2. W przypadku wysłania wsadowego – na dokumencie paczki faktury
  4. Pobranie UPO – zawsze na dokumencie faktury
  5. Wizualizacja UPO w postaci pliku PDF – zawsze na dokumencie faktury

Pobieranie faktur nie zmieniło się znacząco. Logika działania jest identyczne, doszła tylko możliwość pobierania paczki faktur.

Wygeneruj fakturę KSeF

Akcja tworzy plik XML z danymi z faktury. Plik taki może zostać przesłany do innego systemu lub ręcznie przekazany do systemu KSeF. Plik XML jest wymagany do wysłania faktury wię tak akcja msi się znaleźć w procesie obiegu faktury jeżeli wysyłamy ją do KSeF.

 

Parametry:

Większość pól wbudowanych jest przypisana do odpowiednich pól faktury ustrukturyzowanej dlatego nie trzeba ich konfigurować w akcji.

Dokument – Wskazanie dokumentu, na podstawie którego zostanie wygenerowana faktura KSeF. Z reguły jest to dokument na którym uruchomiono procedurę obiegu. Domyślnie jest tu wstawiana zmienna systemowa Id Dokumentu

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Typ faktury w KSeF – pole słownikowe, pozwala na wybór typu faktury.

Faktura wystawiona w cenach – pole słownikowe, wybór rodzaju cen na fakturze.

Dodatkowe pola – pole typu lista atrybutów. Pozwala na zmapowanie pól formularza na pola faktury. Lista dostępnych pól znajduje się na końcu artykułu.

Zapisz plik w (return) – w tym polu wskazujemy atrybut plików, w którym przechowujemy plik XML. Dobrym pomysłem jest dodanie do formularza osobnego atrybutu na przechowywanie pliku XML faktury, będzie łatwiej wskazać takie pole w innych akcjach, np. wyślij fakturę.

Wyślij fakturę interaktywnie

Akcja wysyła wcześniej utworzony plik XML do systemu KSeF. Uwaga: jeżeli plik nie został wcześniej utworzony to akcja zakończy się błędem.

 

Parametry:

Firma – Wskazanie firmy, w imieniu której będzie wysyłana faktura. Z reguły wystarczy zostawić w tym polu wartość Pole systemowe: Id firmy

Plik – Wskazanie atrybutu, w którym przechowywany jest plik XML. Można użyć wartości systemowej Pliki lub wskazać własny atrybut. Jeżeli w atrybucie przechowywane jest więcej plików to po wskazaniu atrybutu brany jest pierwszy plik. W tym parametrze moża też wskazać pezpośrednio ID pliku, np. wyliczone przy pomocy zapytania SQL.

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Zapisz numer referencyjny sesji w (return) – w tym miejscu można wskazać atrybut na formularzu, w którym zapisany zostanie numer sesji KSEF. Numer ten jest potrzebny by pobrać Urzędowe Potwierdzenie Odbioru. Obecność tego numeru jest również znakiem, że faktura została prawidłowo przesłana.

Wyślij fakturę wsadowo

Akcja przygotowuje i wysyła paczkę faktur na podstawie wcześniej utworzonych plików XML do systemu KSeF. Pack tworzona jest ze wszystkich dokumentów w polu Dokumenty ktore zawierają XML wygenerowany przez akcję Wygeneruj fakturę KSeF

Parametry:

Firma – Wskazanie firmy, w imieniu której będzie wysyłana faktura. Z reguły wystarczy zostawić w tym polu wartość Pole systemowe: Id firmy

Pliki – Wskazanie atrybutu, w którym przechowywane są ID plików XML do wysłania. Można użyć wartości systemowej Pliki lub wskazać własny atrybut. W tym parametrze moża też wskazać pezpośrednio ID pliku, np. wyliczone przy pomocy zapytania SQL.

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Zapisz numer referencyjny sesji w (return) – w tym miejscu można wskazać atrybut na formularzu, w którym zapisany zostanie numer sesji KSEF. Numer ten jest potrzebny by pobrać Urzędowe Potwierdzenie Odbioru. Obecność tego numeru jest również znakiem, że faktura została prawidłowo przesłana.

W tym miejscu warto wspomnieć o dokumencie technicznym – Paczka faktur. Jeżeli wysyłamy wsadowo faktury należy przygotować taki dokument który będzie zbierał informacje o fakturach przypisanych doo paczki. Proces wysyłania faktur będzie uruchamiany na tym technicznym dokumencie a nie na oryginalnym dokumencie faktury. Jak widzimy w konfiguracji do wysłania faktur potrzebujemy dwóch parametrów: Firmy i Plików. Firma to oczywiście pole systemoe Firma, należy tylko zwrócić uwagę by firma z faktury zgadzała się z firmą z paczki faktur. Jeżeli nie mamy wdrożonej wielofirmowości to w ogóle nie mamy takiego problemu, możemy użyć zmiennej systemowej ID firmy. Pole Plilki powinno zawierać ID plików XML z fakturami wygenerowanymi akcją Wygeneruj fakturę KSeF. Może to być zwykłe pole Autowyszukiwanie wielokrotnego wyboru z podpiętą listą plików lub zwykłym zapytaniem SQL do tabeli Fi.

W procesie obiegu faktury należy dodać ścieżkę – Wysłanie paczki faktur – w ramach tej ścieżki dodać bieżącą fakturę do pola Faktury w paczce na paczce faktur. Niestety nie ma prostej akcji która potrafi to zrobić, należy albo napisać rozszerzenie albo przygotować akcje Zmień wartość pola w których zapytaniami SQL dodamy odpowiednie wartości do tabeli FlVa. Ponieważ to zapytanie nie dadaje się do bezpośredniego wklejenia do akcji nie będziemy go podawać, należy przygotować swoje własne zapytanie. Ogólny schemat obiegu mógłby wyglądać nastęĻująco:

Dodatkowo na formularzu faktury zostało dodane pole Paczka faktur w którym wybieramy do jakiej paczki mamy dodać fakturę. Jest to zwykłe pole Autowyszukiwanie z podpiętą listą dokumentów typu Paczka faktur. Warto tu zastosować zapytanie SQL w którym ograniczymy wybór paczki do konkretnej firmy czy statusu paczy (tylko niewysłane). Pola tego używamy w akcji do wskazania dokumentu na którym modyfikujemy pole Faktury w paczce.

Różnica między wysyłaniem interaktywny a wsadowym

KSeF w wersji 2.0 wprowadził limity w ilości wysyłanych i odbieranych faktur. Dla faktur sprzedażowych, które wysyłamy do KSeF wygląda to tak:

Rodzaj wysyłki

Na sekundę

Na minutę

Na godzinę

Wysyłka interaktywna

10 faktur

30 faktur

180 faktur

Wysyłka wsadowa

10 paczek

20 paczek

120 paczek

O ile limity sekundowe czy minutowe nie powinny nikogo ograniczać to limit godzinowy dla wysyłki interaktywnej może być problemem. Dlatego należy policzyć, ile faktur będzie wysyłane i dostosować do tego konfigurację systemu. Gdy generujemy więcej niż 100 faktur na godzinę to należy poważnie zastanowić się nad implementacją paczki faktur od razu a nie czekać aż system zacznie odrzucać faktury z powodu przekroczenia limitu.

Limit ilości paczek jest praktycznie nie do przekrocznia ponieważ w jednej paczce może być nawet kilka tysięcy faktur.

Pobierz informacje o fakturach wysłanych w sesji

Kiedy już udało nam się wysłać fakturę i mamy numer sesji to kolejnym krokiem jest sprawdzenie, co się z naszymi fakturami dzieje. Potrzebujemy też pobrać informacje z KSeF o numerze faktury czy datach rejestracji. Do tego właśnie służy akcja Pobierz informacje o fakturach wysłanych w sesji. Warto zauważyć, że o ile mamy dwie akcje na wysyłanie faktur – interaktywnie i wsadowo – to mamy tylko jedną akcję do pobierania informacji. Tą akcją obsłużymy obie metody wysyłania

 

Parametry:

Numer referencyjny sesji – Numer, który zapisaliśmy przy wysyłaniu faktur. Po tym parametrze sprawdzamy paczkę faktur wysłanych do KSeF. Uwaga: jeżeli wysyłamy interaktywnie to paczka faktur zawiera po prostu jeden dokument.

Firma – Wskazanie firmy, która odpowiada za wysłanie dokumentów. Jeżeli mamy jedną firmę w systemie to wystarczy pole systemowe ID Firmy ale jeżeli mamy wielowirmowość to lepiej użyć pola Firma na dokumencie. Jeżeli Numer referencyjny sesji nie będzie się zgadzał z NIP-em firmy to dostaniemy błąd o braku sesji.

Typ dokumentów wysłanych w sesji – typ dokumentu Navigatora które zostały wysłane. Z reguły będzie to Faktura zakupu.

Plik / pliki – odnośnik do plików wysłanych w sesji. Dla wysyłki interaktywnej może to być po prostu ID atrybutu z fakturą w XML. Jeżeli wysyłamy paczkę faktur to mamy na polu dokumentu Paczka faktur pole wskazujące pliki w paczce. To pole należy podać jako parametr tej akcji.

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Dodatkowe pola – Tu możemy określić jakie pola zostaną zapisane na dokumencie. Uwaga: są to pola dotyczące dokumentów wskazanych w parametrze Dokumenty wysłane w sesji więc w przypadku paczki faktur zmiany będą nanoszone na każdym dokumencie wskazanym w paczce.

Dostępne pola:

Adres do pobrania UPO: Adres URL, pod którym dostępny jest plik XML z UPO. Służy jako parametr do kolejnej akcji

Data nadania numeru KSeF: Data nadania numeru KSeF. Należy ją interpretować jako datę dostarczenia faktury do kontrahenta

Data przyjęcia faktury: Data przyjęcia faktury do systemu KSeF, należy ją interpretować jako datę wystawienia faktury

Data trwałego zapisu faktury: Data trwałego zapisu faktury. Od tego czasu faktury nie można zmienić ani usunąć z systemu.

Status: Kod: Kod statusu faktury w KSeF. Mając kod możemy sterować procesem, np. wychwytując faktury które zostały ponownie wysłane lub faktury które nadal są przetwarzane

Status: Opis: Opis statusu. To jest informacja o stanie faktury przedstawiona w czytelny dla człowieka sposób.

Status: Szczegóły: Dodatkowe informacje, np. informacja w której sesji została wysłana faktura jeżeli system uzna naszą fakturę za duplikat.

Numer KSeF: Najważniejsza informacja. Po numerze KSeF zidentyfikujemy płatność czy możemy soę komunikować z kontrahentem w sprawie wwyjaśnienia wątpliwości dotyczących faktury.

Zapisz plik w (return) – Należy wskazać pole do którego zostanie zapisany plik json ze wszystkimi danymi pobranymi w akcji. Uwaga: to nie jest zapisanie Urzędowego Potwierdzenia Odbioru (UPO) faktury, do tego służy kolejna akcja.

Akcja Pobierz UPO

Akcja pozwala na pobranie Urzędowego Potwierdzenia Odbioru (UPO). Dokument ten jest tożsamy z potwierdzeniem dostarczenia faktury do kontrahenta. Dokument UPO pobierany jest w formie XML i zapisywany w panelu załączników.

 

Parametry:

Adres dopobrania: Adres, który dostaliśmy w akcji Pobierz informacje o statusie faktur wysłanych w sesji. W przeciwieństwie do tej tamtej akcji Pobierz UPO działa na dokumencie faktury. W panelu załączników zapisywany jest plik XML z UPO.

Dokument – Wskazanie dokumentu, na podstawie którego zostanie wygenerowana faktura KSeF. Z reguły jest to dokument na którym uruchomiono procedurę obiegu. Domyślnie jest tu wstawiana zmienna systemowa Id Dokumentu

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Generuj podgląd UPO w PDF

Ostatnią akcją związaną z wysyłaniem faktur jest generowanie podglądu UPO w PDF. Do jej wywołania potrzebujemy plik XML z UPO który pobieramy akcją Pobierz UPO. Po wywołaniu akcji plik PDF trafia do panelu załączników.

Parametry:

Plik: Wskazanie na ID pliku z którego ma zostać wygenerowany PDF. Jeżeli wskażemy panel plików to zostanie pobrany pierwszy załącznik.

Dokument – Wskazanie dokumentu, na podstawie którego zostanie wygenerowana faktura KSeF. Z reguły jest to dokument na którym uruchomiono procedurę obiegu. Domyślnie jest tu wstawiana zmienna systemowa Id Dokumentu

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Wynik działania akcji wygląda tak:

Akcja Pobierz faktury

Akcja pozwala na pobranie faktur wystawionych na firmę z systemu KSeF. W aktualnej wersji akcja ta jedynie pobiera pliki XML i zapisuje je w polu na formularzu. Dla każdego pobranego pliku XML tworzony jest jeden dokument w Navigatorze. Akcja nie przetwarza pliku XML i nie uzupełnia pól na formularzu.

System KSeF obsługuje siedem typów faktur. W konfiguracji akcji możemy zmapować typy faktur KSeF na typy dokumentów w Navigatorze. Warto w konfiguracji uwzględnić wszystkie typu faktur KSeF gdyż brak jakiegoś typu może skutkować zagubieniem faktury. System pamięta ostanio pobraną fakturę i pobiera wszystkie starsze ale jeżei nie ma zmapowanego typu faktury to faktury tego typu będą pomijane.

Konfiguracja pobierania wsadowego wygląda identycznie.

Parametry akcji Pobierz fakturę

Firma – ID firmy dla której pobieramy faktury. Ponieważ proces może być uruchamiany bez formularza możemy tu wstawić mienną systemową ID firmy

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Pobierz faktury z okresu (dni) – parametr opcjonalny. Jeżeli zostanie ustawiony system pobierze faktury które nie są starsze niż X dni. Parametr warto ustawić przy pierwszym uruchomieniu na nowym środowisku gdy wiemy, że możemy pobrać setki lub tysiące starych faktury. W pozostałych przypadkach sugerowałbym pozostawienie tego pola pustego.

Ustawienia – w tym miejscu mapujemy typy faktur KSeF na typy dokumentów w Navigatorze. Do wyboru mamy takie opcje:

Typ faktury KSeF – tu wskazujemy typ faktury KSeF który chcemy zmakować. Typ może pojawić się tylko raz, jeżeli ustawimy dwa różne mapowania dla tego samego typu to system potraktuje to jako błąd

Typ dokumentu – typ dokumentu z Navigatora. Ty możemy przypisać jeden typ dokumenty do wielu typów faktur, np. wszystkie faktury korygujące KSeF trafiają do jednego typu dokumentu – Faktura korygująca.

Kategoria dokumentu – kategoria dokumentu w Navigatorze

Zapisz plik w – atrybut, w którym będzie przechowywany dokument XML. Musi to być atrybut typu Pliki. Możemy wskazać systemowy kontener plików ale wygodniej jest przygotować dedykowany atrybut do przechowywania plików XML faktury. Będzie nam łatwiej potem wskazać plik w akcji przetwarzania faktury. Jeżeli nie zapiszemy pliku na formularzu to nie będziemy mogli potem przenieść informacji z pliku faktury do pól na formularzu.

Zapisz numer KSeF w – pole tekstowe w którym zapiszemy numer KSeF otrzymanej faktury

Akcja Przetwórz fakturę KSeF

Akcja przetwarza plik XML i odczytuje z nieg dane. Pola z faktury ustrukturyzowanej są przepisywane na odpowiednie pola formularza zgodnie z mapowaniem w konfiguracji akcji. Część pól jest już zmapowana na pola wbudowane więc nie trzeba ich podawać w konfiguracji akcji. Akcja powinna być uruchomiona na samym początku procedury obiegu faktury bo bez niej użytkownik dostanie pusty dokument. Proces obiegu faktury mógłby wyglądać następująco:

 

Na rysunku widzimy dwie akcje: Przetwarzanie faktury i Generowanie obrazu faktury. Ta drug akcja opisana jest niżej

Konfiguracja akcji wygląda następująco:

 

Obie wersje akcji mają identyczną konfigurację.

Parametry akcji pobierania faktur

Plik – atrybut, w którym prechowywany jest XML pobrany z KSeF

Dokument – ID dokumentu który modyfikujemy. Z reguły będzi to pole systemowe ID Dokumentu

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Dodatkowe pola – pole typu lista atrybutów. Większość pól wbudowanych jest przypisana do odpowiednich pól faktury ustrukturyzowanej dlatego nie trzeba ich konfigurować w akcji, w tym miejscu wskazujemy mapowanie wszystkich pól dodatkowych które będą przechowywane na formularzu jako atrybuty.

Generuj podgląd faktury w PDF

Pobranie faktury akcją Pobierz faktury jedynie uzupełni pola na formularzu, nie otrzymamy graficznego obrazu faktury np. w pliku PDF. Jeżeli chcemy otrzymać taki obraz to powinniśmy skorzystać z akcji Generuj podgląd faktiury w PDF. Akcja działa podobnie jak akcja Generup podgląd UPO w PDF

Parametry:

Plik: Wskazanie na ID pliku z którego ma zostać wygenerowany PDF. Jeżeli wskażemy panel plików to zostanie pobrany pierwszy załącznik.

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Zapisz plik w (return) – w tym miejscu wskazujemy miejsce – atrybut załącznik lub pole załączników na formularzu – gdzie będzie zapisany obraz faktury.

Kody QR na fakturze

Co to są kody QR i do czego będziemy ich potrzebować? Najlepiej oddać głos Ministerstu Finansów które w najczęściej zadawanych pytaniach odpowiada:

Kod QR to specjalny znak graficzny umieszczany na wizualizacji faktury. Pozwala w prosty sposób sprawdzić czy dokument znajduje się w systemie, a po wpisaniu dodatkowych danych pobrać go z KSeF.

Faktury wystawione online i faktury wystawione w trybie offline (już dosłane do KSeF) mają kod QR z napisem w postaci numeru KSeF.

Faktury wystawione offline, ale jeszcze nie dosłane do KSeF, mają dwa kody QR. Pierwszy z napisem „OFFLINE” zapewnia dostęp do tej faktury i weryfikację danych z faktury, a drugi kod QR z napisem „CERTYFIKAT”, umożliwia weryfikację tożsamości wystawcy.

Całość Pytań i odpowiedzi znajduje się pod tym adresem: https://ksef.podatki.gov.pl/pytania-i-odpowiedzi-ksef-20

W systemie Navigator mamy dwie akcje służące do generowania kodów QR

Wygeneruj kod QR do weryfikacji faktury (Kod I)

Akcja pozwala na wygenerowanie kodu I czyli kodu OFFLINE opisanego wyżej

Parametry:

Firma – Wskazanie firmy, która odpowiada za wysłanie dokumentów. Jeżeli mamy jedną firmę w systemie to wystarczy pole systemowe ID Firmy ale jeżeli mamy wielowirmowość to lepiej użyć pola Firma na dokumencie.

Pliki – Wskazanie pola, w którym jest wygenerowany plik XML z fakturą. Na przykładzie powyżej jest to dedykowany atrybut

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Zapisz plik w (return) – wskazanie atrybutu lub plików gdzie zostanie zapisany plik z obrazem kodu QR. Uwaga, w przypadku faktur offline należy wygenerować wydruk faktury po wygenerowaniu kodu QR i umieścić ten kod na wydruku.

Wygeneruj kod QR do potwierdzenia autentyczności wystawcy (Kod II)

Akcja pozwala na wygenerowanie kodu II czyli kodu CERTYFIKAT opisanego wyżej

Parametry:

Firma – Wskazanie firmy, która odpowiada za wysłanie dokumentów. Jeżeli mamy jedną firmę w systemie to wystarczy pole systemowe ID Firmy ale jeżeli mamy wielowirmowość to lepiej użyć pola Firma na dokumencie.

Pliki – Wskazanie pola, w którym jest wygenerowany plik XML z fakturą. Na przykładzie powyżej jest to dedykowany atrybut

Użytkownik – osoba, która zostanie wskazana jako modyfikująca dokument. Domyślnie jest tu wstawiana zmienna systemowa ID zalogowanego użytkownika

Zapisz plik w (return) – wskazanie atrybutu lub plików gdzie zostanie zapisany plik z obrazem kodu QR. Uwaga, w przypadku faktur offline należy wygenerować wydruk faktury po wygenerowaniu kodu QR i umieścić ten kod na wydruku.

Przykłady procedur obiegu

Wysłanie faktury

Wysyłanie faktur najwygodniej zrealizować w ramach procedury obiegu faktury. Po kroku zatwierdzenia dokumentu można dodać kroki, które będą odpowiadały za wysyłkę faktury.

Na poniższym diagramie przedstawiony jest przykład obsłużenia trzech form wysyłki faktury: poprzez KSeF, poprzez e-mail oraz tradycyjnie, pocztą. Wykorzystane są tu akcje do wysyłki e-maili oraz akcje integracji z KSeF

Warto zauważyć, że akcja wysyłki przez KSeF jest wykonywana automatycznie zaś akcja pobierania UPO jest zwykłym działaniem użytkownika. Taka konfiguracja jest niezbędna, gdyż dokument wysłany do KSeF musi być przetworzony. Powoduje to, że bywają opóźnienia w generowaniu UPO. Dlatego użytkownik musi ręcznie, po jakimś czasie pobrać UPO.

Pobranie faktur

Pobieranie faktu można zrealizować poprzez prosty obieg składający się z jednej akcji. Ważne, by skonfigurować ten obieg w trybie akcji.

Dzięki temu będzie można podpiąć taki obieg pod pozycję w menu dokumentów. Użytkownik, wybierając opcję Pobierz z KSeF, zainicjuje pobieranie faktur.

 

Pola używane do komunikacji z KSeF

Akcje, służące do integracji z systemem KSeF wykorzystują pola systemowe do pobierania informacji z formularza i przesyłania ich do systemu KSeF. Oznacza to, że na formularzu muszą być takie pola jak netto, brutto, VAT czy asortyment by prawidłowo przygotować plik XML do wymiany. Tych pól nie można skonfigurować poprzez wskazanie mapowania z dowolnym atrybutem na formularzu. Akcje integracyjne nie będą prawidłowo bez tych pól.

Jednak nie wszystkie pola używane do wymiany z KSeF są obsługiwane jako pola systemowe. W tym przypadku możemy użyć atrybutów jednak do prawidłowej pracy należy wskazać mapowanie atrybutu na pole w XML KSeF. Dostępna lista pól:

Data umowy – pole typu data, służy do wskazania daty umowy na podstawie której została wystawiona faktura; pole nieobowiązkowe

Data zamówienia – pole typu data, służy do wskazania daty zamówienia, na podstawie którego została wystawiona faktura; pole nieobowiązkowe

Data zapłaty – Pole typu data; zawiera datę zapłaty w przypadku gdy faktura została opłacona; pole nieobowiązkowe

Data zapłaty częściowej – Pole typu data, zawiera datę zapłaty częściowej w przypadku gdy faktura została częściowo opłacona; pole nieobowiązkowe

Kwota zapłaty częściowej – Pole typu liczba zmiennoprzecinkowa, zawiera kwotę częściowej zapłaty; pole nieobowiązkowe

Numer umowy – Pole tekstowe, zawiera numer umowy, na podstawie której wystawiono fakturę; pole nieobowiązkowe

Numer zamówienia – Pole tekstowe; zawiera numer zamówienia, na podstawie którego wystawiono fakturę; pole nieobowiązkowe

P_16 Metoda kasowa – Pole jednokrotnego wyboru, W przypadku faktur zawierających adnotację „metoda kasowa”, dokumentujących dostawę towarów lub świadczenie usług, w odniesieniu do których obowiązek 61 podatkowy powstaje zgodnie z art. 19a ust. 5 pkt 1 lub art. 21 ust. 1 ustawy, należy podać wartość „1″; w przeciwnym przypadku należy podać wartość „2″;  Pole obowiązkowe

P_17 Samofakturowanie – Pole jednokrotnego wyboru,  W przypadku faktur, o których mowa w art. 106d ust. 1 ustawy, zawierających adnotację „samofakturowanie”, należy podać wartość „1″; w przeciwnym przypadku należy podać wartość „2″.  ; Pole obowiązkowe

P_18 Odwrotne obciążenie – Pole jednokrotnego wyboru,  W przypadku faktur zawierających adnotację „odwrotne obciążenie”, dokumentujących dostawę towarów lub wykonanie usługi, dla których obowiązanym do rozliczenia podatku od wartości dodanej lub podatku o podobnym charakterze jest nabywca towaru lub usługi – należy podać wartość „1″; w przeciwnym przypadku należy podać wartość „2″. ; Pole obowiązkowe

P18A Mechanizm podzielonej płatności – Pole jednokrotnego wyboru,  W przypadku faktur zawierających adnotację „mechanizm podzielonej płatności”, w których kwota należności ogółem przekracza kwotę 15.000 zł lub jej równowartość wyrażoną w walucie obcej, obejmujących dokonaną na rzecz podatnika dostawę towarów lub świadczenie usług wymienionych w załączniku nr 15 do ustawy, należy podać wartość „1″; w przeciwnym przypadku należy podać wartość „2”.; Pole obowiązkowe

P_19 Czy zwolnienie z VAT – Pole jednokrotnego wyboru,  W przypadku faktur dokumentujących dostawę towarów lub świadczenie usług zwolnionych od podatku na podstawie art. 43 ust. 1 ustawy, art. 113 ust. 1 i 9 albo przepisów wydanych na podstawie art. 82 ust. 3 ustawy lub na podstawie innych przepisów, należy podać 62 wartość „1″; w przeciwnym przypadku należy podać wartość „2″. W przypadku, gdy pole P_19 równa się „1”, należy wypełnić dodatkowo jedno z pól: P_19A, P_19B lub P_19C.; Pole obowiązkowe

P_19A Przepis ustawy uprawniającej do zwolnienia – Pole tekstowe,  Jeśli pole P_19 równa się „1″ – należy wskazać przepis ustawy albo aktu wydanego na podstawie ustawy, na podstawie którego podatnik stosuje zwolnienie od podatku. Przykład: „Art. 43 ust. 1 pkt 37 ustawy o podatku od towarów i usług (Dz. U. 2021 poz. 685 ze zm.)”

P_19B Przepis dyrektywy 2006/112/WE – Pole tekstowe, Jeśli pole P_19 równa się „1″ – należy wskazać przepis dyrektywy 2006/112/WE, który zwalnia od podatku taką dostawę towarów lub takie świadczenie usług.

P_19C Inna podstawa prawna – Pole tekstowe, Jeśli pole P_19 równa się „1″ – należy wskazać inną podstawę prawną wskazującą na to, że dostawa towarów lub świadczenie usług korzysta ze zwolnienia.

UWAGA: jeżeli pole P_19 jest ustawione na 1 to należy wypełnić jedno z pól P_19A, P_19B, P_19C

P_PMarzy Procedura marży – Pole jednokrotnego wyboru, W przypadku wystąpienia procedur marży, o których mowa w art. 119 lub 120 ustawy, należy podać wartość „1”; w przeciwnym przypadku należy podać wartość „2”. W przypadku, gdy pole P_PMarzy równa się „1”, należy wypełnić dodatkowo jedno z pól: P_PMarzy_2, P_PMarzy_3_1, P_PMarzy_3_2, P_PMarzy_3_3.

P_PMarzy_2 Procedura marży dla biur podróży – Pole logiczne (checkbox), W przypadku świadczenia usług turystyki, dla których podstawę opodatkowania stanowi marża, zgodnie z art. 119 ust. 1 ustawy, a faktura dokumentująca świadczenie zawiera wyrazy „procedura marży dla biur podróży”, należy podać wartość „1”.

P_PMarzy_3_1 Procedura marży – towary używane – Pole logiczne (checkbox), W przypadku dostawy towarów używanych, dla których podstawę opodatkowania stanowi marża, zgodnie z art. 120 ustawy, a faktura dokumentująca dostawę zawiera wyrazy „procedura marży – towary używane”, należy podać wartość „1”.

P_PMarzy_3_2 Procedura marży – dzieła sztuki – Pole logiczne (checkbox), W przypadku dostawy dzieł sztuki, dla których podstawę opodatkowania stanowi marża, zgodnie z art. 120 ustawy, a faktura dokumentująca dostawę zawiera wyrazy „procedura marży – dzieła sztuki”, należy podać wartość „1”.

P_PMarzy_3_1 Procedura marży – Przedmioty kolekcjonerskie i antyki – Pole logiczne (checkbox), W przypadku dostawy przedmiotów kolekcjonerskich i antyków, dla których podstawę opodatkowania stanowi marża, zgodnie z art. 120 ustawy, a faktura dokumentująca dostawę zawiera wyrazy „procedura marży – przedmioty kolekcjonerskie i antyki”, należy podać wartość „1”.

Zapłacono – Pole logiczne, Podaje się „1” w przypadku, gdy kwota należności wynikająca z faktury, do momentu jej wystawienia, została zapłacona w całości.

Zapłata częściowa – Pole logiczne, Podaje się „1” w przypadku, gdy kwota należności wynikająca z faktury, do momentu jej wystawienia, została zapłacona w części.

Dodatkowo warto na formularzu faktury umieści techniczne pole tekstowe Numer KSeF. Jeśli działanie akcji Wyślij do KSeF zakończy się sukcesem  to system KSeF zwróci unikatowy numer który należy zapamiętać. Ten numer posłuży do komunikacji z KSeF i wskazania konkretnego dokumentu np. do pobrania UPO (Urzędowe Potwierdzenie Odbioru) lub do wystawienia faktury korygującej.

Warto również dodać dwa kolejne pola techniczne:

Data przesłania do KSeF – Pole typu data i czas

Data przyjęcia w KSeF – pole typu Data i czas

Używając dodatkowych akcji Pobierz z UPO datę przesłania oraz Pobierz z UPO datę przyjęcia można zapisać te daty w polach technicznych. Daty te są bardzo istotne gdyż są używane do określenia daty dostarczenia faktury do kontrahenta oraz są brane pod uwagę przy rozliczeniach VAT-owskich.

Pola wbudowane importowane z KSeF

KSeF (XML)

Tabela Documnet ([Do])

Dokumenty

Fa.P_2

ForgeinNumber

Numer obcy

Fa.P_1

DocumentDate

Data dokumentu

Fa.P_6

FactDate

Data zdarzenia gospodarczego

Fa.Platnosc.TerminPlatnosci.Termin

PayDate

Data płatności

Fa.Platnosc.FormaPlatnosci

PaymentTypeID

Typ płatności

Podmiot1.DaneIdentyfikacyjne.NIP

ContractorID

ID kontrahenta

Fa.KodWaluty

CurrencyID

ID waluty

Fa.Platnosc.RachunekBankowy.NrRB

AccountID

ID konta bankowego

pole wyliczane

Net

Kwota netto

pole wyliczane

Vat

Kwota VAT

pole wyliczane

Gross

Kwota Brutto

pole wyliczane

NetMain

Kwota netto w walucie głównej

pole wyliczane

VatMain

Kwota VAT w walucie głównej

pole wyliczane

GrossMain

Kwota Brutto w walucie głównej

KSeF (XML)

Tabela ContractorAccount ([CoCa])

Konta bankowe kontrahentów

Podmiot1.DaneIdentyfikacyjne.NIP

ContractorId

ID kontrahenta

Fa.Platnosc.RachunekBankowy.NrRB

AccountNumber

Numer rachunku bankowego

Fa.Platnosc.RachunekBankowy.NrRB

CurrencyId

ID waluty

KSeF (XML)

Tabela DocumentElements ([DoEl])

Elementy na fakturze

pole wyliczane

DocumentID

ID dokumentu

Fa.FaWiersz.P_7

AssortmentID

ID asortymentu

Fa.FaWiersz.P_7

AssortmentName

Nazwa asortymentu

Fa.FaWiersz.P_8A

UnitID

ID jednostki miary

Fa.FaWiersz.P_7

Name

Nazwa

Fa.FaWiersz.P_8B

Amount

Ilość

Fa.FaWiersz.P_9A lub Fa.FaWiersz.P_9B 

PriceNet

Cena netto

Fa.FaWiersz.P_9A lub Fa.FaWiersz.P_9B 

PriceNetBeforeDiscount

Cena netto przed rabatem

pole wyliczane

ValueNet

Wartość netto

Fa.FaWiersz.P_12

VatID

ID stawki VAT

pole wyliczane

PriceNet

Cena netto

pole wyliczane

PriceGross

Cena Brutto

pole wyliczane

PriceGrossBeforeDiscount

Cena Brutto przed rabatem

pole wyliczane

ValueVat

Wartość VAT

pole wyliczane

ValueGross

Wartość Brutto

KSeF (XML)

Tabela DocumentVat ([DoVa])

Tabela VAT

pole wyliczane

DocumentId

ID dokumentu

pole wyliczane

VatId

ID stawki VAT

pole wyliczane

VatRate

Stawka VAT

pole wyliczane

VatName

Nazwa stawki VAT

pole wyliczane

NetValue

Wartość netto

pole wyliczane

VatValue

Wartość VAT

pole wyliczane

GrossValue

Wartość Brutto

pole wyliczane

NetValueMain

Wartość netto w walucie głównej

pole wyliczane

VatValueMain

Wartość VAT w walucie głównej

pole wyliczane

GrossValueMain

Wartość Brutto w walucie głównej

Warto zwrócić uwagę na kilka aspektów związanych z polawmi wbudowanymi

  • Adnitacha pole wyliczane oznacza, że wartość jest wyliczana z innych pól tak jak np. tabela VAT jest wyliczana z pozycji na fakturze (Fa.Wiersz) lub z operacji w trakcie dodawania jak np. Element.DocumentID jest ustawiane na podstawie ID dokumentu utworzonego przy imporcie
  • System stara się dodać do bazy niektóre dane jeżeli nie ma ich jeszcze w bazie. Dotyczy to kontrahenta czy numeru rachunku bankowego. W trakcie dodawania może być uruchomiona cała procedura związana z nowym rekordem jak np. odwołanie do bazy GUS przy dodawaniu nowego kontrahenta.
  • Nie wszystkie elementy są dodawane. Jeżeli system znajdzie na faktuirze wartość której nie ma w bazie to zostanie ona pominięta. Dotyczy to:
    • Metod płatności. Należy najpierw dodać nowe metody i zmapować je ze słownikiem KSeF. Dodawanie metod płatności odbywa się poprzez Ustawienia > Kartoteki > Formy płatności. Należy przypilnować, by wszystkie formy płatności z KSeF miały swoje odpowiedniki w Navigatorze
    • Waluty. Należy dodać nową walutę jeżeli spodziewamy się faktury w tej walucie. Dodawanie waluty odbywa się poprzez Ustawienia > Kartoteki > Waluty. Jako symbol należy podać kod ISO waluty

Mapowanie atrybutów do pól KSeF

Poniżej znajduje się tabela zawierająca mapowanie pól konfigurowalnych, opisanych w akapicie Pola używane do komunikacji z KSeF, do pól z XML KSeF

KSeF (XML)

Atrybut (akcja)

P_16

P_16 metoda kasowa

P_17

P_17 samofakturowanie

P_18

P_18 odwrotne obciążenie

P_18A

P_18A mechanizm podzielonej płatności

P_19

P_19 czy zwolnienie z vat

P_19A

P_19A przepis ustawy uprawniający do zwolnienia

P_19B

P_19B przepis dyrektywy 2006/112/WE

P_19C

P_19C inna podstawa prawna

P_23

P_23 faktura WE uproszczona

P_PMarzy

P_PMarzy procedura marży

P_PMarzy_2

P_PMarzy_2 procedura marży dla biur podróży

P_PMarzy_3_1

P_PMarzy_3_1 procedura marży-towary używane.

P_PMarzy_3_2

P_PMarzy_3_2 procedura marży-dzieła sztuki

P_PMarzy_3_3

P_PMarzy_3_3 procedura marży-przedmioty kolekcjonerskie i antyki

DataUmowy

Data umowy

NrUmowy

Numer umowy

DataZamowienia

Data zamówienia

NrZamowienia

Numer zamówienia

Zaplacono

Zapłacono

DataZaplaty

Data zapłaty

ZaplataCzesciowa

Zapłata częściowa

DataZaplatyCzesciowej

Data zapłaty częściowej

KwotaZaplatyCzesciowej

Kwota zapłaty częściowej

NrRBPL

Numer rachunku bankowego PL

Menu