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.
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.
Widok arkusza z danymi szczegółowymi faktur [FakturyWiersze]
Widok arkusza z danymi szczegółowymi zamówień [ZamowieniaWiersze]
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 :
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.