Przejdź do treści

Techniczne Aspekty KSeF i Struktura FA(3)6 min czytania

Jak wykazać WZ w strukturze faktury ustrukturyzowanej? - praktyka KSeF 2026

WZ, czyli dokument wydania z magazynu, to wewnętrzny dowód rozchodu towaru, który w świetle art. 21 ust. 1 ustawy o VAT musi korelować z fakturą sprzedaży. Od 1 lutego 2026 r. faktura ustrukturyzowana w KSeF sporządzana według struktury logicznej FA(3) nie zawiera wyodrębnionego, dedykowanego pola o nazwie "WZ", jednakże numer ten należy obligatoryjnie raportować w elemencie AdditionalDocumentReference. Prawidłowa implementacja wymaga wskazania ścieżki XML /Invoice/cac:AdditionalDocumentReference/cbc:ID, gdyż błąd w mapowaniu tych danych wygeneruje kod błędu KSeF-412. Faktura ustrukturyzowana jest uznana za otrzymaną w dniu przydzielenia numeru identyfikującego przez centralny system informatyczny prowadzony przez Ministerstwo Finansów.

Gdzie fizycznie umieścić numer WZ w XML FA(3)

Tekst opracowany z wykorzystaniem sztucznej inteligencji. Zasady i ograniczenia

Wielu podatników operuje w oparciu o błędne przekonanie, iż brak dedykowanego pola etykietowanego jako "WZ" w schemie XSD uniemożliwia powiązanie dokumentu magazynowego z fakturą. Należy jednak wskazać, że struktura faktury ustrukturyzowanej opiera się na uniwersalnych kontenerach danych, a błąd KSeF-412 (nieprawidłowy format dokumentu towarzyszącego) wynika zazwyczaj z błędnej składni, a nie braku możliwości technicznych. Element AdditionalDocumentReference służy właśnie do agregowania odniesień do dokumentów zewnętrznych, takich jak zamówienia, umowy czy właśnie dowody wydania zewnętrznego (WZ).

Zgodnie ze specyfikacją techniczną Ministerstwa Finansów, numer dokumentu WZ powinien zostać umieszczony w sekcji AdditionalDocumentReference przy użyciu atrybutu SchemeID="WZ". Dokładny XPath dla tego zapisu to /Invoice/cac:AdditionalDocumentReference/cbc:ID. Warto podkreślić, że AdditionalDocumentReference może wystąpić maksymalnie 99 razy w jednym pliku XML, co pozwala na rozliczenie zbiorcze wielu wydań magazynowych jedną fakturą ustrukturyzowaną. KSeF nie waliduje kolejności numerów WZ, a jedynie ich unikalność w obrębie danego dokumentu sprzedaży.

W procesie mapowania danych należy zwrócić szczególną uwagę na spójność identyfikatorów. Poniższa tabela przedstawia dopuszczalne warianty numeracji oraz ryzyka związane z ich implementacją w systemach DMS (Document Management System):

Wariant Przykład Zastosowanie Ryzyko
Numer własny ERP WZ/2025/11/045 Standardowa sprzedaż krajowa Brak unikalności przy wielu magazynach (błąd KSeF-318)
Numer sekwencyjny WZ-202511045 Automatyczne serie w systemach finansowych Przerwanie ciągłości przy ręcznym usuwaniu dokumentów
Numer zewnętrznego DMS WZ_045_EXT_DMS Integracja z logistyką 3PL Niezgodność znaków specjalnych z kodowaniem UTF-8

Przed pełnym wdrożeniem struktury FA(3) rekomenduje się ustalenie wewnętrznego standardu numeracji dokumentów magazynowych, aby uniknąć kolizji danych. Zaleca się również przetestowanie środowiska demo KSeF, ponieważ pliki XML są tam odrzucane z identycznymi komunikatami błędów jak w środowisku produkcyjnym, co pozwala na wczesne wykrycie nieprawidłowości w węźle AdditionalDocumentReference.

