Chcesz przegadać swój projekt?
Odpowiadam osobiście w ciągu 24h w dni robocze — bez handlowca po drodze.
Błąd uwierzytelnienia użytkownika w KSeF ma kilka przyczyn: brak uprawnień, zły token albo certyfikat. Pokazuję, jak odczytać status i co sprawdzić najpierw.
Komunikat „błąd uwierzytelnienia użytkownika” to jeden z najczęstszych problemów przy podłączaniu programu albo sklepu do KSeF. Sam komunikat niewiele mówi. KSeF zwraca jednak konkretny status uwierzytelnienia z krótkim opisem przyczyny i to on wskazuje, co naprawić. W praktyce wystarczy rozróżnić trzy przypadki: brak uprawnień, problem z tokenem i problem z certyfikatem.
Pobranie wyzwania (challenge)
KSeF zwraca jednorazowe wyzwanie ważne 10 minut.
Podpis albo token
Program podpisuje wyzwanie (XAdES) albo szyfruje je tokenem KSeF i odsyła.
Sprawdzenie statusu
Status 200 kończy proces, a program dostaje access token i refresh token.
Błąd może pojawić się na każdym z tych etapów. Jeśli program zwleka z odesłaniem odpowiedzi dłużej niż 10 minut, dostanie wyjątek 21111, nieprawidłowe wyzwanie autoryzacyjne. Statusy opisane niżej pojawiają się w trzecim kroku.
Podpis i token są poprawne, ale osoba albo podmiot nie ma żadnych uprawnień w kontekście, w którym się loguje. Typowy przypadek: księgowa loguje się swoim certyfikatem w kontekście NIP klienta, a klient nie nadał jej uprawnień. Rozwiązanie jest po stronie właściciela firmy. Jak to zrobić, opisałem w tekstach o nadawaniu uprawnień w KSeF i uprawnieniach dla biura rachunkowego.
Więcej o tym, jak działa token i kiedy wygasa, piszę w tekście o tokenie KSeF.
KSeF odrzuca certyfikat, gdy jest nieważny, odwołany, zawieszony, ma niezaufany łańcuch albo jest po prostu niepoprawny. Najczęściej chodzi o certyfikat, który wygasł, albo o pomyłkę między certyfikatem do uwierzytelnienia a certyfikatem do trybu offline. Jak je rozróżnić i odnowić, wyjaśniam w tekście o certyfikatach KSeF.
Każdą zmianę w logowaniu, np. nowy certyfikat albo nowy token, warto najpierw sprawdzić na środowisku testowym KSeF, gdzie można używać certyfikatów samopodpisanych i losowych NIP-ów. Dopiero potem przełącza się konfigurację na produkcję. Dobra integracja zapisuje przy każdym logowaniu status i opis z odpowiedzi KSeF, więc przy kolejnym błędzie widać od razu, czy chodzi o uprawnienia (415), token (450) czy certyfikat (460). Różnice między środowiskami opisałem w tekście o środowisku testowym KSeF.
Źródło: uwierzytelnianie w dokumentacji API KSeF 2.0.
Tak. Bez poprawnego uwierzytelnienia program nie otworzy sesji i nie wyśle żadnej faktury. Warto mieć kolejkę, która wyśle je po naprawie, tak jak w integracji KSeF z WooCommerce.
Aplikacja i program logują się różnymi metodami. Program zwykle używa tokena albo certyfikatu KSeF, który ma własne uprawnienia i własny termin ważności.
Krótko, zwykle kilkanaście minut, zgodnie z polem exp. Refresh token pozwala go odświeżać do 7 dni bez ponownego logowania.
Chcesz przegadać swój projekt?
Odpowiadam osobiście w ciągu 24h w dni robocze — bez handlowca po drodze.