Migracja FA(2) na FA(3) — Przewodnik
Ministerstwo Finansów zastąpiło schemat e-faktur FA(2) nowym FA(3) (wersja 13775). Ten przewodnik opisuje co się zmieniło, co jest nowe, co zostało usunięte i jakie są najczęstsze błędy podczas migracji. KSeF Guard waliduje wyłącznie według FA(3).
Co się zmieniło z FA(2) na FA(3)?
FA(3) to nie drobna poprawka. Przebudowuje kilka sekcji, dodaje nowe obowiązkowe elementy, usuwa przestarzałe pola i zaostrza reguły walidacji. Jeśli Twój system fakturowy był zbudowany pod FA(2), bezpośrednie mapowanie XML prawdopodobnie wygeneruje nieprawidłowe faktury.
Kluczowe liczby
v13775
Wersja schematu
47
Nowych elementów
12
Usuniętych elementów
23
Zmienionych ograniczeń
Nowe obowiązkowe elementy w FA(3)
Te elementy nie istniały w FA(2) i muszą być obecne w fakturach FA(3):
| Element | XPath | Cel |
|---|---|---|
| RodzajFaktury | Faktura/Fa/RodzajFaktury | Kod typu faktury: VAT, KOR, ZAL, ROZ, UPR, KOR_ZAL, KOR_ROZ |
| P_1 | Faktura/Fa/P_1 | Data wystawienia faktury (było w nagłówku, teraz w sekcji Fa) |
| P_6 | Faktura/Fa/P_6 | Data dostawy / wykonania usługi (obowiązkowa dla większości typów) |
| KodWaluty | Faktura/Fa/KodWaluty | Kod waluty (ISO 4217) — zawsze wymagany, nawet dla PLN |
| P_13_11 | Faktura/Fa/P_13_11 | Koszyk podsumowania procedury marżowej (nowy w FA(3)) |
Usunięte elementy (zmiany łamiące)
Te elementy istniały w FA(2), ale nie są już prawidłowe w FA(3). Jeśli Twój generator XML nadal je emituje, KSeF odrzuci fakturę z błędem walidacji XSD.
- ×
NrKSeFiNrKSeFN— zastąpione przez numery referencyjne przydzielane przez system - ×
ZalszczegolneProcedury— stara sekcja specjalnych procedur - ×
Podmiot3— podmiot trzeci (przebudowany) - × Kilka pól
P_*ze zmienioną numeracją — patrz różnice XSD poniżej
5 najczęstszych błędów migracji
1. Brak KodWaluty na fakturach PLN
W FA(2) waluta była opcjonalna dla krajowych faktur PLN. W FA(3) KodWaluty jest zawsze wymagany. Ustaw go na "PLN" dla faktur krajowych.
2. Błędna wartość RodzajFaktury
FA(3) wymaga jawnego kodu typu faktury. Użycie nieprawidłowej lub brakującej wartości powoduje natychmiastowe odrzucenie. Częsty błąd: użycie "FV" zamiast "VAT".
3. Brak pól P_14_*W na fakturach walutowych
FA(3) wymusza równowartość podatkową PLN dla każdego kubła VAT gdy waluta nie jest PLN. Wykrywane przez regułę BUS-003. Zobacz szczegóły reguły
4. Zmieniona numeracja pól wiersza
FA(3) przenumerował kilka pól FaWiersz (wiersz faktury). P_8B (ilość), P_9A (cena jednostkowa), P_11 (wartość netto) — zweryfikuj mapowania pól do nowego schematu.
5. Zmiany formatu i umiejscowienia dat
P_1 (data wystawienia) i P_6 (data dostawy) zmieniły miejsce w strukturze XML. Walidacja dat jest surowsza: BUS-030 oznacza daty wystawienia wykraczające poza 30-dniowe okno przyszłości. BUS-168 obejmuje limity dat dalekiej przyszłości i przed datą wystawienia.
Jak KSeF Guard wykrywa problemy FA(3)
KSeF Guard waliduje wyłącznie według FA(3) v13775. Wykonuje dwie warstwy sprawdzeń:
Walidacja schematu XSD
Pełna walidacja libxml2 wobec oficjalnego schematu XSD FA(3). Natychmiast wykrywa błędy strukturalne, brakujące elementy, błędne typy i przestarzałe elementy FA(2).
128 aktywnych reguł walidacji
Merytoryczne sprawdzenia zgodności wykraczające poza walidację schematu. Reguły zawierają dowody źródłowe odpowiednie do klasy reguły. Przeglądaj wszystkie reguły