Automatyzacja: jak ERP wpisuje WZ bez ręcznego klikania

W profesjonalnych systemach klasy ERP, takich jak Subiekt nexo, proces generowania dokumentów magazynowych jest zintegrowany z wystawianiem faktur sprzedaży. W nexo wystarczy zaznaczyć flagę "Generuj WZ przy zapisie FS", co uruchamia procedurę automatycznego powiązania dokumentów w bazie danych. Użytkownik może skonfigurować to ustawienie w sekcji Sprzedaż / Ustawienia / Dokumenty towarzyszące. System w tle wykonuje instrukcję SELECT NEXT VALUE FOR WZ_SEQ, aby pobrać kolejny numer z sekwencji i automatycznie wstawić go do struktury XML przesyłanej do Krajowego Systemu e-Faktur.

Fakturownia oraz inne systemy działające w modelu SaaS pozwalają zautomatyzować proces tworzenia dokumentów magazynowych WZ i PZ dzięki wykorzystaniu mechanizmów API oraz webhooków. W przypadku tych rozwiązań numer WZ będzie widoczny na wydruku faktury, jeżeli wystawimy go równocześnie z dodawaną fakturą. Jeśli w kolumnie "DM" na liście dokumentów widnieje oznaczenie potocznie zwane "ptaszkiem", oznacza to, że faktura jest poprawnie powiązana z dokumentem magazynowym i informacja ta zostanie przekazana do KSeF.

Proces automatyzacji w systemach webowych przebiega zazwyczaj według poniższej procedury:

  1. Aktywacja integracji z KSeF w panelu administracyjnym systemu ERP.
  2. Zdefiniowanie prefiksu dla dokumentów WZ (np. "WZ/MAG1/").
  3. Weryfikacja struktury payloadu webhooka wysyłanego na endpoint /api/ksf/doc-reference.
  4. Monitorowanie logów zdarzeń w katalogu storage/logs/ksf-error.log w celu wyłapania błędów transmisji.

Należy zauważyć, że Subiekt nexo w wersji 2025.1.3 automatycznie wstawia numer WZ do pola AdditionalDocumentReference bez konieczności zakupu dodatkowych licencji. Z kolei system Fakturownia przesyła stosowne powiadomienie (webhook) w ciągu 3 minut od momentu zaksięgowania dokumentu FS. Przed ostatecznym wdrożeniem automatyzacji konieczne jest wykonanie backupu bazy danych, gdyż błędnie nadane sekwencje numerów WZ w strukturze XML są trudne do skorygowania po ich zatwierdzeniu przez Ministerstwo Finansów. Warto również ustawić alert e-mail dla kodów odpowiedzi HTTP różnych od 200, co pozwoli na natychmiastową reakcję w przypadku awarii API.

Data wystawienia WZ a data faktury - pułapki czasowe

Korelacja dat między wydaniem towaru a wystawieniem faktury ma kluczowe znaczenie dla spójności raportowania JPK_V7. Art. 106i ust. 1 pkt 4 lit. b) ustawy o VAT wskazuje, że za datę sprzedaży przyjmuje się dzień wydania towaru, co musi znajdować odzwierciedlenie w dacie wystawienia WZ. KSeF porównuje datę w polu IssueDate pliku XML z datą nadania numeru identyfikującego przez system, a nie z datą widniejącą na wizualizacji PDF. Jeśli towar opuścił magazyn 15 marca, a faktura ustrukturyzowana trafiła do KSeF 14 kwietnia, system automatycznie zidentyfikuje ryzyko przekroczenia terminów i wyśle komunikat KSeF-WZ-01.

Chociaż fakturę uznaje się za wystawioną w dniu jej poprawnego przesłania do systemu KSeF, to rozbieżności czasowe między WZ a FS mogą skutkować sankcjami. W okresie obowiązkowym faktura jest uznana za otrzymaną w momencie nadania jej numeru przez KSeF, co zamyka drogę do samodzielnego przesyłania dokumentów drogą mailową. Poniższa tabela obrazuje logikę walidacji terminów przez algorytmy Ministerstwa Finansów:

