ValidateFin

KSeF FA(3) — bad NIP check digit and mismatched total (warnings only)

Structurally perfect against the official schema, yet the seller’s NIP fails its mod-11 check digit and P_15 does not match the sum of the VAT breakdown. ValidateFin reports both as warnings, not errors — neither is a normative KSeF rule, and the Ministry’s own example 1 is itself one grosz off.

FA(3) 1-0E — Valid

Structurally perfect against the official schema, yet the seller’s NIP fails its mod-11 check digit and P_15 does not match the sum of the VAT breakdown. ValidateFin reports both as warnings, not errors — neither is a normative KSeF rule, and the Ministry’s own example 1 is itself one grosz off.

KSeF invoice (Poland, FA(3)) FA(3) 1-0E KSeF — Polish Ministry of FinanceExpected result: Valid — 2 warnings

What this file shows

Structurally perfect against the official schema, yet the seller’s NIP fails its mod-11 check digit and P_15 does not match the sum of the VAT breakdown. ValidateFin reports both as warnings, not errors — neither is a normative KSeF rule, and the Ministry’s own example 1 is itself one grosz off.

Transactions3
TotalPLN 64,379.92
Last verified: License: CC-BY-4.0

Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.

File content

<?xml version="1.0" encoding="UTF-8"?>
<!--
  DELIBERATELY IMPERFECT — but note the verdict: this file is still VALID.

  It is structurally correct against the official FA(3) schema, yet it carries two
  defects that the schema cannot see:
    · the seller's NIP (9999999998) fails the mod-11 check digit;
    · P_15 (64379.92) does not match the sum of P_13_* + P_14_* (64279.92).

  ValidateFin reports both as WARNINGS, not errors — because neither is a normative
  KSeF rule, and treating them as fatal would reject the Ministry's own example files
  (their example 1 is itself 1 grosz off). This sample exists to show that distinction.
-->
<Faktura xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/">
	<Naglowek>
		<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
		<WariantFormularza>3</WariantFormularza>
		<DataWytworzeniaFa>2026-02-01T00:00:00Z</DataWytworzeniaFa>
		<SystemInfo>SamploFaktur</SystemInfo>
	</Naglowek>
	<Podmiot1>
		<DaneIdentyfikacyjne>
			<NIP>9999999998</NIP>
			<Nazwa>ABC AGD sp. z o. o.</Nazwa>
		</DaneIdentyfikacyjne>
		<Adres>
			<KodKraju>PL</KodKraju>
			<AdresL1>ul. Kwiatowa 1 m. 2</AdresL1>
			<AdresL2>00-001 Warszawa</AdresL2>
		</Adres>
		<DaneKontaktowe>
			<Email>[email protected]</Email>
			<Telefon>667444555</Telefon>
		</DaneKontaktowe>
	</Podmiot1>
	<Podmiot2>
		<DaneIdentyfikacyjne>
			<NIP>1111111111</NIP>
			<Nazwa>CDE sp. j.</Nazwa>
		</DaneIdentyfikacyjne>
		<Adres>
			<KodKraju>PL</KodKraju>
			<AdresL1>ul. Sadowa 1 lok. 3</AdresL1>
			<AdresL2>00-002 Kraków</AdresL2>
		</Adres>
		<DaneKontaktowe>
			<Email>[email protected]</Email>
			<Telefon>555777999</Telefon>
		</DaneKontaktowe>
		<NrKlienta>fdfd778343</NrKlienta>
		<JST>2</JST>
		<GV>2</GV>
	</Podmiot2>
	<Podmiot3>
		<DaneIdentyfikacyjne>
			<NIP>2222222222</NIP>
			<Nazwa>Bank Bankowości Bankowej S. A. BBB Faktoring</Nazwa>
		</DaneIdentyfikacyjne>
		<Adres>
			<KodKraju>PL</KodKraju>
			<AdresL1>ul. Bankowa 1</AdresL1>
			<AdresL2>00-003 Łódź</AdresL2>
		</Adres>
		<DaneKontaktowe>
			<Email>[email protected]</Email>
			<Telefon>666888999</Telefon>
		</DaneKontaktowe>
		<Rola>1</Rola>
	</Podmiot3>
	<Fa>
		<KodWaluty>PLN</KodWaluty>
		<P_1>2026-02-15</P_1>
		<P_1M>Warszawa</P_1M>
		<P_2>FV2026/02/150</P_2>
		<WZ>44343434/2026</WZ>
		<P_13_1>52260.10</P_13_1>
		<P_14_1>12019.82</P_14_1>
		<P_15>64379.92</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>
			<UU_ID>aaaa111133339990</UU_ID>
			<P_6A>2026-01-03</P_6A>
			<P_7>lodówka Zimnotech mk1</P_7>
			<CN>8418 21 91</CN>
			<P_8A>szt.</P_8A>
			<P_8B>10</P_8B>
			<P_9A>1626.01</P_9A>
			<P_11>16260.10</P_11>
			<P_12>23</P_12>
		</FaWiersz>
		<FaWiersz>
			<NrWierszaFa>2</NrWierszaFa>
			<UU_ID>aaaa111133339991</UU_ID>
			<P_6A>2026-01-10</P_6A>
			<P_7>zamrażarka Zimnotech mk2</P_7>
			<CN>8418 40 20</CN>
			<P_8A>szt.</P_8A>
			<P_8B>20</P_8B>
			<P_9A>1000</P_9A>
			<P_10>100</P_10>
			<P_11>18000</P_11>
			<P_12>23</P_12>
		</FaWiersz>
		<FaWiersz>
			<NrWierszaFa>3</NrWierszaFa>
			<UU_ID>aaaa111133339992</UU_ID>
			<P_6A>2026-01-15</P_6A>
			<P_7>zmywarka Bryza 100</P_7>
			<CN>8422 11 00</CN>
			<P_8A>szt.</P_8A>
			<P_8B>15</P_8B>
			<P_9A>1200</P_9A>
			<P_11>18000</P_11>
			<P_12>23</P_12>
		</FaWiersz>
		<Rozliczenie>
			<Odliczenia>
				<Kwota>1000</Kwota>
				<Powod>nadwyżka salda nierozliczonych środków</Powod>
			</Odliczenia>
			<SumaOdliczen>1000</SumaOdliczen>
			<DoZaplaty>63279.92</DoZaplaty>
		</Rozliczenie>
		<Platnosc>
			<TerminPlatnosci>
				<Termin>2026-03-15</Termin>
			</TerminPlatnosci>
			<FormaPlatnosci>6</FormaPlatnosci>
			<RachunekBankowyFaktora>
				<NrRB>73111111111111111111111111</NrRB>
				<RachunekWlasnyBanku>2</RachunekWlasnyBanku>
				<NazwaBanku>Bank Bankowości Bankowej S. A.</NazwaBanku>
				<OpisRachunku>PLN</OpisRachunku>
			</RachunekBankowyFaktora>
		</Platnosc>
		<WarunkiTransakcji>
			<Zamowienia>
				<DataZamowienia>2026-01-26</DataZamowienia>
				<NrZamowienia>4354343</NrZamowienia>
			</Zamowienia>
			<NrPartiiTowaru>2312323/2026</NrPartiiTowaru>
			<WarunkiDostawy>CIP</WarunkiDostawy>

160 / 200 lines shown — the complete file is in the download above.

How we know these results hold

Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.

KSeF invoice (Poland, FA(3))