SecureJPK
Zaloguj się

Bramka MF / Kryptografia

Błąd pełnomocnictwa na bramce testowej JPK i NIP 1111111111

Objaw / komunikat błędu

Komunikat MF o braku pełnomocnictwa albo upoważnienia, często przy kodzie 401/403, na test-e-dokumenty.mf.gov.pl, gdy w Podmiot1 nie ma NIP 1111111111.

Środowisko testowe KAS nie sprawdza prawdziwego pełnomocnictwa do firmy. Oczekuje testowego NIP 1111111111 w pierwszym bloku Podmiot1. NIP produkcyjny w nagłówku wygląda na bramce testowej jak wysyłka bez uprawnienia.

Przyczyna techniczna

  • Bramka testowa (test-e-dokumenty.mf.gov.pl) i produkcyjna to osobne hosty i osobne certyfikaty klucza publicznego MF. Plik z NIP-em firmy, wysłany na test, nie znajduje testowego kontekstu uprawnień.
  • Komunikat o pełnomocnictwie albo upoważnieniu jest mylący: przy teście najczęściej znaczy „w Podmiot1 nie ma 1111111111”, a nie brak UPL złożonego w urzędzie.
  • NIP w dalszej części pliku, u kontrahentów, ma zostać prawdziwy. Zamiana każdego ciągu 10 cyfr w całym XML psuje JPK_FA i JPK_KR_PD oraz zmienia skrót bez powodu.
  • Przy pliku wielogigabajtowym Podmiot1 mieści się w pierwszych 64 KB. Czytanie reszty dokumentu tylko po to, by podmienić jeden NIP, jest zbędne i znowu uderza w RAM.

Jak naprawić błąd krok po kroku

  1. 1

    Rozdziel środowisko test i produkcję

    Na test wysyłasz wyłącznie plik z NIP 1111111111 w Podmiot1 i certyfikatem bramki testowej. Na produkcję idzie prawdziwy NIP i certyfikat produkcyjny.

  2. 2

    Podmień tylko pierwszy blok Podmiot1

    Szukaj NIP albo etd:NIP wewnątrz pierwszego Podmiot1, w oknie 64 KB od początku. Reszty pliku, w tym NIP-ów kontrahentów, nie ruszaj.

  3. 3

    Przelicz skrót po podmianie

    Nawet jedna cyfra NIP zmienia SHA-256 oryginału i ContentLength, jeśli długość zapisu NIP się różni. InitUpload musi opisywać plik po podmianie.

  4. 4

    Czytaj podpowiedź przy słowach pełnomocnictwa

    Gdy opis błędu zawiera „pełnomocnictwa” albo „upoważnienia”, na teście sprawdź NIP w pliku, zanim zaczniesz szukać UPL. Na produkcji ten sam tekst może już oznaczać realny brak uprawnienia.

Jak rozwiązuje to architektura SecureJPK

Tryb testowy ustawia NIP pola na 1111111111 i woła bramkę testową. START_NIP_REPLACE w workerze czyta początek pliku (64 KB), podmienia wartość NIP tylko w pierwszym Podmiot1 i zapisuje resztę bajt po bajcie do OPFS, bez przepisywania kontrahentów i bez DOM. Wysyłka testowa nie wymaga subskrypcji. Produkcja dalej żąda prawdziwego NIP i opłaconego dostępu, a ten sam komunikat MF o upoważnieniu dostaje na teście jawną podpowiedź o numerze 1111111111.

Najczęstsze pytania (FAQ)

Czy 1111111111 wpisuje się w formularzu, czy w XML?
W obu miejscach na teście, ale bramka czyta NIP z treści JPK, z Podmiot1. Samo pole w aplikacji nie naprawi pliku, w którym został NIP firmy.
Czy podmiana psuje NIP nabywcy na fakturze?
Nie, jeśli ograniczysz się do pierwszego Podmiot1. NIP-y w dalszych węzłach faktury albo w Kontrahenci mają zostać takie, jakie wystawił system.
Czy błąd 401 na produkcji też leczy się numerem testowym?
Nie. 1111111111 jest wyłącznie dla bramki testowej. Na produkcji potrzebne jest realne uprawnienie do NIP, który jest w pliku.