ValidateFin

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

Strukturell einwandfrei gegenüber dem offiziellen Schema — dennoch scheitert die NIP des Verkäufers an der Mod-11-Prüfziffer und P_15 passt nicht zur Summe der Steueraufteilung. ValidateFin meldet beides als Warnung, nicht als Fehler: keine der Regeln ist normativ, und das Beispiel 1 des Ministeriums weicht selbst um einen Grosz ab.

FA(3) 1-0E — Gültig

Strukturell einwandfrei gegenüber dem offiziellen Schema — dennoch scheitert die NIP des Verkäufers an der Mod-11-Prüfziffer und P_15 passt nicht zur Summe der Steueraufteilung. ValidateFin meldet beides als Warnung, nicht als Fehler: keine der Regeln ist normativ, und das Beispiel 1 des Ministeriums weicht selbst um einen Grosz ab.

KSeF-Rechnung (Polen, FA(3)) FA(3) 1-0E KSeF — Polish Ministry of FinanceErwartetes Ergebnis: Gültig — 2 Warnungen

Was diese Datei zeigt

Strukturell einwandfrei gegenüber dem offiziellen Schema — dennoch scheitert die NIP des Verkäufers an der Mod-11-Prüfziffer und P_15 passt nicht zur Summe der Steueraufteilung. ValidateFin meldet beides als Warnung, nicht als Fehler: keine der Regeln ist normativ, und das Beispiel 1 des Ministeriums weicht selbst um einen Grosz ab.

Transaktionen3
Summe64.379,92 PLN
Zuletzt geprüft: Lizenz: CC-BY-4.0

Alle Parteien, IBANs und Beträge unten sind fiktiv. Die IBANs sind strukturell gültig — sie bestehen die Mod-97-Prüfung — gehören aber zu keinem realen Konto.

Dateiinhalt

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

Woher wir wissen, dass diese Ergebnisse stimmen

Jede Datei dieser Bibliothek läuft bei jedem Build durch den eigenen Validator der Website. Das oben genannte erwartete Ergebnis wird von einem automatisierten Test geprüft: Passt eine Datei nicht mehr zu dem, was diese Seite behauptet, schlägt der Build fehl. Zwei geerbte Fixtures wurden so vor der Veröffentlichung repariert — drei IBANs scheiterten an der Mod-97-Prüfung, und mehrere Namen nutzten Zeichen außerhalb des SEPA-Basiszeichensatzes.

KSeF-Rechnung (Polen, FA(3))