KSeF (Krajowy System e-Faktur) to system Ministerstwa Finansów do obsługi faktur ustrukturyzowanych. Integracja tworzy fakturę w inFakcie przez API, a inFakt zamienia ją na plik FA(3), wysyła do KSeF, odbiera wynik i zapisuje przy fakturze numer KSeF (ksef_number). Integracja nie musi znać struktury FA(3) ani łączyć się z KSeF bezpośrednio.
Wysyłkę zleca się parametrem send_to_ksef=true przy tworzeniu faktury albo osobnym żądaniem POST /ksef2/documents/{uuid}/send.json. Przez API można też pobrać z KSeF listy faktur sprzedażowych i zakupowych oraz pojedyncze faktury, także te, których nie ma w inFakcie.
Statusy wysyłki
KSeF przetwarza faktury asynchronicznie i odpowiada z opóźnieniem, dlatego wysyłka zaczyna się od statusu pending, a wynik końcowy pojawia się później:
| Status | Znaczenie |
|---|---|
pending |
zlecenie przyjęte, czeka na wysłanie |
sent |
faktura wysłana, czeka na odpowiedź KSeF |
success |
KSeF przyjął fakturę; pole ksef_number jest uzupełnione |
error |
KSeF odrzucił fakturę; przyczyna jest w status_description |
cancelled |
wysyłkę anulowano |
Wynik podaje GET /ksef2/documents/{uuid}/status.json, pole ksef_data faktury oraz webhooki send_to_ksef_success i send_to_ksef_error. Webhooki oszczędzają zapytania, więc są lepszym wyborem niż cykliczne sprawdzanie statusu.
Ograniczenia
- Połączenie konta z KSeF konfiguruje się tylko w aplikacji inFakt, za pomocą certyfikatu KSeF. Przez API można jedynie sprawdzić jego stan (
GET /ksef2/integration.json). W sandboxie połączenie z testowym KSeF jest gotowe od razu. - Do KSeF trafiają faktury VAT (bez proform), zaliczkowe, końcowe i korygujące oraz ich odpowiedniki w procedurze marży. Faktur OSS, faktur wewnętrznych, utargów dziennych i raportów fiskalnych nie wysyła się do KSeF.
- inFakt obsługuje KSeF 2.0, działający od 1 lutego 2026 r. KSeF 1.0 działał do 25 stycznia 2026 r., a jego endpointy
/ksef/*nie należą do API v3.