Przejdź do głównej treści
KSeF 2.0 · status faktury

Statusy techniczne faktury w KSeF: 550, 500, 405, 430 i 435

Pięć statusów faktury mówi o problemie po stronie przetwarzania, a nie o danych na fakturze. Odoo traktuje je różnie: cztery kończą się stanem Rejected i ponowną wysyłką, a 550, którego Odoo nie zna, zostawia fakturę w stanie Sent.

FlexigoTech · Odpowiada: Víctor Gómez · Aktualizacja: 5 listopada 2026

Najważniejsze

Moduł
KSeF 2.0
Wersje
Odoo 17, 18, 19 i 20
Sprawdzone
w kodzie źródłowym modułu, wersja 20.0 · w źródłach podanych na końcu
Czas czytania
2 min

Co mówi KSeF

KodTekst KSeFStan w Odoo 18, 19 i 20
550„Operacja została anulowana przez system”, details „Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie”Zostaje Sent (In Progress)
500„Nieznany błąd ({statusCode})”Rejected, z opisem z KSeF
405„Przetwarzanie anulowane z powodu błędu sesji”Rejected
430„Błąd weryfikacji pliku faktury”Rejected
435„Błąd odszyfrowania pliku”Rejected
Karta statusów technicznych faktury KSeF
Status 550 z tekstem z API i pozostałe statusy techniczne: 500, 405, 430 i 435.

550: faktura utknęła w Sent

Odoo tłumaczy na swój stan tylko kody 100, 150, 200, 405, 410, 415, 430, 435, 440, 450 i 500. Każdy inny, także 550, kończy się komunikatem „Unknown status received from KSeF (Code: 550): …” (w 18 i 19 po polsku „Otrzymano nieznany status od KSeF (kod: 550): …”) i nie zmienia „KSeF Status”. Faktura zostaje więc w Sent (In Progress), a Odoo nie pokazuje przy niej przycisku powrotu do wersji roboczej.

KSeF mówi „spróbuj ponownie”, ale z poziomu faktury Odoo tego nie zrobi: wysyła tylko faktury bez stanu KSeF. Przycisk „Check Sending” („Sprawdź wysyłkę”) i zaplanowana akcja tylko ponownie pytają o status, który wciąż będzie 550.

Wyjście z tego stanu wymaga zmiany poza interfejsem Odoo, więc zgłoś to partnerowi albo osobie, która utrzymuje Twoje Odoo. Tak wynika z kodu Odoo 18, 19 i 20; nie sprawdzaliśmy tego na produkcyjnym KSeF.

500, 405, 430 i 435: odrzucone, do ponownej wysyłki

Przy tych czterech Odoo ustawia stan Rejected. Przy 500 dokleja opis od KSeF, przy pozostałych pokazuje swój stały tekst. Dokumentacja KSeF nie podaje dla nich listy przyczyn, poza tym, co jest w nazwie:

  • 405: przetwarzanie anulowano przez błąd sesji, w której wysłano fakturę;
  • 430: KSeF nie zweryfikował samego pliku faktury;
  • 435: KSeF nie odszyfrował pliku, który program wysyłający szyfruje AES-256-CBC kluczem przekazanym przy otwarciu sesji.

Odoo samo buduje i szyfruje plik, więc powtarzający się 430 albo 435 wskazuje na program wysyłający, a nie na dane faktury.

Schemat: co zwraca KSeF przy statusie 550 i co pokazuje Odoo 20
Schemat na podstawie kodu l10n_pl_edi z Odoo 20 i specyfikacji API KSeF 2.9.0; skreślone jest to, czego Odoo nie zapisuje albo nie robi.

Co zrobić

  1. Przy 500, 405, 430 i 435 przywróć fakturę do wersji roboczej (Odoo czyści wtedy jej stan i numer KSeF), zatwierdź ją i wyślij jeszcze raz.
  2. Przy 550 sprawdź status jeszcze raz przyciskiem „Check Sending”. Jeśli nadal jest 550, przetwarzanie zostało przerwane i faktura wymaga ponownej wysyłki.
  3. Zgłoś ją wtedy osobie, która utrzymuje Odoo, żeby wysłała ją jeszcze raz. Jeśli wyślesz ją innym kanałem, w Odoo zostanie w stanie Sent.

Nasz moduł, Poland KSeF 2.0 Validator, przejmuje od l10n_pl_edi tylko stan: przy 550 również u niego faktura zostaje Submitted.

Czytaj dalej

Kod 450 w KSeF: „Błąd weryfikacji semantyki dokumentu faktury”Kod 450 oznacza, że KSeF odrzucił fakturę FA(3) po sprawdzeniu treści. Gdzie jest prawdziwa przyczyna, czego nie pokazuje Odoo 18, 19 i 20 i jak wysłać fakturę ponownie.Wyjątki KSeF przy wysyłce faktury: 21405, 21180, 21184 i resztaWyjątki KSeF przy wysyłce faktury: 21405, 21001, 21155, 21166, 21167, 21173, 21180, 21184, 21402 i 21403. Co znaczą i jak je widać w Odoo 18, 19 i 20.KSeF HTTP 429, 403 i 401: limity zapytań i odmowa dostępuKSeF 2.0: 429 Too Many Requests po przekroczeniu limitu, 403 z reasonCode przy braku dostępu, 401 przy wygasłym tokenie. Limity i co robi Odoo 18, 19 i 20.
Sprawdzone w kodzie źródłowym modułu (wersja 20.0) i w podlinkowanych źródłach

Źródła