Po co lokalna walidacja XSD?
Bramka KAS (Ministerstwo Finansów) zwraca lakoniczne komunikaty błędów typu „FormCode invalid” lub „Validation failed” — bez wskazania, które konkretnie pole jest źle wypełnione. Diagnoza zajmuje godziny.
Pre-walidacja XSD w panelu Mobilna Faktura sprawdza poprawność strukturalną pliku lokalnie, zanim zostanie podpisany i wysłany do bramki. Dostajesz czytelny komunikat per pole — od ręki widzisz, co poprawić.
Jakie deklaracje są walidowane?
Wszystkie e-Deklaracje generowane w panelu:
| Deklaracja | Wariant | Namespace MF |
|---|---|---|
| PIT-28 | (25) | 12109 |
| PIT-36 | (28) | 10448 |
| PIT-36L | (17) | 10402 |
| VAT-UE | (5) | 10293 |
| VAT-8 | (11) | 9926 |
| VAT-9M | (10) | 9927 |
| JPK_EWP | (1) | 03097 |
| JPK_PKPIR | (1) | 03096 |
| JPK_V7M / V7K | (2) | 03085 |
| JPK_FA | (4) | 03171 |
| KEDU (ZUS) | 5.3 | zus.pl/2021 |
Jak działa walidacja?
Źródło prawdy: crd.gov.pl
Oficjalne schematy XSD są pobrane z Centralnego Repozytorium Wzorów Dokumentów (crd.gov.pl) — to jedyne autorytatywne źródło. Pliki są cache’owane lokalnie w files/imports/ (~600 kB), więc walidacja działa offline w 0,04s zamiast 37s przez sieć.
Kiedy się uruchamia?
- Przed wysyłką — system generuje XML, sprawdza wobec schematu, dopiero potem przechodzi do podpisania certyfikatem
- Przy zapisie deklaracji (np. VAT-UE) — od razu po zatwierdzeniu formularza, plik jest walidowany i zapisywany tylko jeśli przejdzie
- Przy generowaniu pliku (np. JPK_EWP) — jako warunek końcowy
Co dostajesz w razie błędu?
Komunikat w formie:
Plik PIT-28 nie przeszedł walidacji XSD:
Element '{http://crd.gov.pl/wzor/2023/02/06/12109/}KodUrzedu':
[facet 'enumeration'] The value '0000' is not an element of the set
{'0202', '0203', '0204', ...} (linia 8)
Czytasz: pole KodUrzedu, wartość 0000 nie jest dozwolona, musi być z listy enumeracji (kody urzędów wg MF). Idziesz w Ustawienia → Twoje konto i ustawiasz właściwy kod (4 cyfry).
Najczęstsze błędy
KodUrzedu ‘0000’ — nie wybrałeś urzędu skarbowego w Ustawienia → Twoje konto. Domyślny placeholder 0202 (Bolesławiec) działa tymczasowo, ale uzupełnij właściwy.
NIP w złym formacie — musi być 10 cyfr bez kresek/spacji. System normalizuje, ale jeśli wpisałeś literę przez pomyłkę, walidacja zatrzyma plik.
DataUrodzenia ‘0000-00-00’ — wynika z braku daty urodzenia w profilu. System podstawia 1970-01-01 jako fallback, ale uzupełnij w profilu.
Brak wpisów (JPK_EWP, JPK_PKPIR) — schemat XSD wymaga minimum 1 wiersza w pliku. Jeśli okres jest pusty, system blokuje generowanie z komunikatem „Brak wpisów w …”.
Czy mogę wyłączyć walidację?
Nie — to dodatkowa warstwa bezpieczeństwa, która chroni przed wysłaniem błędnego pliku do US. Wyłączenie naraziłoby na odbicia z bramki i konieczność wysyłki korekt.