KSeF REST API – dokumentacja techniczna (integracyjna)
dla Krajowego Systemu e-Faktur
Wprowadzenie
Niniejsza dokumentacja opisuje interfejs REST API umożliwiający kompleksową realizację obsługi faktur ustrukturyzowanych w systemie KSeF.
Szczegółowa definicja interfejsu API jest dostępna w formacie zgodnym z OpenAPI i można ją pobrać w formie pliku JSON.
API dostępne jest również w formie interfejsu klienta Swagger UI.
Rejestracja i utworzenie konta
Aby móc przetestować możliwości REST KSEF API niezbędne jest przeprowadzenie procesu rejestracji, czyli założenia dedykowanego konta w serwisie. W tym celu należy wejść na stronę Rejestracja i wypełnić odpowiedni formularz. Warunkiem koniecznym do korzystania z systemu serwisu jest akceptacja Regulaminu. Poprawne wypełnienie formularza i kliknięcie przycisku Zarejestruj powoduje utworzenie konta w systemie oraz automatyczną jego aktywację.
Podczas pierwszego logowania generowany jest automatycznie identyfikator wraz z odpowiadającym mu kluczem. Identyfikator i klucz można znaleźć po zalogowaniu na swoje konto w zakładce Klucze API. Identyfikator ma charakter publiczny i nie wymaga ochrony, natomiast klucz ma charakter prywatny i nie powinien być udostępniany osobom trzecim.
Uwaga! Aby skorzystać z operacji udostępnionych w REST KSEF API, należy zapisać token dostępowy, wygenerowany odpowiednio dla środowiska produkcyjnego lub testowego KSeF oraz włączyć dostęp do danego typu środowiska.
Środowiska
Dla ułatwienia integracji naszym Klientom w obszarze faktur KSeF, przygotowaliśmy dwa tożsame ze sobą środowiska: testowe oraz produkcyjne, które są spięte ze środowiskiem testowym i produkcyjnym KSeF.
Środowisko testowe
Pełną funkcjonalność wszystkich udostępnionych operacji w interfejsie REST KSEF API oraz bibliotek, można sprawdzić korzystając z udostępnionego środowiska testowego.
Środowisko testowe REST KSEF API jest zintegrowane ze środowiskiem testowym Krajowego Systemu e-Faktur i jest dostępne pod adresem: https://ksefapi.pl/api-test/
Wszystkie dostępne w ramach testowego środowiska REST KSEF API operacje są również dostępne z poziomu udostępnionych bibliotek.
Dzięki środowisku testowemu REST KSEF API możliwe jest sprawdzenie wszystkich operacji oferowanych w płatnych pakietach KSeF, bez konieczności ich wykupowania.
Uwaga! Aby skorzystać z operacji REST KSEF API na środowisku testowym, wystarczy zapisać token dostępowy wygenerowany w środowisku testowym KSeF i aktywować dostęp do tego typu środowiska.
Środowisko produkcyjne
Środowisko produkcyjne REST KSEF API jest zintegrowane ze środowiskiem produkcyjnym Krajowego Systemu e-Faktur i jest dostępne pod adresem: https://ksefapi.pl/api/
Uwaga! Aby skorzystać z operacji REST KSEF API na środowisku produkcyjnym, należy zapisać token dostępowy, wygenerowany w środowisku produkcyjnym KSeF, aktywować dostęp do tego typu środowiska oraz wykupić dowolny pakiet KSEF.
Uwierzytelnienie i autoryzacja zapytań
Udostępniony interfejs API wykorzystuje standardowy protokół HTTP. Operacje (metody) API wykorzystują metody HTTP GET lub POST. Każde wywołanie operacji wymaga autoryzacji zapytania. Autoryzacja wykonywanych zapytań możliwa jest z wykorzystaniem Basic Authentication
Uwierzytelnienie Basic Authentication
Specyfikacja stosowanej metody autoryzacji: HTTP Authentication: Basic Authentication. Przygotowanie nagłówka autoryzacyjnego dla zapytania wysłanego do naszego serwisu tą metodą polega na zakodowaniu odpowiednio przygotowanego ciągu funkcją Base64 i przesłania wyniku w nagłówku HTTP.
Przykład
Ciąg wejściowy do funkcji Base64 ma postać:
str = key_id + ':' + key
Gdzie:
key_id
– identyfikator klucza API, który można znaleźć na zakładce Klucze API.key
– klucz API, któego wartość można znaleźć na zakładce Klucze API.
Gdyby identyfikator klucza miał wartość test_id
, a klucz miał wartość test_key
, to ciągiem wejściowym dla funkcji Base64 będzie ciąg:
str = "test_id:test_key"
Po zastosowaniu funkcji Base64 otrzymujemy:
Base64(str) = dGVzdF9pZDp0ZXN0X2tleQ==
Tą wartość należy przesłać jako wartość Basic w nagłówku z danymi do autoryzacji. Ostatecznie:
Authorization: Basic dGVzdF9pZDp0ZXN0X2tleQ==
Przykład
Poniższy przykład przedstawia zapytanie, które można wywołać w środowisku testowym z poziomu przeglądarki internetowej. Po prostu skopiuj i wklej go w pasku adresu w przeglądarce:
https://test_id:test_key@www.ksefapi.pl/ksef/api-test/invoice/generate
Gdzie:
test_id
– przykładowa wartość identyfikatora klucza. Aby uwierzytelnić się w środowisku produkcyjnym lub testowym, parametr powinien zawierać poprawny identyfikator klucza używanego do autoryzacji,test_key
– przykładowa wartość klucza. Aby uwierzytelnić się w środowisku produkcyjnym lub testowym, parametr powinien zawierać poprawną wartość klucza używanego do autoryzacji.
Identyfikator klucza oraz klucz są generowane przez użytkownika po zalogowaniu się na jego konto (zakładka Klucze API
).