Przejdź do treści

Technologia i Integracja Systemów (IT & API)5 min czytania

Migracja danych do KSeF - jak przenieść historię?

Migracja danych do KSeF to proces przenoszenia archiwalnych faktur i załączników z dotychczasowych systemów księgowych lub magazynów plików do Krajowego Systemu e-Faktur w formacie XML zgodnym z wymaganiami struktury logicznej JPK_FA (art. 106k ustawy o VAT). Operacja ta, w zależności od wolumenu rekordów w bazie danych SQL lub katalogach płaskich, trwa zazwyczaj od 5 min do 4 h. Kluczowym ryzykiem strukturalnym podczas tego procesu pozostaje brak spójności numeracji KSeF-ID w starych i nowych rekordach, co może wpływać na integralność raportowania w okresach przejściowych. Sprawdzenie kompletności danych przed migracją Weryfikacja merytoryczna zasobów archiwalnych stanowi fundament bezpiecznego przenoszenia danych do repozytorium Ministerstwa Finansów.

Sprawdzenie kompletności danych przed migracją

Tekst opracowany z wykorzystaniem sztucznej inteligencji. Zasady i ograniczenia

Weryfikacja merytoryczna zasobów archiwalnych stanowi fundament bezpiecznego przenoszenia danych do repozytorium Ministerstwa Finansów. Nie każdy dokument księgowy wytworzony w poprzednich latach budżetowych kwalifikuje się do bezpośredniego importu do Krajowego Systemu e-Faktur. System centralny akceptuje wyłącznie dokumenty sformatowane zgodnie ze strukturą logiczną JPK_FA-V7K3 lub nowszą, co wyklucza bezpośrednie przesyłanie plików w formacie PDF czy skanów JPG bez ich wcześniejszej transformacji cyfrowej.

Przykładowo, faktura wystawiona w 2019 r. i przechowywana w formacie PDF trafi do KSeF wyłącznie po przeprowadzeniu pełnej digitalizacji do schematu XML. Wykorzystanie technologii OCR (Optical Character Recognition) jest w tym przypadku niewystarczające, gdyż walidator ministerialny odrzuci plik nieposiadający wymaganych tagów technicznych. Zgodnie z wytycznymi, brak KSeF-ID we własnych fakturach sprzed 1 lipca 2024 r. nie blokuje importu - pole to pozostaje puste, co jest zgodne z ówczesnym stanem prawnym.

  • sprawdzenie wersji schematu XML w nagłówku pliku pod kątem zgodności z JPK_FA
  • walidacja przeciwko XSD udostępnionemu na ksef.mf.gov.pl/xsd w celu uniknięcia błędów składniowych
  • uzupełnienie brakujących elementów: KSeF-ID (dla faktur wystawionych po 1.07.2024), data powstania faktury oraz kody GTU (Grupowanie Towarów i Usług)

Szybka kalkulacja objętości danych pozwala na optymalizację procesu wysyłki masowej. Należy precyzyjnie określić liczbę plików XML w katalogu źródłowym, zidentyfikować duplikaty po numerach faktur VAT oraz odseparować dokumenty zawierające błędy walidacji technicznej. Do automatyzacji tego zadania można wykorzystać skrypt PowerShell: Get-ChildItem -Filter *.xml | Measure-Object oraz prostą weryfikację unikalności numerów faktur. W ten sposób wiesz, czy pakiet zmieści się w limicie 5000 faktur na jedno żądanie API KSeF 2.0.

Import masowy przez API KSeF 2.0 - krok po kroku

Z dniem 1 lutego 2026 r. następuje wyłączenie środowiska KSeF 1.0, co nakłada na podatników obowiązek korzystania wyłącznie z endpointu /api/batch/invoice dostępnego w wersji API 2.0 pod adresem . Integracja systemów ERP z nowym interfejsem wymaga posiadania Certyfikatu KSeF, o który wnioski można składać od 1 listopada 2025 r. Certyfikat ten zachowuje ważność przez 2 lata, stanowiąc bezpieczniejszą alternatywę dla tokenów autoryzacyjnych, których stosowanie jest dopuszczalne do końca 2026 roku.

Techniczna realizacja usługi batch opiera się na metodzie POST z nagłówkiem Content-Type: application/octet-stream. W polu Authorization należy umieścić Bearer-token wygenerowany podczas sesji uwierzytelniającej. Treść żądania stanowi spakowane archiwum ZIP zawierające dokumenty XML. Prawidłowe wywołanie skutkuje kodem odpowiedzi 202 Accepted, a serwer zwraca unikalny element ReferenceNumber. Numer ten jest niezbędny do późniejszej weryfikacji statusu przetwarzania paczki za pomocą metody GET.

Logika obsługi błędów w modelu API 2.0 wymusza precyzyjne mapowanie przyczyn odrzuceń. Typowym przypadkiem jest błąd w polu P_6 (data sprzedaży), gdy jest ona późniejsza niż data wystawienia dokumentu. W takiej sytuacji należy skorygować chronologię w pliku XML i ponowić wywołanie dla konkretnej paczki. Nieudane pliki są zwracane przez system w folderze _errors, co pozwala na selektywną naprawę danych bez konieczności retransmisji całej bazy faktur. Maksymalny czas przetwarzania paczki wynosi 60 minut.

