FA(3) — struktura logiczna e-faktury KSeF (analiza schematu XSD)
Szczegółowa analiza struktury logicznej FA(3) — schematu e-faktury obowiązującego w Krajowym Systemie e-Faktur od 1 lutego 2026 r. Pełen opis wszystkich węzłów: Naglowek, Podmiot1/2/3/PU, Fa (z adnotacjami P_16-P_22, GTU_01-13, procedurami, MPP, marżą), FaWiersz, Rozliczenie, Platnosc, WarunkiTransakcji, Zamowienie, Stopka, Zalacznik. Słowniki: stawki VAT, formy płatności, role podmiotów, kody walut. Z odniesieniami do implementacji w TaxMachine.
Opublikowano
FA(3) to obowiązująca od 1 lutego 2026 r. struktura logiczna
e-faktury wymieniana przez Krajowy System e-Faktur (KSeF).
Definiuje ją plik XSD opublikowany przez Ministerstwo Finansów na
Centralnym Repozytorium Wzorów Dokumentów (CRWD) pod adresem
http://crd.gov.pl/wzor/2025/06/25/13775/. Schemat zastąpił FA(2)
i wprowadza szereg nowych pól (m.in. obsługa grup VAT,
jednostek JST, podmiotów upoważnionych, załączników
strukturalnych, identyfikatora płatności IPKSeF).
Ten artykuł stanowi systematyczne omówienie wszystkich węzłów
struktury — z myślą o programistach integrujących KSeF, księgowych
weryfikujących wystawiane faktury i administratorach systemów
księgowych. Bazuje na bezpośredniej analizie pliku
FA(3).xsd (3949 linii) oraz na broszurze informacyjnej MF
z 4 marca 2026 r.
TaxMachine wystawia faktury w schemacie FA(3) automatycznie — pełna integracja z KSeF, znaczniki MPP/GTU/procedur, korekty, faktury zaliczkowe, załączniki strukturalne. Sekcja „FA(3) w TaxMachine" zawiera mapowanie między polami programu a węzłami XSD.
Metadane techniczne schematu
| Parametr | Wartość |
|---|---|
| Target namespace | http://crd.gov.pl/wzor/2025/06/25/13775/ |
| Data wzoru | 25 czerwca 2025 r. (/2025/06/25/13775/) |
| Wersja schematu | 1-0E (atrybut wersjaSchemy) |
| Kod systemowy | FA (3) (atrybut kodSystemowy) |
| WariantFormularza | 3 |
| Kodowanie XML | UTF-8 |
| Format dat | ISO 8601 — YYYY-MM-DD (xsd:date) lub YYYY-MM-DDThh:mm:ssZ (xsd:dateTime, czas UTC) |
| Format kwot | xsd:decimal, separator dziesiętny kropka, do 18 cyfr (2 po przecinku) dla kwot, do 22 (8 po przecinku) dla kursów |
| Język dokumentacji | xml:lang="pl" |
| Element root | <Faktura> |
Importowany schemat
Schemat importuje definicje typów wspólnych ze schematu
StrukturyDanych_v10-0E.xsd z namespace
http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/
(prefiks etd). Wykorzystywane typy:
etd:TKodKraju— kody krajów ISO 3166 (rozszerzona lista poza UE),etd:TNrNIP— walidacja polskiego NIP-u,etd:TNrIdentyfikacjiPodatkowej— uniwersalny identyfikator podatkowy,etd:TAdresEmail— walidowany adres e-mail,etd:TWybor1— typ wyboru o wartości tylko „1" (znacznik „tak"),etd:TWybor1_2— typ wyboru o wartościach „1" (tak) lub „2" (nie),etd:TNrKRS,etd:TNrREGON— numery rejestrowe,etd:TTekstowy— długi tekst,etd:TData,etd:TDataCzas— typy bazowe dat,etd:TNaturalny— liczby naturalne.
Struktura główna dokumentu
Element root <Faktura> zawiera w określonej kolejności:
<Faktura>
├── <Naglowek> (obowiązkowy)
├── <Podmiot1> (obowiązkowy — sprzedawca)
├── <Podmiot2> (obowiązkowy — nabywca)
├── <Podmiot3> minOccurs=0 maxOccurs=100 (dodatkowi)
├── <PodmiotUpowazniony> minOccurs=0 maxOccurs=1
├── <Fa> (obowiązkowy — sama faktura)
├── <Stopka> minOccurs=0
└── <Zalacznik> minOccurs=0
Naglowek (TNaglowek)
Identyfikuje schemat i moment wytworzenia dokumentu:
| Pole | Typ | Obowiąz. | Opis |
|---|---|---|---|
KodFormularza | enum FA + atrybuty fixed | ✓ | kodSystemowy="FA (3)" wersjaSchemy="1-0E" |
WariantFormularza | xsd:byte = 3 | ✓ | Stała wartość 3 |
DataWytworzeniaFa | xsd:dateTime | ✓ | UTC, zakres 2025-09-01T00:00:00Z → 2050-01-01T23:59:59Z |
SystemInfo | TZnakowy (256 zn.) | – | Nazwa systemu, który wystawił fakturę |
DataWytworzeniaFa≠P_1. Pierwsza to moment fizyczny wytworzenia XML-a (musi być w UTC, z dokładnością do sekundy); druga to data wystawienia faktury w rozumieniu art. 106e ust. 1 pkt 1 ustawy o VAT (data kalendarzowa).
Podstawowe typy danych
Schemat definiuje własne typy bazowe, używane wielokrotnie:
| Typ | Bazowy | Restrykcje | Zastosowanie |
|---|---|---|---|
TKwotowy | xsd:decimal | totalDigits 18, fractionDigits 2 | Wszystkie kwoty na fakturze (max 9 999 999 999 999 999,99) |
TKwotowy2 | xsd:decimal | totalDigits 22, fractionDigits 8 | Ceny jednostkowe, dokładność do 8 miejsc |
TIlosci | xsd:decimal | totalDigits 22, fractionDigits 6 | Ilości, kursy walut (do 6 miejsc po przecinku) |
TProcentowy | xsd:decimal | totalDigits 9, fractionDigits 6, 0–100 | Udział procentowy, stawka XII rozdziału 6a |
TNaturalny | etd:TNaturalny | > 0 | Numery wierszy |
TZnakowy | xsd:token | 1–256 zn. | Tekst krótki |
TZnakowy2 | xsd:token | 0–256 zn. | Tekst krótki dopuszczający pusty |
TZnakowy20 | xsd:token | 1–20 zn. | Krótkie kody (GTIN) |
TZnakowy50 | xsd:token | 1–50 zn. | Indeksy, klasyfikacje |
TZnakowy512 | xsd:token | 1–512 zn. | Adresy, nazwy długie, opisy pozycji |
TData | etd:TData | 2016-07-01 → 2050-01-01 | Daty (po wprowadzeniu JPK_VAT) |
TDataT | etd:TData | 2006-01-01 → 2050-01-01 | Daty transakcyjne |
TDataU | etd:TData | 1990-01-01 → 2050-01-01 | Daty umów (historyczne) |
TDataCzas | etd:TDataCzas | 2021-10-01T00:00:00Z → 2050-01-01T23:59:59Z | Datę-czas (UTC) |
TNumerKSeF | regex | wzorzec NIP + data + 12 hex | Numer faktury w KSeF |
TNrRB | xsd:string | 10–34 zn. | Numer rachunku |
SWIFT_Type | regex | [A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})? | Kod SWIFT/BIC (8 lub 11 zn.) |
TGLN | xsd:token | 1–13 zn. | Globalny Numer Lokalizacyjny |
TNrVatUE | regex | `(\d | [A-Z] |
TNIPIdWew | regex | NIP-XXXXX | NIP + identyfikator wewnętrzny (5 cyfr) |
Format numeru KSeF (TNumerKSeF)
Pattern:
([1-9]((\d[1-9])|([1-9]\d))\d{7} ← NIP wystawcy 10 cyfr
| M\d{9} ← lub identyfikator masowy
| [A-Z]{3}\d{7}) ← lub kod 3-liter + 7 cyfr
-(YYYY)(MM)(DD) ← data wystawienia
-([0-9A-F]{6})-?([0-9A-F]{6}) ← część kontrolna 1 + 2
-([0-9A-F]{2}) ← suma kontrolna
Przykład: 1234567890-20260201-FF00AA-BB1122-33.
Podmiot1 — sprzedawca
Sprzedawca w FA(3) to zawsze podatnik polski (PrefiksPodatnika
ma fixed wartość PL). Sekcja Podmiot1 zawiera:
| Pole | Typ | Obowiąz. | Opis |
|---|---|---|---|
PrefiksPodatnika | TKodyKrajowUE = PL fixed | – | Tylko gdy istotne dla VAT UE |
NrEORI | TZnakowy | – | Numer EORI sprzedawcy |
DaneIdentyfikacyjne | TPodmiot1 | ✓ | NIP + Nazwa |
Adres | TAdres | ✓ | Adres siedziby |
AdresKoresp | TAdres | – | Adres korespondencyjny |
DaneKontaktowe | choice | – maxOccurs=3 | Email + Telefon |
StatusInfoPodatnika | TStatusInfoPodatnika | – | Status szczególny (likwidacja itp.) |
TStatusInfoPodatnika
| Wartość | Status |
|---|---|
1 | Podatnik w stanie likwidacji |
2 | Podatnik w trakcie postępowania restrukturyzacyjnego |
3 | Podatnik w stanie upadłości |
4 | Przedsiębiorstwo w spadku |
Podmiot2 — nabywca
Nabywca może mieć różne identyfikatory (choice — wybór jednej opcji):
| Opcja | Pola | Zastosowanie |
|---|---|---|
| A | NIP | Polski podatnik VAT |
| B | KodUE + NrVatUE | Kontrahent UE (WDT) |
| C | KodKraju + NrID | Kontrahent spoza UE z identyfikatorem podatkowym |
| D | BrakID = 1 | Konsument bez NIP (faktura B2C) |
Dodatkowe pola Podmiot2:
| Pole | Typ | Opis |
|---|---|---|
NrEORI | TZnakowy | Numer EORI nabywcy |
Adres, AdresKoresp | TAdres | Adres (opcjonalny dla faktur uproszczonych) |
DaneKontaktowe | choice | Email + Telefon (max 3) |
NrKlienta | TZnakowy | Numer klienta w systemie sprzedawcy |
IDNabywcy | TZnakowy50 max 32 | Klucz powiązania korekt |
JST | 1 lub 2 | Znacznik jednostki podrzędnej JST — gdy 1, należy wypełnić Podmiot3 z rolą = 8 |
GV | 1 lub 2 | Znacznik członka grupy VAT — gdy 1, należy wypełnić Podmiot3 z rolą = 10 |
Pola
JSTiGVsą nowością FA(3). Wraz z odpowiednim wpisem wPodmiot3umożliwiają udostępnianie faktury jednostce podrzędnej JST lub członkowi grupy VAT z pominięciem standardowego mechanizmu autoryzacji.
Podmiot3 — podmioty trzecie
Sekcja Podmiot3 (max 100 wystąpień) reprezentuje wszystkich
pozostałych uczestników faktury — faktorów, odbiorców, dodatkowych
nabywców itp. Struktura identyczna jak Podmiot2, plus pole IDWew
(NIP + wewnętrzny identyfikator 5-cyfrowy) i:
TRolaPodmiotu3 (11 wartości)
| Wartość | Rola |
|---|---|
1 | Faktor — dane faktora przy cesji wierzytelności |
2 | Odbiorca — jednostka wewnętrzna nabywcy (np. oddział) |
3 | Podmiot pierwotny — podmiot przejęty/przekształcony |
4 | Dodatkowy nabywca — kolejny nabywca poza Podmiot2 |
5 | Wystawca faktury — gdy fakturę wystawia inny podmiot w imieniu podatnika |
6 | Dokonujący płatności — podmiot regulujący zobowiązanie w miejsce nabywcy |
7 | JST — wystawca |
8 | JST — odbiorca (powiązane z Podmiot2/JST=1) |
9 | Członek grupy VAT — wystawca |
10 | Członek grupy VAT — odbiorca (powiązane z Podmiot2/GV=1) |
11 | Pracownik |
Pole Rola można też zastąpić parą RolaInna = 1 + OpisRoli
(dowolny tekst).
Pole Udzial (TProcentowy) określa procentowy udział dodatkowego
nabywcy (rola 4). Różnica do 100% to udział Podmiot2.
PodmiotUpowazniony
Reprezentuje podmiot upoważniony przez ustawę do wystawienia faktury w cudzym imieniu:
TRolaPodmiotuUpowaznionego
| Wartość | Rola | Podstawa |
|---|---|---|
1 | Organ egzekucyjny | art. 106c pkt 1 ustawy o VAT |
2 | Komornik sądowy | art. 106c pkt 2 ustawy o VAT |
3 | Przedstawiciel podatkowy | art. 18a–18d ustawy o VAT |
Dane kontaktowe podmiotu upoważnionego mają specjalne nazwy pól:
EmailPU i TelefonPU (zamiast standardowych Email
i Telefon).
Adres (TAdres)
Typ adresu używany w całym schemacie:
| Pole | Typ | Obowiąz. | Opis |
|---|---|---|---|
KodKraju | etd:TKodKraju | ✓ | ISO 3166 (PL, DE, FR…) |
AdresL1 | TZnakowy512 | ✓ | Pierwsza linia (ulica + numer) |
AdresL2 | TZnakowy512 | – | Druga linia (miejscowość + kod pocztowy) |
GLN | TGLN (13 zn.) | – | Global Location Number |
Uproszczenie FA(3). Schemat nie ma osobnych pól dla województwa, powiatu, gminy, kodu pocztowego, miejscowości, ulicy, numeru domu/lokalu (jak w starym formacie ePUAP). Cały adres mieści się w dwóch liniach po 512 znaków.
Element Fa — sama faktura
Najobszerniejszy węzeł, zawierający wszystkie dane finansowe i opisowe faktury.
Identyfikacja i daty
| Pole | Typ | Obowiąz. | Opis |
|---|---|---|---|
KodWaluty | TKodWaluty | ✓ | ISO 4217 (~180 walut) |
P_1 | TDataT (2006-01-01 →) | ✓ | Data wystawienia faktury |
P_1M | TZnakowy | – | Miejsce wystawienia |
P_2 | TZnakowy | ✓ | Kolejny numer faktury |
WZ | TZnakowy | – maxOccurs=1000 | Numery dokumentów magazynowych (wydanie zewn.) |
Data dokonania (choice — wybór jednej opcji)
| Opcja | Pola | Zastosowanie |
|---|---|---|
| A | P_6 (TDataT) | Pojedyncza data dostawy / wykonania |
| B | OkresFa (P_6_Od + P_6_Do) | Okres rozliczeniowy (najem, media, usługi ciągłe — art. 19a ust. 3) |
Jeżeli daty wykonania różnią się dla pozycji, należy podać
P_6A w każdym wierszu zamiast P_6 w nagłówku.
Sumy podatku (P_13_, P_14_, P_15)
Każda kombinacja stawka × waluta ma osobne pola:
| Pole | Stawka | Opis |
|---|---|---|
P_13_1 / P_14_1 | 23% lub 22% (historyczna) | Suma netto / VAT |
P_14_1W | dla walut obcych | Kwota VAT po przeliczeniu na PLN |
P_13_2 / P_14_2 / P_14_2W | 8% lub 7% (historyczna) | — |
P_13_3 / P_14_3 / P_14_3W | 5% | — |
P_13_4 / P_14_4 / P_14_4W | Ryczałt taksówek (4%) | — |
P_13_5 / P_14_5 | Procedura XII rozdziału 6a (OSS) | Stawka VAT od wartości dodanej |
P_13_6_1 | 0% — sprzedaż krajowa | — |
P_13_6_2 | 0% — WDT | — |
P_13_6_3 | 0% — eksport | — |
P_13_7 | Zwolnione (ZW) | — |
P_13_8 | Dostawa poza terytorium kraju | (poza P_13_5 i P_13_9) |
P_13_9 | Usługi z art. 100 ust. 1 pkt 4 (UE) | — |
P_13_10 | Odwrotne obciążenie | art. 17 ust. 1 pkt 7 i 8 + inne |
P_13_11 | Procedura marży (art. 119, 120) | — |
P_15 | Należność ogółem (brutto) | Suma do zapłaty |
KursWalutyZ | TIlosci | Kurs dla art. 106b ust. 1 pkt 4 (zaliczka) |
Adnotacje
Sekcja Adnotacje zawiera znaczniki tekstowe wymagane przez
art. 106e ustawy o VAT:
| Pole | Typ | Wartości | Treść adnotacji |
|---|---|---|---|
P_16 | TWybor1_2 | 1 / 2 | „metoda kasowa" (art. 19a ust. 5 pkt 1 lub art. 21 ust. 1) |
P_17 | TWybor1_2 | 1 / 2 | „samofakturowanie" (art. 106d ust. 1) |
P_18 | TWybor1_2 | 1 / 2 | „odwrotne obciążenie" |
P_18A | TWybor1_2 | 1 / 2 | „mechanizm podzielonej płatności" (faktura > 15 000 zł brutto + zał. 15) |
P_23 | TWybor1_2 | 1 / 2 | Procedura uproszczona (art. 136 ust. 1) |
Zwolnienie (choice)
| Opcja | Pola | Znaczenie |
|---|---|---|
| A | P_19 = 1 + (P_19A lub P_19B lub P_19C) | Faktura zwolniona; w P_19A — przepis ustawy, w P_19B — przepis dyrektywy 2006/112/WE, w P_19C — inna podstawa |
| B | P_19N = 1 | Brak zwolnienia (faktura nie zwolniona) |
NoweSrodkiTransportu (choice)
Sekcja dla WDT nowych środków transportu (samochodów, jachtów, samolotów). Wymagana zawsze — jako oświadczenie:
Opcja A — występuje WDT nowych środków:
P_22 = 1— znacznik WDT NSTP_42_5(1/2) — obowiązek z art. 42 ust. 5 ustawyNowySrodekTransportu(max 10 000):P_22A— data dopuszczenia do użytkuP_NrWierszaNST— numer wiersza FaWierszP_22BMK(marka),P_22BMD(model),P_22BK(kolor),P_22BNR(nr rej.),P_22BRP(rok produkcji)- Choice typu pojazdu (jeden z trzech):
P_22B(pojazd lądowy) — przebieg + opcjonalnie:P_22B1(VIN),P_22B2(nr nadwozia),P_22B3(nr podwozia),P_22B4(nr ramy),P_22BT(typ)
P_22C(jednostka pływająca) — godziny robocze + opcjonalnieP_22C1(nr kadłuba)P_22D(statek powietrzny) — godziny robocze + opcjonalnieP_22D1(nr fabryczny)
Opcja B — brak WDT NST:
P_22N = 1— znacznik braku
PMarzy (choice)
Opcja A — procedura marży:
P_PMarzy = 1— znacznik wystąpienia- Choice (jedna z czterech wariantów):
P_PMarzy_2 = 1→ „procedura marży dla biur podróży" (art. 119 ust. 1)P_PMarzy_3_1 = 1→ „procedura marży — towary używane" (art. 120)P_PMarzy_3_2 = 1→ „procedura marży — dzieła sztuki" (art. 120)P_PMarzy_3_3 = 1→ „procedura marży — przedmioty kolekcjonerskie i antyki" (art. 120)
Opcja B — brak marży:
P_PMarzyN = 1
RodzajFaktury (TRodzajFaktury)
| Wartość | Rodzaj | Opis |
|---|---|---|
VAT | Faktura podstawowa | Standardowa faktura sprzedażowa |
KOR | Faktura korygująca | Korekta faktury VAT |
ZAL | Faktura zaliczkowa | Dokumentująca otrzymanie zaliczki przed dostawą (art. 106f ust. 4) |
ROZ | Faktura rozliczeniowa/końcowa | Wystawiona po dostawie z rozliczeniem zaliczek (art. 106f ust. 3) |
UPR | Faktura uproszczona | Faktura do 450 zł brutto (art. 106e ust. 5 pkt 3) |
KOR_ZAL | Korekta faktury zaliczkowej | — |
KOR_ROZ | Korekta faktury rozliczeniowej | — |
Uwaga. Schemat FA(3) nie definiuje typu
KOR_UPR(korekta faktury uproszczonej). Korekta faktury uproszczonej powinna być wystawiona jako standardowaKOR.
Korekty — DaneFaKorygowanej
Sekwencja wymagana, gdy RodzajFaktury to KOR, KOR_ZAL lub
KOR_ROZ:
| Pole | Typ | Opis |
|---|---|---|
PrzyczynaKorekty | TZnakowy | Tekst przyczyny |
TypKorekty | TTypKorekty | Skutek korekty w ewidencji VAT |
DaneFaKorygowanej | sekwencja | max 50 000 — dane faktur korygowanych |
OkresFaKorygowanej | TZnakowy | Okres korekty zbiorczej (art. 106j ust. 3) |
NrFaKorygowany | TZnakowy | Poprawny numer faktury — gdy korekta dotyczy błędnego numeru |
Podmiot1K | sekwencja | Dane sprzedawcy z faktury korygowanej (gdy się zmieniły) |
Podmiot2K | sekwencja (max 101) | Dane nabywcy z faktury korygowanej |
P_15ZK | TKwotowy | Kwota zapłaty przed korektą (dla KOR_ZAL/KOR_ROZ) |
KursWalutyZK | TIlosci | Kurs walutowy przed korektą |
DaneFaKorygowanej — element wewnętrzny
| Pole | Typ | Opis |
|---|---|---|
DataWystFaKorygowanej | TDataT | Data wystawienia faktury korygowanej |
NrFaKorygowanej | TZnakowy | Numer faktury korygowanej |
| Choice: | ||
NrKSeF = 1 + NrKSeFFaKorygowanej | TNumerKSeF | Korygowana wystawiona w KSeF |
NrKSeFN = 1 | TWybor1 | Korygowana wystawiona poza KSeF |
TTypKorekty
| Wartość | Skutek w ewidencji VAT |
|---|---|
1 | Korekta w dacie faktury pierwotnej (in minus z błędu) |
2 | Korekta w dacie faktury korygującej (in plus, in minus z innych przyczyn) |
3 | Korekta w innej dacie (różne daty dla różnych pozycji) |
FaWiersz — pozycje faktury
Element opcjonalny dla faktur zaliczkowych, korygujących zbiorczych
oraz ROZ (gdzie dane są w Zamowienie). Dla zwykłych faktur —
wymagany. Max 10 000 pozycji.
Pola pozycji
| Pole | Typ | Obowiąz. | Opis |
|---|---|---|---|
NrWierszaFa | TNaturalny | ✓ | Kolejny numer wiersza |
UU_ID | TZnakowy50 | – | Uniwersalny unikalny ID wiersza |
P_6A | TDataT | – | Data dostawy/wykonania (gdy różni się od P_6) |
P_7 | TZnakowy512 | – | Nazwa (rodzaj) towaru lub usługi |
Indeks | TZnakowy50 | – | Wewnętrzny kod towaru sprzedawcy |
GTIN | TZnakowy20 | – | Global Trade Item Number (kod kreskowy) |
PKWiU | TZnakowy50 | – | Polska Klasyfikacja Wyrobów i Usług |
CN | TZnakowy50 | – | Nomenklatura Scalona (dla eksportu) |
PKOB | TZnakowy50 | – | Polska Klasyfikacja Obiektów Budowlanych |
P_8A | TZnakowy | – | Jednostka miary (szt., kg, h, m²…) |
P_8B | TIlosci | – | Ilość |
P_9A | TKwotowy2 | – | Cena jednostkowa netto (8 miejsc po przecinku) |
P_9B | TKwotowy2 | – | Cena jednostkowa brutto (gdy stosuje się art. 106e ust. 7-8) |
P_10 | TKwotowy2 | – | Kwota rabatu lub obniżki |
P_11 | TKwotowy | – | Wartość sprzedaży netto |
P_11A | TKwotowy | – | Wartość sprzedaży brutto |
P_11Vat | TKwotowy | – | Kwota VAT (art. 106e ust. 10) |
P_12 | TStawkaPodatku | – | Stawka VAT (enum, niżej) |
P_12_XII | TProcentowy | – | Stawka VAT-OD (procedura XII rozdziału 6a, OSS) |
P_12_Zal_15 | TWybor1 | – | Znacznik załącznika nr 15 (1 = MPP-able) |
KwotaAkcyzy | TKwotowy | – | Akcyza w cenie towaru |
GTU | TGTU | – | Kod towaru/usługi wrażliwej (GTU_01–13) |
Procedura | TOznaczenieProcedury | – | Procedura szczególna |
KursWaluty | TIlosci | – | Kurs dla art. działu VI ustawy |
StanPrzed | TWybor1 | – | Znacznik stanu przed korektą (1 = wiersz „przed") |
TStawkaPodatku — stawki VAT
| Wartość | Znaczenie |
|---|---|
23 | Stawka podstawowa 23% |
22 | Stawka 22% (historyczna, dla korekt sprzed 2011) |
8 | Stawka obniżona pierwsza 8% |
7 | Stawka 7% (historyczna) |
5 | Stawka obniżona druga 5% |
4 | Stawka 4% (historyczna) |
3 | Stawka 3% (historyczna) |
0 KR | 0% na terytorium kraju (poza WDT i eksportem) |
0 WDT | 0% — WDT (wewnątrzwspólnotowa dostawa towarów) |
0 EX | 0% — eksport |
zw | Zwolnione od podatku |
oo | Odwrotne obciążenie |
np I | Niepodlegające — dostawa/usługi poza krajem (poza art. 100 ust. 1 pkt 4 i OSS) |
np II | Niepodlegające — usługi z art. 100 ust. 1 pkt 4 ustawy |
TGTU — kody towarów i usług wrażliwych
Wszystkie 13 kodów odsyła do § 10 ust. 3 pkt 1/2 rozporządzenia o JPK_VAT:
| Kod | Towar / usługa |
|---|---|
GTU_01 | Napoje alkoholowe |
GTU_02 | Towary z zał. 15 (paliwa, oleje) |
GTU_03 | Olej opałowy, oleje smarowe |
GTU_04 | Wyroby tytoniowe i nowatorskie |
GTU_05 | Odpady |
GTU_06 | Urządzenia elektroniczne (komputery, smartfony, konsole) |
GTU_07 | Pojazdy i części samochodowe |
GTU_08 | Metale szlachetne i nieszlachetne |
GTU_09 | Leki i wyroby medyczne objęte zakazem wywozu |
GTU_10 | Budynki, budowle, grunty |
GTU_11 | Usługi w zakresie przenoszenia uprawnień do emisji gazów |
GTU_12 | Usługi niematerialne (doradcze, księgowe, prawne…) |
GTU_13 | Usługi transportowe i magazynowe |
TOznaczenieProcedury — procedury szczególne
| Kod | Procedura | Podstawa |
|---|---|---|
WSTO_EE | Wewnątrzwspólnotowa sprzedaż towarów na odległość i usługi elektroniczne | § 10 ust. 4 pkt 2a |
IED | Sprzedaż przez interfejs elektroniczny (rejestrowana w UE) | § 10 ust. 4 pkt 2b |
TT_D | Dostawa towarów poza UE (transakcja trójstronna) | § 10 ust. 4 pkt 5 |
I_42 | Procedura 42 — odprawa celna z VAT odroczonym | § 10 ust. 4 pkt 8 |
I_63 | Procedura 63 — powrót zwolniony z cła | § 10 ust. 4 pkt 9 |
B_SPV | Bon jednego przeznaczenia (Single Purpose Voucher) | § 10 ust. 4 pkt 10 |
B_SPV_DOSTAWA | Dostawa towarów/usług w zamian za SPV | § 10 ust. 4 pkt 11 |
B_MPV_PROWIZJA | Prowizja z bonu różnego przeznaczenia (MPV) | § 10 ust. 4 pkt 12 |
Dla pozycji zamówienia (w sekcji
Zamowienie) używa się typuTOznaczenieProceduryZ— okrojonej listy bezI_42iI_63.
Inne znaczniki w Fa
| Pole | Typ | Opis |
|---|---|---|
FP | TWybor1 | Faktura uproszczona z art. 109 ust. 3d (paragon-faktura) |
TP | TWybor1 | Powiązania nabywca-dostawca (§ 10 ust. 4 pkt 3) |
DodatkowyOpis | TKluczWartosc | max 10 000 par klucz-wartość — pola dodatkowe |
FakturaZaliczkowa | sekwencja | max 100 — numery faktur zaliczkowych powiązanych |
ZwrotAkcyzy | TWybor1 | Faktura uprawniająca do zwrotu akcyzy od oleju napędowego (rolnicy) |
ZaliczkaCzesciowa | sekwencja | max 31 — daty i kwoty zaliczek częściowych |
ZaliczkaCzesciowa
| Pole | Typ | Opis |
|---|---|---|
P_6Z | TDataT | Data otrzymania zaliczki |
P_15Z | TKwotowy | Kwota zaliczki częściowej |
KursWalutyZW | TIlosci | Kurs walutowy zastosowany |
Rozliczenie
Sekcja dodatkowych rozliczeń (obciążenia + odliczenia):
| Element | Pola | Limity |
|---|---|---|
Obciazenia | Kwota + Powod | max 100 |
SumaObciazen | TKwotowy | — |
Odliczenia | Kwota + Powod | max 100 |
SumaOdliczen | TKwotowy | — |
| choice: | ||
DoZaplaty | TKwotowy | Należność do zapłaty = P_15 + obciążenia − odliczenia |
DoRozliczenia | TKwotowy | Kwota nadpłacona do zwrotu |
Platnosc — warunki płatności
Status zapłaty (choice)
| Opcja | Pola |
|---|---|
| A | Zaplacono = 1 + DataZaplaty (zapłacono w całości) |
| B | ZnacznikZaplatyCzesciowej (1=część / 2=całość po częściach) + ZaplataCzesciowa (max 100) |
ZaplataCzesciowa — element wewnętrzny
| Pole | Typ | Opis |
|---|---|---|
KwotaZaplatyCzesciowej | TKwotowy | Kwota raty |
DataZaplatyCzesciowej | TData | Data raty |
| choice: | ||
FormaPlatnosci | TFormaPlatnosci | Forma z enum |
PlatnoscInna = 1 + OpisPlatnosci | Inna forma + opis |
TerminPlatnosci (max 100)
| Pole | Typ | Opis |
|---|---|---|
Termin | TData | Konkretna data |
TerminOpis | sekwencja | Słowny opis (Ilosc + Jednostka + ZdarzeniePoczatkowe) np. „14 dni od dnia wystawienia" |
TFormaPlatnosci
| Wartość | Forma |
|---|---|
1 | Gotówka |
2 | Karta |
3 | Bon |
4 | Czek |
5 | Kredyt |
6 | Przelew |
7 | Mobilna (np. BLIK) |
Rachunki bankowe
| Element | Limit |
|---|---|
RachunekBankowy | max 100 |
RachunekBankowyFaktora | max 20 |
TRachunekBankowy
| Pole | Typ | Opis |
|---|---|---|
NrRB | TNrRB (10–34 zn.) | Pełny numer rachunku (NRB / IBAN) |
SWIFT | SWIFT_Type | Kod SWIFT/BIC |
RachunekWlasnyBanku | TRachunekWlasnyBanku | Typ 1-3 |
NazwaBanku | TZnakowy | Nazwa banku |
OpisRachunku | TZnakowy | Opis (np. „Rachunek VAT", „Rachunek główny") |
TRachunekWlasnyBanku (rachunki banków)
| Wartość | Opis |
|---|---|
1 | Rachunek banku/SKOK do rozliczeń z tytułu nabywanych wierzytelności pieniężnych (faktoring) |
2 | Rachunek banku/SKOK do pobrania należności i przekazania jej dostawcy (np. konto powiernicze) |
3 | Rachunek banku/SKOK prowadzony w ramach gospodarki własnej (niebędący rachunkiem rozliczeniowym) |
Skonto, link do płatności
| Pole | Typ | Opis |
|---|---|---|
Skonto | sekwencja | WarunkiSkonta + WysokoscSkonta (tekstowe) |
LinkDoPlatnosci | URL z parametrem IPKSeF | Link do płatności bezgotówkowej |
IPKSeF | [0-9]{3}[a-zA-Z0-9]{10} | Identyfikator płatności KSeF (13 zn.) |
IPKSeF to nowość FA(3) — umożliwia identyfikację konkretnej płatności w systemie KSeF (np. dla bramek płatności online).
WarunkiTransakcji
Sekcja opcjonalna z parametrami zamówienia/dostawy:
| Element | Limit | Pola |
|---|---|---|
Umowy | max 100 | DataUmowy + NrUmowy |
Zamowienia | max 100 | DataZamowienia + NrZamowienia |
NrPartiiTowaru | max 1000 | Numery partii towaru |
WarunkiDostawy | 1 | Incoterms (EXW, FOB, CIF…) |
KursUmowny + WalutaUmowna | 1 | Kurs umowny (nie dla działu VI ustawy) |
Transport | max 20 | Patrz niżej |
PodmiotPosredniczacy | 1 | Transakcja łańcuchowa (art. 22 ust. 2d) |
Transport (max 20)
| Pole | Opis |
|---|---|
Choice: RodzajTransportu lub TransportInny+OpisInnegoTransportu | |
Przewoznik | DaneIdentyfikacyjne + AdresPrzewoznika |
NrZleceniaTransportu | Numer zlecenia |
Choice: OpisLadunku (TLadunek) lub LadunekInny+OpisInnegoLadunku | |
JednostkaOpakowania | Jednostka |
DataGodzRozpTransportu, DataGodzZakTransportu | Daty/czas (UTC) |
WysylkaZ, WysylkaPrzez (max 20), WysylkaDo | Adresy |
TRodzajTransportu
| Wartość | Rodzaj |
|---|---|
1 | Transport morski |
2 | Transport kolejowy |
3 | Transport drogowy |
4 | Transport lotniczy |
5 | Przesyłka pocztowa |
7 | Stałe instalacje przesyłowe |
8 | Żegluga śródlądowa |
TLadunek (20 wartości)
1-Bańka, 2-Beczka, 3-Butla, 4-Karton, 5-Kanister,
6-Klatka, 7-Kontener, 8-Kosz/koszyk, 9-Łubianka,
10-Opakowanie zbiorcze, 11-Paczka, 12-Pakiet, 13-Paleta,
14-Pojemnik, 15-Pojemnik do ładunków masowych stałych,
16-Pojemnik do ładunków masowych w postaci płynnej, 17-Pudełko,
18-Puszka, 19-Skrzynia, 20-Worek.
Zamowienie (dla faktur zaliczkowych)
Opcjonalna sekcja z pozycjami zamówienia/umowy — wymagana przy fakturze zaliczkowej (ZAL), gdzie dokumentuje zakres pełnego zamówienia (z którego rozliczana jest tylko część):
| Pole | Typ | Opis |
|---|---|---|
WartoscZamowienia | TKwotowy | Wartość zamówienia (brutto) |
ZamowienieWiersz | sekwencja | max 10 000 — pozycje zamówienia |
ZamowienieWiersz (pola z sufiksem „Z")
Struktura analogiczna do FaWiersz, ale z osobnymi nazwami pól
(by uniknąć kolizji): NrWierszaZam, UU_IDZ, P_7Z, IndeksZ,
GTINZ, PKWiUZ, CNZ, PKOBZ, P_8AZ, P_8BZ, P_9AZ,
P_11NettoZ, P_11VatZ, P_12Z, P_12Z_XII, P_12Z_Zal_15,
GTUZ, ProceduraZ, KwotaAkcyzyZ, StanPrzedZ.
Stopka
| Element | Limit | Pola |
|---|---|---|
Informacje | max 3 | StopkaFaktury (długi tekst) |
Rejestry | max 100 | PelnaNazwa, KRS, REGON, BDO |
BDO (Baza Danych o Odpadach) — maksymalnie 9 znaków.
Załącznik (nowość FA(3))
Strukturalny załącznik — może zawierać dane uzupełniające (np. specyfikację techniczną, kalkulacje):
| Element | Limit | Opis |
|---|---|---|
BlokDanych | max 1000 | Blok semantyczny |
BlokDanych/ZNaglowek | – | Nagłówek bloku |
BlokDanych/MetaDane | max 1000 | Pary klucz-wartość |
BlokDanych/Tekst/Akapit | max 10 | Akapity tekstu |
BlokDanych/Tabela | max 1000 | Tabela z danymi |
Tabela
| Element | Limit | Opis |
|---|---|---|
TMetaDane | max 1000 | Klucz-wartość |
Opis | 1 | Tytuł |
TNaglowek/Kol | max 20 | Definicja kolumn z atrybutem Typ |
Wiersz/WKom | max 1000 / 20 | Komórki wiersza |
Suma/SKom | max 20 | Komórki podsumowania |
Typ kolumny tabeli (atrybut Typ)
date, datetime, dec (liczba), int (całkowita), time, txt
(tekst).
Cel załącznika. Pozwala dołączyć specyfikację lub kalkulację w formacie strukturalnym (zamiast jako oddzielny PDF). Cała dana przechodzi przez walidację XSD i jest dostępna programowo dla nabywcy.
Tryby wysyłki w KSeF (poza schematem XSD)
Schemat XSD definiuje strukturę dokumentu, ale tryby wysyłki opisuje API KSeF:
| Tryb | Opis |
|---|---|
| Online | Faktura wysyłana natychmiast w momencie wystawienia |
| Offline24 | Faktura wystawiona, ale do KSeF trafia maks. 24 h później |
| Offline72 | Awaria KSeF — wysyłka do 72 h od ustania awarii |
W trybach offline w XML-u znajdują się tylko dane wystawcy + treść — KSeF nadaje NrKSeF dopiero po przyjęciu.
FA(3) w TaxMachine
TaxMachine wystawia, wysyła i odbiera e-faktury w schemacie FA(3) — automatycznie i z pełnym wsparciem wszystkich węzłów schematu.
Mapowanie pól programu → FA(3)
| Pole TaxMachine | Pole FA(3) | Uwagi |
|---|---|---|
| Nazwa kontrahenta | Podmiot2/DaneIdentyfikacyjne/Nazwa | — |
| NIP / VAT UE | Podmiot2/.../NIP lub KodUE+NrVatUE | Auto-detekcja typu |
| Data wystawienia | Fa/P_1 | — |
| Numer | Fa/P_2 | — |
| Pozycja faktury | Fa/FaWiersz | jeden wiersz = jeden FaWiersz |
| PKWiU / GTIN / PKOB / CN | FaWiersz/PKWiU, GTIN, PKOB, CN | — |
| Stawka VAT (23/8/5/zw/oo/np) | FaWiersz/P_12 | Mapowanie na enum TStawkaPodatku |
| Znacznik MPP | Fa/Adnotacje/P_18A = 1 + FaWiersz/P_12_Zal_15 = 1 | Auto przy fakturze > 15 000 zł z zał. 15 |
| Znacznik GTU | FaWiersz/GTU | Dropdown w pozycji towaru |
| Procedury (SW, EE, TT_D, B_SPV…) | FaWiersz/Procedura | Multiple checkbox |
| Rachunek bankowy | Fa/Platnosc/RachunekBankowy | Dwa rachunki z karty firmy |
| Termin płatności | Fa/Platnosc/TerminPlatnosci/Termin | — |
| Forma płatności (przelew, BLIK, karta…) | Fa/Platnosc/FormaPlatnosci | Mapowanie na enum 1-7 |
| Status zapłaty | Fa/Platnosc/Zaplacono + DataZaplaty | — |
| Korekta | Fa/RodzajFaktury = KOR + DaneFaKorygowanej | Wybór z listy |
| Numer KSeF faktury korygowanej | DaneFaKorygowanej/NrKSeFFaKorygowanej | Auto przy korekcie e-faktury |
| Magazyn (WZ) | Fa/WZ | Powiązanie WZ ↔ faktura |
| Faktura zaliczkowa | Fa/RodzajFaktury = ZAL + Zamowienie | — |
| Faktura rozliczeniowa | Fa/RodzajFaktury = ROZ + powiązane FakturaZaliczkowa | — |
Walidacja przed wysyłką
Program przed wysyłką do KSeF wykonuje walidację offline
przeciwko FA(3).xsd:
- sprawdza obowiązkowe pola (zgodnie z
minOccurs/maxOccurs), - weryfikuje formaty (NIP, kwoty, daty, kursy),
- sprawdza spójność (np. czy suma
P_11wierszy =P_13_1 + ... + P_13_11), - weryfikuje znaczniki MPP (czy faktura > 15 000 zł + pozycje
z
P_12_Zal_15 = 1mająP_18A = 1), - wykrywa braki adnotacji (np. metoda kasowa wymagana, bo dostawa < 30 dni przed zapłatą — program podpowiada).
Generowanie identyfikatora IPKSeF
Przy włączonej opcji „link do płatności w fakturze" program
generuje 13-znakowy IPKSeF i wpisuje go w pole LinkDoPlatnosci
(z URL bramki płatniczej) oraz IPKSeF.
Importu e-faktur od dostawców
Przy pobraniu e-faktury z KSeF:
- program parsuje XML zgodnie z FA(3),
- mapuje pola na strukturę dokumentu księgowego,
- automatycznie wykrywa MPP, GTU, procedury — i podpowiada formy płatności,
- zachowuje oryginalny XML + NrKSeF + PDF wizualizacji w karcie faktury.
Różnice względem FA(2)
Najważniejsze nowości w FA(3) względem poprzedniej wersji:
JSTiGV— znaczniki dla jednostek JST i grup VAT- odpowiadające role w
Podmiot3(8 i 10),
- odpowiadające role w
PodmiotUpowazniony— sformalizowana sekcja dla organów egzekucyjnych, komorników, przedstawicieli podatkowych,Zalacznik— strukturalny załącznik z tabelami,IPKSeFiLinkDoPlatnosci— identyfikator i URL płatności online,UU_ID/UU_IDZ— uniwersalne unikalne identyfikatory wierszy,ZaliczkaCzesciowa— natywne wsparcie zaliczek częściowych,Skonto— sformalizowane warunki + wysokość skonta,- rozszerzona sekcja
Transport— pełen łańcuch logistyczny z przewoźnikiem, ładunkiem, datami, - rozszerzona sekcja
WarunkiTransakcji— Incoterms, kursy umowne, transakcje łańcuchowe, RachunekBankowyFaktora— osobne pole dla faktoringu.
Walidacja przed wysyłką — checklist
Przed wysyłką do KSeF warto sprawdzić:
- ✅
Naglowek/DataWytworzeniaFajest w UTC (nie lokalnie!) - ✅
Naglowek/KodFormularzama atrybutykodSystemowy="FA (3)"iwersjaSchemy="1-0E" - ✅
Fa/P_1(data wystawienia) ≤DataWytworzeniaFa(jeżeli różne) - ✅
Fa/P_2(numer) jest unikalny w skali roku - ✅ Sumy
P_13_*zgadzają się z sumąP_11pozycji o danej stawce - ✅
P_15(brutto) = sumaP_13_* + P_14_* - ✅ Faktura > 15 000 zł z pozycjami
P_12_Zal_15 = 1maP_18A = 1(MPP) - ✅ Korekta ma wypełnione
PrzyczynaKorekty,TypKorekty,DaneFaKorygowanej - ✅ Faktura w obcej walucie ma wypełnione
P_14_*W(VAT w PLN) - ✅ Adnotacje są zawsze wypełnione (każde z pól P_16, P_17, P_18, P_18A wymaga wartości 1 lub 2 — nie pomija się ich)
- ✅ Sekcja
Zwolnieniema wybraną opcję A (z P_19A/B/C) albo B (P_19N) - ✅ Sekcja
NoweSrodkiTransportuma wybraną opcję A (z pełnymi danymi) albo B (P_22N) - ✅ Sekcja
PMarzyma wybraną opcję A (z konkretnym wariantem marży) albo B (P_PMarzyN)
Podstawa prawna
- Ustawa z 11 marca 2004 r. o podatku od towarów i usług
(Dz.U. 2024 poz. 361 ze zm.):
- art. 106e — wymagane dane faktury (mapowanie na pola P_*)
- art. 106d — samofakturowanie (P_17)
- art. 106f — faktury zaliczkowe (ZAL) i rozliczeniowe (ROZ)
- art. 106j — faktury korygujące (KOR)
- art. 106na — data wystawienia w KSeF
- art. 17, 119, 120, 135, 136 — procedury szczególne
- Rozporządzenie MF z 18 października 2024 r. w sprawie wykorzystywania Krajowego Systemu e-Faktur (Dz.U. 2024 poz. 1546) — schemat FA(3) jako oficjalna struktura logiczna.
- Centralny Repozytorium Wzorów Dokumentów — schemat FA(3)
pod URI
http://crd.gov.pl/wzor/2025/06/25/13775/. - Broszura informacyjna MF z 4 marca 2026 r. — interpretacja struktury logicznej FA(3).
Powiązane
- KSeF 2.0 — funkcje w TaxMachine — wystawianie, wysyłka, pobieranie, certyfikaty
- Portal akceptacji e-faktur — dla biur rachunkowych
- Fakturowanie i magazyn w TaxMachine — wystawianie faktur z mapowaniem na pola FA(3)
- VAT — kompendium 2026 — stawki, JPK_V7, adnotacje
- MPP — Mechanizm Podzielonej Płatności — adnotacja P_18A
- Biała lista VAT — narzędzie online — weryfikacja kontrahenta przed wystawieniem faktury
- JPK w TaxMachine — JPK_V7, oznaczenia GTU/procedur
- Pomoc — KSeF 2.0 — instrukcja konfiguracji i obsługi w programie
Coś jest niezrozumiałe? Brakuje pola? Pomyłka w opisie? Napisz nam — uzupełnimy.