KSeF-link generowanie faktur XML z danych Excel

Wpis #299 z dnia: 03-09-2025

Aplikacja KSeF-link oferuje kilka możliwości generowania e-Faktur w formacie XML dla systemu KSeF. Struktura FA.XML (3) jest bardzo rozbudowana, posiada wielopoziomowe połączenia i dodatkowo niektóre elementy są powtarzalne, nawet wielokrotnie.

W celu uproszczenia wprowadzania danych do Excel, zachowaliśmy prostą formę tabelaryczną przy wykorzystaniu notacji CSV oraz tablic Json. Dwa ostanie sposoby stosowane są w niektórych polach wymagających więcej danych i występujących wielokrotnie.

Większość dodatkowych pól nie będzie stosowana w standardowych fakturach. Zastosowanie „kompaktowego” sposobu prezentacji danych znacznie uprości nasze tabele w zakresie wypełniania oraz wyświetlania i analizowania.

Wspomniane wyżej mechanizmy stosujemy w takiej samej formie we wszystkich 3 sposobach generowania faktur:

  • Z danych Excel
  • Z danych tabel TMP bazy MS SQL Server (tzw. Bufor)
  • Z plików (struktur) Json

Rozbudowany zapis CSV/tablica definiujemy w ten sam sposób w odpowiednich polach pliku Excel oraz tabel bazy SQL.

W kreatorze importu z Excel, przyciskiem [Przykład] ładujemy gotowy plik Excel z danymi do wygenerowania 23 przykładów, które zostały przygotowane przez MF i opublikowane w zasobach KSeF. W aktualnej wersji programu, konwersja Excel do XML nie generuje faktur z załącznikami, które wprowadzono w schemacie FA (3), dlatego pominięto przykład 24 i 25. Jeżeli chcesz generować faktury z załącznikami skorzystaj z naszej metody generatora dla Json lub wbudowanego API.

Generowanie faktur KSeF z Excel

Widok arkusza z danymi faktur KSeF

Pozycje szczegółowe połączone są relacją wg klucza (pola) IDF. W zakładce [Faktury], wartość powinna być unikalna w ramach jednego pliku Excel. W każdym pliku może to być liczba całkowita zawsze od jeden. Jeżeli dane tworzone są automatycznie przez algorytm i pobierane z bazy systemu ERP, to można tu zapisać własny unikalny ID faktury.

Na zdjęciu zaznaczono pozycję IDF=4. Kolejne zdjęcie z pozycjami szczegółowymi, przedstawia 3 rekordy połączone z tą fakturą (id=7,8,9). IDF dla wszystkich 3 pozycji jest zgodne z IDF faktury i zawiera liczbę 4.

Generowanie faktur KSeF z Excel

Widok arkusza z danymi szczegółowymi faktur [FakturyWiersze]

Generowanie faktur KSeF z Excel

Widok arkusza z danymi szczegółowymi zamówień [ZamowieniaWiersze]

Generowanie faktur KSeF z Excel

Widok arkusza z danymi szczegółowymi Środków Trwałych [NoweSrodkiTransportu]

