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
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
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
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
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.