Przejdź do głównej zawartości

Autoryzacja podatnika

wskazówka

Jeśli pracujesz ze środowiskiem TEST należy pominąć ten krok. W środowisku testowym utworzenie podatnika powoduje automatyczne wygenerowanie certyfikatów. Próba pełnej autoryzacji nie powiedzie się.

Po dodaniu podatnika należy zautoryzować go w KSeF.

Obecnie KSeF Pipe umożliwia wykonanie tej operacji jedną metodą, tj. poprzez podpisanie dokumentu XML np. za pomocą profilu zaufanego, co jest najwygodniejszą techniką z punktu widzenia użytkownika końcowego. Idea jest taka, że użytkownik końcowy pobiera plik XML, po czym podpisuje go elektronicznie i odsyła. Jego podpis z tego dokumentu jest używany do wygenerowania certyfikatów w KSeF, które będą później używane do wszystkich operacji.

Generowanie pliku do podpisu

Aby wygenerować plik do podpisu wyślij następujące zapytanie do API:

POST /api/v1/taxpayers/:nipNumber/auth/signature/challenge

gdzie w miejsce :nipNumber podstaw NIP firmy, której dotyczy autoryzacja.

W odpowiedzi uzyskasz kod 201 oraz plik XML, który należy dać do pobrania i podpisania użytkownikowi końcowemu.

Odsyłanie podpisanego pliku

Po podpisaniu pliku wyślij następujące zapytanie do API:

POST /api/v1/taxpayers/:nipNumber/auth/signature/response

gdzie:

  • w adresie, w miejsce :nipNumber podstaw NIP firmy, której dotyczy autoryzacja,
  • w treści przekaż podpisany plik XML,
  • pamiętaj o ustawieniu właściwego nagłówka Content-Type: application/xml.
wskazówka

Plik powinien zostać podpisany przez osobę, która ma przyznane uprawnienia dla danej firmy w KSeF.

  • Dla jednoosobowych działalności gospodarczych jest to jej właściciel.
  • Dla innych podmiotów należy najpierw zgłosić jedną osobę uprawnioną do KSeF do Urzędu Skarbowego za pomocą formularza ZAW-FA. Ta osoba może samodzielnie pracować z KSeF lub nadać kolejnym osobom uprawnienia w KSeF.

Plik może zostać podpisany za pomocą podpisu zaufanego, podpisu kwalifikowanego lub pieczęci kwalifikowanej, ale najbardziej powszechną metodą jest podpis zaufany.

Sprawdzanie statusu autoryzacji

Wysłanie podpisanego pliku rozpoczyna proces autoryzacji, który może chwilę potrwać. W celu sprawdzenia, czy autoryzacja się powiodła należy raz na jakiś czas (np. raz na kilka sekund) wysłać zapytanie do API:

GET /api/v1/taxpayers/:nipNumber/auth/certificate/info

gdzie w miejsce :nipNumber podstaw NIP firmy, której dotyczy autoryzacja.

Jeśli autoryzacja się powiodła, w odpowiedzi uzyskasz status 200 oraz dane wygenerowanego certyfikatu, np.

{
"issuer": "G=Jan, SN=Kowalski, SERIALNUMBER=TINPL-5214137058, CN=Jan Kowalski, C=PL",
"subject": "G=Jan, SN=Kowalski, SERIALNUMBER=TINPL-5214137058, CN=Jan Kowalski, C=PL",
"notBefore": "2026-03-01T12:46:34+01:00",
"notAfter": "2028-03-01T13:47:34+01:00",
"serialNumber": "6096A81618DC742E",
"publicKeyAlgorithm": "ECDSA"
}

Certyfikat zostanie wygenerowany na dane osoby, która podpisywała plik XML.

wskazówka

Jednym z powodów dla których certyfikat może nie zostać wygenerowany jest przekroczenie limitów. Jedna osoba posługując się swoim podpisem zaufanym lub kwalifikowanym (czyli przypisanym do jej PESEL) może w danym środowisku KSeF podpisać maksymalnie dwa certyfikaty.

W przypadku gdyby zaistniała konieczność wygenerowania większej liczby certyfikatów, należy skorzystać z pieczęci kwalifikowanej - czyli formy podpisu cyfrowego, który jest przypisany do firmy (a konkretnie jej NIP), a nie osoby (czyli PESEL). W przypadku użycia pieczęci limit wynosi 100 certyfikatów.

Testowanie autoryzacji

Na koniec opcionalnie możesz wywołać test, który spróbuje wykonać pełną procedurę autoryzacji w KSeF, uruchamiając ją w dokładnie taki sam sposób, jaki będzie używany przy realnych operacjach na fakturach. W tym celu wyślij następujące zapytanie do API:

POST /api/v1/taxpayers/:nipNumber/auth/test/perform

gdzie w miejsce :nipNumber podstaw NIP firmy, której dotyczy autoryzacja.

Jeśli test się powiedzie, w odpowiedzi uzyskasz status 200 oraz taką treść:

{
"success": true
}