Poniżej lista pól wielokrotnych z notacją CSV (pola oddzielane kreską pionową | ) :

  • WZ

    Przykład dla 1 dokumentu WZ :

    	44343434/2026
    	


    Przykład dla 3 dokumentów WZ :

    	101/2026|300/2026|356/2026
    	


  • Podmiot3_1, Podmiot3_2. Definicja schematu XSD dla pola Podmiot3 przewiduje aż 100 wystąpień. Dla uproszczenia i czytelności ograniczyliśmy w pliku Excel i tabelach SQL liczbę do 2 wystąpień odpowiednio w dedykowanych polach. Struktura Json oraz API nie mają tego ograniczenia i możemy wygenerować 100 elementów.

    Przykład dla faktury IDF=4 :

    	Poniżej ogólny format Kontrahent CSV.
    	Pola końcowe można pominąć, w przykładzie skończyliśmy na podaniu numeru dla Roli.						
    						
    	Prefiks|NIP|Nazwa|KodKraju|AdresL1|AdresL2|Email|Telefon|Rola|Udzial|NrEORI|IDKlienta|GLN
    											
    	|2222222222|Bank Bankowości Bankowej S. A. BBB Faktoring|PL|ul. Bankowa 1|00-003 Łódź|bbb@efaktoring.pl|666888999|1
    	


  • PodmiotUpowazniony, wg definicji Kontrahent CSV
  • DaneFaKorygowanej

    Przykład dla jednej faktury :

    	Data wystawienia|Numer faktury|Numer KSeF
    	2026-02-15|FV2026/02/150|9999999999-20230908-8BEF280C8D35-4D
    	


    Przykład dla wielu faktur:

    	["2026-01-15|FV2026/01/134|9999999999-20230908-8BEF280C8D35-4D","2026-02-15|FV2026/02/150|9999999999-20230908-76B2B580D4DC-80","2026-03-15|FV2026/03/143|9999999999-20230908-4191312C0E57-09","2026-04-15|FV2026/04/23|9999999999-20230908-2B9266CEF3C4-DD","2026-05-15|FV2026/05/54|9999999999-20230908-16B99491C78B-3D","2026-06-15|FV2026/06/15|9999999999-20230908-D08FB95950BE-3E"]
    	


  • Podmiot1K, wg definicji Kontrahent CSV
  • Podmiot2K, wg definicji Kontrahent CSV
  • DodatkowyOpis

    Przykład dla 1 opisu :

    	Klucz|Wartość
    	preferowane godziny dowozu|dni robocze 17:00 - 20:00
    	


    Przykład dla 3 opisów :

    	["wysokość pozostałej do zapłaty kwoty|307635 zł","W terminie 2026-09-15|co najmniej 50% pozostałej kwoty", "W terminie 2026-10-15|pozostała część"]
    	


  • NrFaZaliczkowej

    Przykład dla 1 faktury z numerem KSeF :

    	Numer KSeF|2
    	9999999999-20230908-8BEF280C8D35-4D|2
    	


    Przykład dla 2 faktur: pierwsza z numerem KSeF, druga z numerem faktury :

    	["9999999999-20230908-8BEF280C8D35-4D|2","123/08/2025|1"]
    	


  • Obciazenia

    	Kwota|Powod
    	500|Niedopłata faktury 12/25
    	


  • Odliczenia

    	["1000|nadwyżka salda nierozliczonych środków","0.50|Nadpłata faktury 100/25"]
    	


  • PlatnosciCzesciowe

    	DataZaplatyCzesciowej|KwotaZaplatyCzesciowej|FormaPlatnosci
    	["2026-01-27|10000|1","2026-02-20|500|6"]
    	


  • TerminPlatnosci

    	Termin
    	2026-03-15
    
    	lub
    	["2026-09-15", "2026-10-15"]
    
    	lub TerminOpis
    	|Ilosc|Jednostka|ZdarzeniePoczatkowe
    	|30|Dzień|Otrzymanie faktury
    	


  • RachunekBankowy

    	NrRB|NazwaBanku|SWIFT|RachunekWlasnyBanku|OpisRachunku
    	73111111111111111111111111|Bank Bankowości Bankowej S. A.|||PLN
    
    	lub
    	["73111111111111111111111111|Bank Bankowości Bankowej S. A.|||PLN","73222222222222222222222222|mBank S. A.|BREXPLPWMBK||Firmowy PLN"]
    	


  • RachunekBankowyFaktora

    	NrRB|NazwaBanku|SWIFT|RachunekWlasnyBanku|OpisRachunku
    	73111111111111111111111111|Bank Bankowości Bankowej S. A.||2|PLN
    	


  • Skonto

    	WarunkiSkonta|WysokoscSkonta
    	Testowe warunki skonta|1500
    	




Następny dokument 300 : Praca KSeF-link w trybie http link-Server.