Parametr APIWymaganieOpis techniczny
Endpoint/api/batch/invoiceWersja produkcyjna 2.0 od 01.02.2026
Format paczkiZIP (XML)Maksymalnie 50 MB na jedno żądanie
Metoda autoryzacjiBearer TokenWymaga Certyfikatu KSeF lub Tokenu
Status zwrotny202 AcceptedPotwierdzenie przyjęcia do kolejki przetwarzania

Mapowanie kont księgowych i kontrahentów - jak nie wpaść w duplikaty

Proces migracji wymusza synchronizację danych historycznych z aktualną strukturą planu kont i kartoteką kontrahentów. Krajowy System e-Faktur nie dokonuje automatycznej weryfikacji NIP-u kontrahenta w rejestrach CEIDG, jednak oprogramowanie księgowe musi taką walidację przeprowadzić, aby zachować spójność ewidencji. Stosowana jest deduplikacja oparta na numerze NIP (art. 96 § 3 Kodeksu cywilnego), co oznacza, że jeśli identyfikator podatkowy z importowanego pliku XML już istnieje w bazie, system aktualizuje jedynie dane teleadresowe bez tworzenia nadmiarowych rekordów.

Automatyzacja księgowania w nowoczesnych systemach finansowych, takich jak Comarch ERP czy Mała Księgowość RP, opiera się na predefiniowanych regułach mapowania. Programy te automatycznie dobierają konta z zespołu 2 (Rozrachunki) lub 3 (Koszty według rodzajów) na podstawie słów kluczowych lub kodów GTU zawartych w strukturze XML. Przykładowo, oznaczenie GTU_07 w fakturze zakupowej może automatycznie wskazać konto 330 (Usługi obce), co znacząco przyspiesza proces zamykania ksiąg za lata ubiegłe bez ryzyka błędu manualnego.

System gwarantuje spójność danych w całym procesie współpracy z danym partnerem - od procesu wymiany danych produktowych, poprzez proces zamawiania, pakowania towarów, realizację dostawy, aż po przyjęcie przez partnera biznesowego, fakturowanie i realizację płatności.

Warto podkreślić, że import dokumentów nie nadpisuje istniejących zapisów księgowych w zamkniętych latach obrotowych. Tworzone są jedynie brakujące konta analityczne dla nowych kontrahentów, co zapewnia nienaruszalność bilansów otwarcia. Przed rozpoczęciem migracji zaleca się wykonanie kopii zapasowej kartoteki kontrahentów oraz weryfikację pliku konfiguracyjnego INI w folderze Config/Import oprogramowania księgowego.

Najczęstsze błędy migracji - checklista na ostatnią chwilę

Prawidłowy przebieg migracji zależy od rygorystycznego przestrzegania reguł walidacyjnych systemu centralnego. Zanim zainicjujesz operację przesyłu masowego, zweryfikuj trzy kluczowe daty: data wystawienia nie może być wcześniejsza niż data sprzedaży, a data sprzedaży musi być późniejsza lub równa 2022-01-01 (dokumenty starsze mogą zostać odrzucone przez walidator KSeF). Pamiętaj, że data wpływu do systemu nie może znajdować się w przyszłości względem czasu serwerów Ministerstwa Finansów.

W przypadku wystąpienia statusu 422, oznaczającego duplikat, należy usunąć plik z paczki i powtórzyć procedurę importu. Błąd ten nie jest błędem księgowym sensu stricto, lecz blokadą techniczną chroniącą przed wielokrotnym wprowadzeniem tego samego dokumentu o identycznym numerze faktury i NIP-ie sprzedawcy. Dla faktur wystawianych w walutach obcych krytyczne jest wypełnienie pola ExchangeRate - jego brak uniemożliwi poprawne przetworzenie dokumentu przez silnik KSeF.

Czy import duplikatu nadpisuje pierwotny wpis?
Nie. KSeF odrzuci plik z identycznym numerem faktury i NIP-em sprzedawcy - dostaniesz status 422. Każda próba przesłania dokumentu o identycznych parametrach identyfikacyjnych kończy się błędem krytycznym na poziomie walidacji schematu.
Ile czasu trwa przyznanie numeru KSeF-ID dla starej faktury?
Proces nadawania numeru KSeF-ID może trwać do 24 godzin. Numer nie jest przydzielany natychmiastowo w momencie przyjęcia pliku; system ministerialny w trybie wstecznym dokonuje archiwizacji XML i po pomyślnej weryfikacji struktury generuje unikalny identyfikator dokumentu.
Czy faktura z 2020 r. wejdzie do KSeF?
Tak, pod warunkiem, że zostanie ona przygotowana w formacie XML zgodnym z aktualną strukturą logiczną. Jeśli dokument nie jest korektą wystawioną po 1 lipca 2024 roku, brak uprzednio nadanego numeru KSeF-ID nie zostanie potraktowany jako błąd krytyczny uniemożliwiający import.

Zaleca się archiwizację logów systemowych zawierających ReferenceNumber przez okres 10 lat, analogicznie do terminu przechowywania samych faktur na serwerach Ministerstwa Finansów. W przypadku kontroli skarbowej, dokumentacja ta stanowi dowód terminowego i poprawnego przeprowadzenia migracji zasobów archiwalnych do Krajowego Systemu e-Faktur.

Redakcja · wszystkie artykuły