JPK - przygotowanie, kompresja i szyfrowanie danych JPK, przygotowanie metadanych uwierzytelniających ∴

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 JPK 
Wygenerowany 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.
Przygotowanie metadanych uwierzytelniających 
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) 
INVOICER.GITHUB.COM Przykładowe treści komunikatów


Brak komentarzy:

Prześlij komentarz

Uwaga: tylko uczestnik tego bloga może przesyłać komentarze.