Skip to content
Wszystkie artykuły

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

Migracja FA(2) na FA(3) — Przewodnik

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
RodzajFakturyFaktura/Fa/RodzajFakturyKod typu faktury: VAT, KOR, ZAL, ROZ, UPR, KOR_ZAL, KOR_ROZ
P_1Faktura/Fa/P_1Data wystawienia faktury (było w nagłówku, teraz w sekcji Fa)
P_6Faktura/Fa/P_6Data dostawy / wykonania usługi (obowiązkowa dla większości typów)
KodWalutyFaktura/Fa/KodWalutyKod waluty (ISO 4217) — zawsze wymagany, nawet dla PLN
P_13_11Faktura/Fa/P_13_11Koszyk 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.

  • × NrKSeF i NrKSeFN — 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

Zwaliduj swoje faktury FA(3) przed wysłaniem

Pobierz KSeF Guard