Wprowadzenie
Cena jednostkowa netto to cena jednej jednostki pozycji, jeszcze bez podatku VAT; w formacie FA(3) zapisujesz ją w polu P_9A, wewnątrz bloku FaWiersz. To punkt wyjścia dla wszystkich kwot wiersza, dlatego warto sprawdzić ją szczególnie starannie przed wysłaniem faktury.
P_9A jest wymagane w każdej pozycji. To pole kwotowe (w schemacie TKwotowy), więc przyjmuje liczbę dziesiętną z co najwyżej dwoma miejscami po przecinku i kropką jako separatorem. Wartość 150.50 jest poprawna; zapis 150,50 nie przejdzie walidacji, bo przecinek nie jest w XML separatorem dziesiętnym.
Wartość z P_9A mnoży się przez ilość z P_8B, co daje wartość netto pozycji (P_11). Wynik jest zaokrąglany do dwóch miejsc, a dopiero od tak ustalonej podstawy liczy się VAT według stawki z P_12. Każda pomyłka w cenie jednostkowej przesuwa zatem wartość netto, kwotę VAT i sumę końcową jednocześnie.
To pole jest ceną netto, więc nie może już zawierać VAT. Częsty błąd integracyjny polega na skopiowaniu ceny brutto z cennika prosto do P_9A. Jeśli Twój plan SaaS kosztuje 199 zł brutto, cena jednostkowa netto jest niższa; wylicz ją z kwoty netto przed wysłaniem.
Przy zaokrąglaniu obowiązuje jedna kolejność: najpierw policz wartość netto wiersza z dokładnością do dwóch miejsc, a dopiero potem nalicz VAT. Odwrotna kolejność — zaokrąglanie VAT osobno na każdej pozycji i dopiero sumowanie — potrafi wygenerować różnice groszowe między pozycjami a sumą końcową. Trzymaj się tej kolejności, a pozycje będą się zgadzać z sumą końcową.
W Notaly cenę jednostkową netto podajesz jako właściwość unitNetPrice pozycji, a usługa zapisuje ją w P_9A — nie musisz ręcznie formatować liczby w XML. Gdy unitNetPrice jest puste albo nie jest liczbą, API zwraca błąd 422 jeszcze przed kontaktem z KSeF; wartości zapisywane są z dwoma miejscami po przecinku.
Przed wysłaniem faktury warto szybko skontrolować trzy rzeczy: czy cena jest netto, czy ma maksymalnie dwa miejsca po przecinku i czy iloczyn P_9A oraz P_8B daje w przybliżeniu wartość netto wiersza. Taka kontrola wyłapuje większość typowych pomyłek, zanim dokument trafi do KSeF.
Kompletny, poprawny przykład FA(3) znajdziesz poniżej; P_9A jest wypełnione w obu pozycjach.
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-10-12T07:23:07Z</DataWytworzeniaFa>
<SystemInfo>einvoice-api</SystemInfo>
</Naglowek>
<Podmiot1>
<DaneIdentyfikacyjne><NIP>2745013933</NIP><Nazwa>Example Sp. z o.o. (FICTIONAL)</Nazwa></DaneIdentyfikacyjne>
<Adres><KodKraju>PL</KodKraju><AdresL1>ul. Testowa 1, 00-001 Warszawa</AdresL1></Adres>
</Podmiot1>
<Podmiot2>
<DaneIdentyfikacyjne><NIP>1234563218</NIP><Nazwa>Test Customer S.A. (FICTIONAL)</Nazwa></DaneIdentyfikacyjne>
<Adres><KodKraju>PL</KodKraju><AdresL1>ul. Probna 2, 30-001 Kraków</AdresL1></Adres>
<JST>2</JST>
<GV>2</GV>
</Podmiot2>
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2026-10-12</P_1>
<P_2>FV/2026/10/001</P_2>
<P_13_1>1000.00</P_13_1><P_14_1>230.00</P_14_1>
<P_13_2>301.00</P_13_2><P_14_2>24.08</P_14_2>
<P_15>1555.08</P_15>
<Adnotacje>
<P_16>2</P_16><P_17>2</P_17><P_18>2</P_18><P_18A>2</P_18A>
<Zwolnienie><P_19N>1</P_19N></Zwolnienie>
<NoweSrodkiTransportu><P_22N>1</P_22N></NoweSrodkiTransportu>
<P_23>2</P_23>
<PMarzy><P_PMarzyN>1</P_PMarzyN></PMarzy>
</Adnotacje>
<RodzajFaktury>VAT</RodzajFaktury>
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>SaaS subscription - October</P_7>
<P_8A>pcs.</P_8A>
<P_8B>1</P_8B>
<P_9A>1000.00</P_9A>
<P_11>1000.00</P_11>
<P_12>23</P_12>
</FaWiersz>
<FaWiersz>
<NrWierszaFa>2</NrWierszaFa>
<P_7>Support</P_7>
<P_8A>hrs.</P_8A>
<P_8B>2</P_8B>
<P_9A>150.50</P_9A>
<P_11>301.00</P_11>
<P_12>8</P_12>
</FaWiersz>
</Fa>
</Faktura>
Źródła
Źródło: crd.gov.pl