Przygotowanie dokumentów JPK
Dane JPK przygotowywane będą po stronie klienta (np. systemu ERP) w formie plików XML zgodnych ze schematem XSD opublikowanym przez Ministerstwo Finansów na stronie http://www.mf.gov.pl/ w sekcji "Struktury JPK" w bloku "Pliki do pobrania".Każdy z dokumentów opisanych właściwym schematem ma stanowić osobny plik XML. Wygenerowany plik XML powinien być zakodowany w UTF-8.
jednolity plik kontrolny przykład:
⇒ INVOICER.GITHUB.COM JPK_VAT przykładowy plik xml
⇒ INVOICER.GITHUB.COM JPK_MAG przykładowy plik xml
Walidacja JPK
Zgodnie ze schematem XSD opublikowanym przez Ministerstwo Finansów:http://www.mf.gov.pl/kontrola-skarbowa/dzialalnosc/ jednolity-plik-kontrolny/- /asset_publisher/2NoO/content/struktury-jpk
W programie służy do tego opcja Walidacja (kody błędów walidacji).
Moduł podpisu i wysyłki
Kompresja danych JPKWygenerowany dokument JPK zostanie skompresowany algorytmem zip oraz dzielony na części o wielkości nie przekraczającej 60 MB. Proponowana metoda kompresji to algorytm zip (deflate), natomiast dzielenie na części należy dokonać binarnie.
Szyfrowanie danych JPK
Skompresowane pliki będą szyfrowane. Do szyfrowania plików wykorzystany będzie algorytm AES256, z kluczem szyfrującym wygenerowanym po stronie klienta.
Algorytm procesu szyfrowania będzie wyglądał następująco:
- klient generuje losowy, 256 bitowy klucz,
- wygenerowanym kluczem szyfrowane są wszystkie części skompresowanego archiwum - algorytmem szyfrującym jest AES256.
- klucz szyfrujący jest szyfrowany z wykorzystaniem algorytmu asymetrycznego RSA, z wykorzystaniem certyfikatu klucza publicznego udostępnionego przez Ministerstwo Finansów,
- zaszyfrowany klucz jest dołączany do pliku metadanych, zgodnie z przedstawionym poniżej opisem tego pliku.
Po przygotowaniu zasadniczych dokumentów zgodnych ze schematem Jednolitego Pliku Kontrolnego (JPK), klient, w celu wysłania danych, musi przygotować dane uwierzytelniające, mające postać odpowiedniego XML, przesłane w metodzie InitUploadSigned
Plik metadanych musi być podpisany cyfrowo podpisem kwalifikowanym zgodnie z algorytmem XAdES Basic Electronic Signature w postaci pliku XML zgodnego ze schematem http://www.w3.org/2000/09/xmldsig, w skrócie XAdES-BES w wersji Enveloped (podpis jako dodatkowy element ds:Signature w oryginalnym XML) lub Enveloping (oryginalny dokument zawarty jako element w podpisanej strukturze). Przy podpisywaniu można dokonać transformacji obiektu podpisywanego zgodnie z kodowaniem http://www.w3.org/2000/09/xmldsig#base64.
Funkcją skrótu wykorzystywaną w podpisie powinna być RSA-SHA256 lub RSA-SHA1.
Specyfikacja interfejsu przyjmującego dokumenty JPK dla klientów
Mechanizm przyjmowania dokumentów oparty jest o usługi REST, działające w oparciu o protokół HTTPS. Zasadnicza część interfejsu dla klientów składa się z następujących metod: InitUploadSigned, Put Blob, FinishUpload, Status.
Komunikaty w programie
W programie komunikaty zapisywane są w plikach:- loginitUploadBody - wysyłka inicjalizująca
- loginitUpload - odpowiedz (zawiera adresy do azure)
- log6b - odpowiedź z azure (treść błędów)
- log6H - nagłówek odpowiedzi
- logFinishUploadBody - wysyłka kończąca
- logFinishUpload - odpowiedz z ministerstwa (treść błędów)
Brak komentarzy:
Prześlij komentarz
Uwaga: tylko uczestnik tego bloga może przesyłać komentarze.