Różnica dni (WZ vs FS) Komunikat KSeF Konsekwencja dla podatnika
0-30 dni Brak ostrzeżeń Pełna zgodność z ustawą o VAT
31-60 dni KSeF-WZ-01 Ryzyko kontroli krzyżowej, konieczność wyjaśnień
>60 dni KSeF-WZ-02 Blokada JPK_V7 i wysokie ryzyko sankcji karno-skarbowych

Ostrzeżenie KSeF-WZ-01 nie blokuje samej wysyłki faktury, lecz staje się trwałym śladem cyfrowym widocznym dla organów skarbowych podczas czynności sprawdzających. Aby wyeliminować 90% tych komunikatów, rekomenduje się ujednolicenie dat wystawienia WZ oraz faktury sprzedaży w obrębie jednego dnia roboczego. W sytuacjach skomplikowanych logistycznie warto rozważyć wystawienie faktury pro-forma w dniu fizycznego wydania towaru, a finalnej faktury ustrukturyzowanej w dniu następnym, zachowując ustawowe terminy raportowania.

FAQ - najczęstsze pytania o WZ w fakturze ustrukturyzowanej

Czy muszę skanować WZ i załączać jako attachment?
Nie. Krajowy System e-Faktur nie przewiduje obsługi załączników binarnych (np. PDF, JPG). Dowolny attachment do faktury KSeF jest ignorowany przez system i nie jest przechowywany. Prawidłowym sposobem raportowania jest umieszczenie numeru WZ w dedykowanym polu tekstowym AdditionalDocumentReference.
Co jeśli wystawię jedną fakturę, a towar będzie z dwóch WZ?
W takim przypadku w strukturze XML należy powielić element AdditionalDocumentReference. Każdy numer WZ musi zostać wpisany jako osobny węzeł. Należy pamiętać, że schema XSD dla FA(3) pozwala na maksymalnie 99 takich powtórzeń; przekroczenie tego limitu wygeneruje błąd krytyczny KSeF-107.
Czy faktura korygująca też musi zawierać WZ?
Obowiązek ten występuje tylko w sytuacji, gdy korekta bezpośrednio wpływa na stany magazynowe (np. zwrot towaru, reklamacja ilościowa). Wówczas w pliku korygującym należy dodać element ReferenceType o wartości 'WZ-KOREKTA' wraz z numerem dokumentu zwrotnego.
ERP nie pozwala edytować XML-a - czy jest obejście?
Tak, techniczne obejście jest możliwe poprzez zastosowanie pre-procesora XSLT lub skryptu napisanego w języku Python (np. z wykorzystaniem biblioteki xml.etree.ElementTree). Skrypt ten może automatycznie wstrzykiwać brakujące tagi AdditionalDocumentReference do pliku wygenerowanego przez ERP przed jego wysłaniem na bramkę KSeF.
Czy urzędnik widzi brak WZ podczas rejestracji pojazdu?
Tak. Wydruk faktury z KSeF opatrzony graficznym kodem QR posiada sekcję „Dokumenty towarzyszące”. W przypadku braku numeru WZ w tej sekcji, urzędnik może powziąć wątpliwość co do faktycznej daty wydania pojazdu, co jest kluczowe w procedurach rejestracyjnych. Zaleca się weryfikację widoczności WZ za pomocą aplikacji KSeF-Verify przed udaniem się do urzędu.
Ile czasu mam na poprawienie błędnego numeru WZ?
Poprawienie numeru WZ bezpośrednio w przesłanym pliku nie jest możliwe po nadaniu mu numeru identyfikującego. Masz czas na weryfikację do momentu wysłania pliku. Jeśli błąd zostanie wykryty po fakcie, jedyną drogą prawną jest wystawienie faktury korygującej, która sprostuje dane w polu AdditionalDocumentReference.

Redakcja · wszystkie artykuły