Projekt JpkTaxApp to prosta implementacji aplikacji biurowej w środowisku JAVA do obsługi dokumentów JPK wymaganych przez organy kontroli skarbowej oraz Ministerstwo Finansów zgodna ze specyfikacją zamieszczoną na stronie http://jpk.mf.gov.pl/ w sekcji "Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego" w wersji 1.7.
Projekt JpkTaxApp składa się z trzech niezależnych modułów:
Etap pierwszy obsługi dokumentów JPK składa się z mechanizmów walidacji przetwarzanego dokumentu ze schematem XSD, skompresowaniem wskazanego pliku w formacie pliku ZIP metodą DEFLATE, ewentualne podzielenie binarne na części nie większe niż zalecane w specyfikacji, zaszyfrowanie poszczególnych części algorytmem AES256 oraz utworzenie pliku metadanych zgodnie ze schematem wskazanym w specyfikacji.
Drugi etap to podpisanie przygotowanego pliku metadanych podpisem elektronicznym w formacie XadES-BES. Udostępniony moduł pozwala na skorzystanie z tej funkcjonalności do celów testowych gdyż umożliwia podpisywanie plików certyfikatem niekwalifikowanym.
Etap końcowy to wysłanie przygotowanej paczki na bramkę usługi JPK, sprawdzenie statusu przetwarzania sesji oraz pobranie i zapisanie urzędowego poświadczenie odbioru UPO.
W celu uruchomienia modułów projektu wymagane jest zainstalowanie środowiska uruchomieniowego JAVA w wersji 8 (JRE 8) lub wyższej dostępnego pod adresem:
https://www.java.com/pl/download/
Moduły dostarczone są w formie archiwum ZIP, a proces instalacji polega na wypakowaniu katalogu w dowolne miejsce na lokalnym dysku. W celu uruchomienia w katalogu aplikacji przygotowane są skrypty systemu MS Windows application.bat dla aplikacji okienkowej oraz console.bat dla aplikacji konsolowej.
Do uruchomienia aplikacji JpkInitApp wymagane jest uzupełnienie środowiska uruchomieniowego JAVA o biblioteki obsługujące szyfrowanie algorytmem AES256. W tym celu należy przekopiować z uprawnieniami administratora biblioteki local_policy.jar oraz US_export_policy.jar znajdujące się w katalogu bibliotek aplikacji JpkInitApp\lib\security do katalogu bibliotek używanego JRE, dla przykładu w JRE w wersji 1.8.0_101:
c:\Program Files\Java\jre1.8.0_101\ lib\security
c:\Program Files (x86)\Java\jre1.8.0_101\ lib\security