Spis treści 6 sekcji
API KSeF 2.0 łączy zewnętrzny program z Krajowym Systemem e-Faktur. Dzięki tej integracji można w programie wystawiać, przesyłać i odbierać faktury ustrukturyzowane, zapisane w określonym formacie danych.1
W artykule omawiamy wymianę danych, uwierzytelnianie, obsługę błędów i testowanie połączenia. Obowiązek wystawiania faktur w KSeF wprowadzono 1 lutego 2026 r. dla największych podatników, 1 kwietnia dla pozostałych, a 1 stycznia 2027 r. dla najmniejszych2.
Czym jest API KSeF 2.0 i na jakich zasadach działa?
API KSeF 2.0 umożliwia wymianę danych między zewnętrznym systemem a Krajowym Systemem e-Faktur. Integrator przygotowuje wywołania zgodne ze specyfikacją, odczytuje odpowiedzi i sprawdza wynik każdej operacji.
Rządowe API nie jest tym samym co komercyjna usługa ułatwiająca połączenie. Kontrakt API KSeF 2.0 opublikowano w formacie OpenAPI 3.0.43.
Gdzie znaleźć dokumentację API KSeF 2.0?
Ministerstwo Finansów przedstawiło dokumentację API KSeF 2.0 30 czerwca 2025 r.3
Znalazły się w niej specyfikacja, interaktywny opis wywołań i przewodnik dla integratorów. Opublikowano też przegląd zmian względem API KSeF 1.0.1
Poniższa tabela pokazuje, co zawierają materiały integracyjne i do czego służą.
| Materiał | Zawartość | Zastosowanie |
|---|---|---|
| Specyfikacja API | Kontrakt OpenAPI 3.0.4 w formacie JSON | Przygotowanie wywołań zgodnych z kontraktem |
| Dokumentacja interaktywna | Endpointy, parametry, schematy danych, kody odpowiedzi i przykłady wywołań | Analiza żądań i odpowiedzi |
| Przewodnik dla integratorów | Uwierzytelnianie, sesje interaktywna i wsadowa, pobranie UPO oraz przykłady w C# i Javie | Projektowanie obiegu faktury |
| SDK, czyli biblioteki dla programistów | 2 języki: Java i.NET; biblioteki open source zawierają endpointy, modele danych i przykładowe scenariusze | Budowa klienta API |
Dane w tabeli: 1,3,4
KSeFan pomaga w sprawach dokumentacji integracyjnej. KSeF API to z kolei odrębna firma, która oferuje komercyjny interfejs REST, biblioteki PHP,.NET i Java oraz przykładowe wdrożenia. Licencjonuje swoje rozwiązanie i deklaruje jego utrzymanie, wsparcie oraz aktualizacje; jej zespół rozwija interfejsy API od ponad 20 lat.5
Jak korzystać ze środowiska testowego i produkcyjnego API KSeF?
Środowisko testowe API KSeF pozwala sprawdzić wywołania, zanim ruch trafi na produkcję. Integrator rozdziela konfigurację połączeń i testuje żądania według specyfikacji. Po ocenie odpowiedzi może przełączyć obieg na środowisko produkcyjne.
Osobna konfiguracja zmniejsza ryzyko wysłania żądania do niewłaściwego środowiska6.
Jak sprawdzić poprawność integracji z API KSeF?
Poprawność integracji z API KSeF oceniaj, porównując wysłane dane i otrzymane odpowiedzi z kontraktem API. Najpierw sprawdź strukturę żądania. Potem przeanalizuj kod i treść odpowiedzi, a wynik operacji powiąż z fakturą w systemie firmy.
W ten sposób odróżnisz błąd w danych od błędu w obsłudze odpowiedzi3.
Jak dostosować limity API KSeF 2.0 do potrzeb firmy?
Limity API KSeF 2.0 wpływają na harmonogram wysyłania i pobierania danych. Według ksbot.pl zależą od środowiska oraz rodzaju operacji. Przy masowym pobieraniu serwis zaleca ponawianie prób z opóźnieniem i rozłożenie żądań w czasie.7
Firma może wnioskować o zwiększenie limitów w środowisku Demo lub produkcyjnym, jeśli uzasadni potrzebę operacyjną.3,8
Integracja z KSeF wymaga zgodności z kontraktem API. Trzeba też kontrolować odpowiedzi i natężenie wywołań. Domyślny limit pobierania statusu faktury z sesji wynosi 120 żądań na minutę9.
Uwierzytelnianie w API KSeF: wysyłka faktur, odbiór i obsługa błędów
API KSeF 2.0 wymaga uwierzytelnienia podmiotu i uzyskania tokenu dostępu. Przy przesyłaniu lub odbieraniu faktury trzeba również kontrolować wynik operacji. Uwierzytelnianie jest oddzielone od sesji; podmiot może użyć podpisu elektronicznego XAdES albo tokenu KSeF.10
Nadanie uprawnienia nie zapewnia dostępu od razu, bo system musi je przetworzyć.10 Ważność accessToken określa pole exp tokenu JWT; dokumentacja podaje jako przykład kilkanaście minut11.
Jak przesłać i odebrać fakturę przez API KSeF?
Obieg faktury przez API KSeF zaczyna się od przygotowania XML. Następnie system wysyła dokument, sprawdza jego status oraz pobiera fakturę lub Urzędowe Potwierdzenie Otrzymania (UPO). Dokumentacja komercyjnego REST API ksef24.com opisuje 4 procesy: generowanie faktury, wysyłkę z pobraniem UPO, wyszukiwanie i pobieranie faktur oraz pobranie pojedynczej faktury.12
Przed pobraniem UPO sprawdź status dokumentu: kod 200 w polu status.code oznacza jego pomyślne przetworzenie13.
- Przygotowanie XML w interfejsie ksef24.com wykonuje operacja ksefInvoiceGenerate na podstawie żądania KsefInvoiceGenerateRequest. Jeśli faktura powstała poza tym interfejsem, dokumentacja zaleca zweryfikowanie jej operacją ksefInvoiceValidate przed wysyłką.12
- Szyfrowanie faktury jest wymagane w API KSeF 2.0 bez względu na tryb przesyłania.10 W interfejsie ksef24.com metoda ksefPublicKey pobiera klucz publiczny do szyfrowania XML wysyłanego w szyfrowanej sesji.12
- Wysyłkę interaktywną w procesie ksef24.com rozpoczyna ksefSessionOpenOnline. Otrzymany SessionId identyfikuje sesję w kolejnych operacjach, a ksefInvoiceSend zwraca techniczny identyfikator InvoiceId potrzebny do sprawdzenia statusu faktury.12
- UPO sesji w procesie ksef24.com można pobrać przez ksefSessionUpo po poprawnym zamknięciu sesji operacją ksefSessionClose. W sesji musi zostać poprawnie wystawiona co najmniej 1 faktura.12
- Odbiór faktur według ksbot.pl wymaga ważnego tokenu dostępu JWT i uprawnienia InvoiceRead.7 W opisanych tam wywołaniach POST /invoices/query/metadata wyszukuje faktury, GET /invoices/ksef/{ksefNumber} pobiera pojedynczy dokument, a POST /invoices/exports eksportuje paczki. Faktury pozostają dostępne do pobrania przez API przez minimum 10 lat.7
- Pobieranie w interfejsie ksef24.com obejmuje asynchroniczne wyszukiwanie i rozpakowywanie znalezionych paczek ZIP. ksefInvoiceGet pobiera XML według numeru KSeF, natomiast ksefInvoiceVisualize może przygotować wizualizację PDF lub HTML.12
Jak ustalić przyczynę błędu lub braku odpowiedzi z API KSeF?
Diagnostykę API KSeF zacznij od sprawdzenia uprawnień, identyfikatora operacji i statusu dokumentu. Gdy nie ma odpowiedzi, sprawdź również dostępność używanego interfejsu. Przekroczenie limitu żądań API sygnalizuje odpowiedź HTTP 429 Too Many Requests9.
- Status faktury w procesie ksef24.com sprawdza się z użyciem otrzymanego identyfikatora technicznego. Kod 200 oznacza poprawne zapisanie faktury w KSeF; odpowiedź pozwala zachować jej numer KSeF i datę zapisu.12
- Wysyłka wsadowa w API KSeF 2.0 polega na indywidualnym przetwarzaniu faktur. System przypisuje błąd do dokumentu, w którym go wykrył, więc trzeba sprawdzić wynik każdej faktury w paczce.10
- Dostępność komercyjnego interfejsu to osobna kwestia niż odpowiedź KSeF. Firma KSeF API zapowiedziała przerwę w dostępie do swoich stron i interfejsu od 21 lutego 2026 r., godz. 22:00, do 22 lutego 2026 r., godz. 02:00.5,14
Kontrola obiegu faktur polega na powiązaniu każdej odpowiedzi API z operacją i dokumentem. Numer KSeF ma 35 znaków. Można go użyć do powiązania odpowiedzi systemu z przyjętą fakturą15.
Środowiska KSeF 2.0: integracja i testy przed uruchomieniem
KSeF 2.0 udostępnia środowiska do przygotowania integracji oraz środowisko produkcyjne do rzeczywistego obiegu faktur. Od wybranego środowiska zależą rodzaj używanych danych i skutki wystawienia dokumentu.
Udostępnienie środowiska testowego API KSeF 2.0 zapowiedziano na 30 września 2025 r.1,16
Tabela porównuje środowiska API KSeF 2.0 pod względem używanych danych i skutków wystawienia faktury. API KSeF 2.0 ma trzy środowiska: integracyjne, przedprodukcyjne Demo i produkcyjne. Skutki prawne wywołują wyłącznie faktury wystawione w produkcji3.
| Środowisko | Dane i dostęp | Skutek wystawienia faktury |
|---|---|---|
| Integracyjne | Dane zanonimizowane | Bez skutków prawnych; faktury są później usuwane |
| Przedprodukcyjne Demo | Próba obiegu przed uruchomieniem produkcyjnym | Bez skutków prawnych; faktury są później usuwane |
| Produkcyjne | Faktyczne uprawnienia i dane uwierzytelniające | Faktury wywierają skutki prawne |
Dane w tabeli: 3
Do czego służy środowisko integracyjne KSeF 2.0?
Środowisko integracyjne API KSeF 2.0 pozwala sprawdzić, czy system firmy poprawnie przygotowuje żądania i odczytuje odpowiedzi. Integrator powinien powiązać wynik każdej próby z dokumentem w systemie finansowo-księgowym. Musi też sprawdzić, jak system obsługuje odrzucone żądanie.
Takie testy nie zastępują uruchomienia rzeczywistego obiegu3.
Jak korzystać ze środowiska przedprodukcyjnego Demo KSeF 2.0?
Środowisko przedprodukcyjne Demo API KSeF 2.0 służy do przećwiczenia obiegu faktury przed przejściem na produkcję. Skonfiguruj połączenie z Demo i wykonaj próbny obieg. Porównaj zapis dokumentu z jego statusem w używanym systemie, a po teście oddziel konfigurację Demo od produkcyjnej.
Demo i środowisko produkcyjne korzystają z odrębnych adresów bazowych API17.
KSeF 2.0 w procesie wymiany danych
KSeF 2.0 pośredniczy w wymianie danych między systemem wystawiającym fakturę a systemem, który ją odbiera. System finansowo-księgowy powinien powiązać wysłany dokument z odpowiedzią KSeF. Pobrana faktura musi z kolei trafić do właściwego zapisu w obiegu firmy.
Kontrola tych powiązań pokazuje, czy dokument tylko przygotowano, czy przeszedł dalszą obsługę. Zapis księgowy można powiązać z fakturą przez jej numer KSeF, który ma 35 znaków15.
Jak zaplanować integrację pod obieg faktur w firmie?
Integrację systemu ERP z KSeF zaplanuj według drogi faktury od wystawienia do zaksięgowania. Ustal, który system tworzy dokument, który zapisuje odpowiedź KSeF i kto zajmuje się odrzuceniem. Pobieranie faktur zakupowych przypisz do odpowiedniego procesu w systemie finansowo-księgowym, a cały obieg sprawdź przed uruchomieniem produkcyjnym.
W trybie online art. 106na ust. 1 ustawy o VAT wiąże dzień wystawienia faktury z dniem jej przesłania do KSeF18.
Rozdzielenie środowisk KSeF pozwala testować przepływ danych bez skutków prawnych właściwych produkcji. Do takich prób służą dwa środowiska nieprodukcyjne. Są to środowisko integracyjne i przedprodukcyjne Demo3.
KsefInvoiceVersion – rola wersji faktury w integracji z KSeF
KsefInvoiceVersion wskazuje wersję struktury faktury, którą integracja musi uwzględnić przy odczycie XML. Od 1 lutego 2026 r. struktura logiczna FA(3) zastępuje FA(2) w KSeF 2.0.1
Wcześniej wystawione dokumenty nie zostaną jednak zwrócone w nowej wersji tylko z powodu tej zmiany19.
API KSeF zwraca fakturę jako XML w strukturze, w której ją wystawiono.7 Integracja odczytująca starsze faktury powinna więc rozpoznać wersję dokumentu przed przetworzeniem danych.
Przy fakturach historycznych może być potrzebna obsługa trzech wersji struktury: FA(1), FA(2) i FA(3)18.
Najczęściej zadawane pytania
Jak uzyskać token API do KSeF?
Najpierw uwierzytelnij podmiot — możesz użyć podpisu elektronicznego XAdES albo tokenu KSeF. Uwierzytelnianie jest oddzielone od sesji.
Czy API KSeF to to samo co komercyjny interfejs KSeF API?
Nie. Rządowe API KSeF jest odrębne od komercyjnych usług i interfejsów, które ułatwiają połączenie z systemem.
Czy UPO można pobrać przed zamknięciem sesji?
W opisanym procesie UPO sesji pobiera się po jej poprawnym zamknięciu. W sesji musi być poprawnie wystawiona co najmniej jedna faktura.
Czy błąd jednej faktury zatrzymuje całą wysyłkę wsadową?
Faktury są przetwarzane indywidualnie, a błąd przypisywany jest do dokumentu, w którym go wykryto. Sprawdź wynik każdej faktury z paczki.
Jak długo faktury są dostępne do pobrania przez API?
Według przywołanej dokumentacji faktury pozostają dostępne przez API przez minimum 10 lat.
Źródła
- ↑────────────────────────────────────────────────── https://ksef.podatki.gov.pl/wyjasnienia/publikacja-dokumentacji-api-ksef-20-oraz-struktury-logicznej-fa-3-30062025/
- ↑Ministerstwo Finansów – Zasady obowiązywania KSeF i przepisy prawne https://ksef.podatki.gov.pl/ksef-news/zasady-obowiazywania-ksef-i-przepisy-prawne/
- ↑Wsparcie dla integratorów – KSeF (Krajowy System e-Faktur) https://ksef.podatki.gov.pl/ksef-na-okres-obligatoryjny/wsparcie-dla-integratorow/
- ↑GitHub – CIRFMF/ksef-api · GitHub https://github.com/CIRFMF/ksef-api
- ↑Faktury KSeF | REST API, biblioteki i aplikacje https://ksefapi.pl/
- ↑CIRF/MF, „Środowiska KSeF API 2.0” ([github.com](github.com https://github.com/CIRFMF/ksef-api/blob/main/srodowiska.md
- ↑KsBot | KSeF API pobieranie faktur https://ksbot.pl/api/ksef-api-pobieranie-faktur/
- ↑Ministerstwo Finansów, „Dostosowanie limitów API KSeF 2.0 do indywidualnych potrzeb” ([ksef.podatki.gov.pl](ksef.podatki.gov.pl https://ksef.podatki.gov.pl/komunikaty-techniczne/dostosowanie-limitow-api-ksef-20-do-indywidualnych-potrzeb-komunikat-dla-integratorow/
- ↑CIRF/MF – Limity żądań API KSeF 2.0 https://github.com/CIRFMF/ksef-api/blob/main/limity/limity-api.md
- ↑Dokumentacja API KSeF 2.0 – co warto wiedzieć? – Andersen https://pl.andersen.com/blog/dokumentacja-api-ksef-2-0-co-warto-wiedziec/
- ↑CIRF/MF – Uwierzytelnianie w API KSeF 2.0 https://github.com/CIRFMF/ksef-api/blob/main/uwierzytelnianie.md
- ↑KSeF REST API – dokumentacja integracyjna dla faktur KSeF https://ksef24.com/
- ↑CIRF/MF – Test integracyjny klienta KSeF https://github.com/CIRFMF/ksef-client-csharp/blob/main/KSeF.Client.Tests.Core/E2E/OnlineSession/OnlineSessionE2ETests.cs
- ↑KSeF API, „Planowe prace serwisowe”, komunikat z 20 lutego 2026 r. ([ksefapi.pl](ksefapi.pl https://ksefapi.pl/ksef-api-planowe-prace-serwisowe/
- ↑Ministerstwo Finansów – Zagadnienia techniczne KSeF https://ksef.podatki.gov.pl/ksef-news/zagadnienia-techniczne/
- ↑CIRF/MF, „Środowiska KSeF API 2.0” oraz komunikat MF o rozpoczęciu testów ([github.com](github.com https://ksef.podatki.gov.pl/wyjasnienia/start-otwartych-testow-api-ksef-20/
- ↑Ministerstwo Finansów – Zmiana adresów środowisk KSeF https://ksef.podatki.gov.pl/komunikaty-techniczne/zmiana-adresow-srodowisk-ksef-komunikat-dla-integratorow/
- ↑Ministerstwo Finansów – Faktura ustrukturyzowana i struktura logiczna FA https://ksef.podatki.gov.pl/informacje-ogolne-ksef-20/faktura-ustrukturyzowana-i-struktura-logiczna-fa/
- ↑Ministerstwo Finansów, „Struktura logiczna FA(3)” https://ksef.podatki.gov.pl/informacje-ogolne-ksef-20/struktura-logiczna-fa-3/