Pytania i odpowiedzi (FAQ)


W tym miejscu znajdziesz odpowiedzi na najczęściej zadawane pytania dotyczące funkcjonowania kas online

Zalecenie dla producentów kas fiskalnych współpracujących z repozytorium

Preferowany sposób  wysyłki dokumentów do Centralnego Repozytorium Kas zakłada, że każda paczka będzie zawierać logicznie kompletny zestaw dokumentów, jako kompletna struktura JPK.

Zdefiniowany w specyfikacji sposób wysyłki, według którego pojedyncza  paczka może zawierać część większego dokumentu (nie będzie to kompletna struktura JPK ), powinien być stosowany w drodze wyjątku w sytuacji, gdy pojedynczego dokumentu w strukturze JPK nie można umieścić  w jednej paczce o rozmiarze mniejszym niż 256kB.

Powyższe  zalecenie  wynika z potrzeby  ograniczenia procesu scalania paczek po stronie repozytorium do  niezbędnego minimum.

Objaśnienia do zapisów w schemie

  1. Wskazówki dotyczące sposobu określania znaków wartości opustów, narzutów i storn do pozycji towarowej, opustu lub narzutu oraz przyjęcia lub wydania opakowania zwrotnego.
    • Cena towaru/usługi zawsze dodatnia.
    • Pole „oper" w obiekcie „TParagonTowar" określa sprzedaż towaru/usługi (wartość False) lub storno towaru/usługi (wartość True).
    • Opust (rabat) zawsze występuje ze znakiem ujemnym.
    • Narzut zawsze występuje ze znakiem dodatnim.
    • Storno opustu (rabatu) występuje ze znakiem dodatnim.
    • Storno narzutu występuje ze znakiem ujemnym.
    • Opakowania zwrotne – przyjęcie opakowania – ze znakiem ujemnym.
    • Opakowania zwrotne – wydanie opakowania – ze znakiem dodatnim.
    • Dla stawek podatku stosuje się podobne reguły jak dla rabatu i storna rabatu i analogicznie dla narzutu i storna narzutu. 
  2. Ponadto  Ministerstwo Finansów informuje, że standard kodowania polskich znaków przy przekazywaniu danych z kasy do repozytorium to – UTF8.

Z czego ma się składać wejście dla funkcji tworzącej AT (Authentication Tag") ?

Należy użyć ciągu bajtów postaci Base64URL dodatkowych danych uwierzytelniających AAD, a pozostałe części czyli wektor inicjujący oraz zaszyfrowane dane należy odkodować z Base64URL do postaci bajtowej. Przykład z wykorzystaniem danych ze specyfikacji https://tools.ietf.org/html/rfc7516#appendix-B (link otwiera nowe okno w innym serwisie)

Postać szesnastkowa odszyfrowanego klucza 32 bajtowego CEK (Content Encryption Key):

04d31fc5549dfcfe0b649dfa3faa6ace6b7cd42d6f6b09dbc8b100f08f9c2ccf

pierwsze 16 bajtów wykorzystywane w funkcji HMAC:

MAC_KEY:
04d31fc5549dfcfe0b649dfa3faa6ace

ostatnie 16 bajtów wykorzystywane do odszyfrowania treści algorytmem AES:

ENC_KEY:
6b7cd42d6f6b09dbc8b100f08f9c2ccf

 

użyte dane autoryzujące AAD (nagłówek JWE):

postać ASCII:
{"alg":"A128KW","enc":"A128CBC-HS256"}

postać Base65URL:

eyJhbGciOiJBMTI4S1ciLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0

postać szesnastkowa (bajty postaci Base64URL) wykorzystana w funkcji HMAC:

65794a68624763694f694a424d544934533163694c434a6c626
d4d694f694a424d54493451304a444c5568544d6a5532496e30

użyty 16 bajtowy wektor inicjujący IV:

postać Base65URL:
AxY8DCtDaGlsbGljb3RoZQ

postać szesnastkowa wykorzystana w funkcji HMAC:
03163c0c2b4368696c6c69636f746865

 

zaszyfrowane dane użyte również do wyliczenia  etykiety uwierzytelniającej:

postać Base65URL:
KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY

postać szesnastkowa wykorzystana w funkcji HMAC:
283953b577218594c6b9f31898e6064b81df7f13d252b7e6a821d7688f703866

 

długość dodatkowych danych autoryzujących w formacie Base64URL wynosi 51 bajtów, czyli 408 bitów i w formacie Big-Endian w postaci szesnastkowej  ma wartość:

0000000000000198

Dokonując konkatenacji bajtowej AAD, IV oraz danych zaszyfrowanych i długości AAD do wyliczenia MAC będzie wykorzystany ciąg bajtów:

65794a68624763694f694a424d544934533163694c434a6c626d4d694f694a424d54493
451304a444c5568544d6a5532496e3003163c0c2b4368696c6c69636f746865283953b5
77218594c6b9f31898e6064b81df7f13d252b7e6a821d7688f7038660000000000000198

Wynik użycia powyższego ciągu bajtów oraz klucza MAC_KEY 04d31fc5549dfcfe0b649dfa3faa6ace funkcja haszująca HS256 powinna zwrócić 32 bajtową wartość:

5349bf6268cdd380c9bdc7852026c2550954e5c9db872cfc9166b38c6956e574