ValidateFin

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

Structureel perfect volgens het officiële schema, en toch zakt het NIP van de verkoper voor het mod-11-controlecijfer en komt P_15 niet overeen met de som van de btw-uitsplitsing. ValidateFin meldt beide als waarschuwing, niet als fout: geen van beide regels is normatief, en voorbeeld 1 van het ministerie wijkt zelf een grosz af.

FA(3) 1-0E — Geldig

Structureel perfect volgens het officiële schema, en toch zakt het NIP van de verkoper voor het mod-11-controlecijfer en komt P_15 niet overeen met de som van de btw-uitsplitsing. ValidateFin meldt beide als waarschuwing, niet als fout: geen van beide regels is normatief, en voorbeeld 1 van het ministerie wijkt zelf een grosz af.

KSeF-factuur (Polen, FA(3)) FA(3) 1-0E KSeF — Polish Ministry of FinanceVerwacht resultaat: Geldig — 2 waarschuwingen

Wat dit bestand laat zien

Structureel perfect volgens het officiële schema, en toch zakt het NIP van de verkoper voor het mod-11-controlecijfer en komt P_15 niet overeen met de som van de btw-uitsplitsing. ValidateFin meldt beide als waarschuwing, niet als fout: geen van beide regels is normatief, en voorbeeld 1 van het ministerie wijkt zelf een grosz af.

Transacties3
TotaalPLN 64.379,92
Laatst geverifieerd: Licentie: CC-BY-4.0

Alle partijen, IBAN's en bedragen hieronder zijn fictief. De IBAN's zijn structureel geldig — ze doorstaan de mod-97-controle — maar horen bij geen enkele echte rekening.

Bestandsinhoud

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

Hoe we weten dat deze resultaten kloppen

Elk bestand in deze bibliotheek gaat bij elke build door de eigen validator van de site. Het hierboven vermelde verwachte resultaat wordt door een geautomatiseerde test bevestigd: zou een bestand niet meer overeenkomen met wat deze pagina beweert, dan faalt de build. Twee overgeërfde fixtures zijn zo vóór publicatie hersteld: drie IBAN's zakten voor de mod-97-controle en meerdere namen gebruikten tekens buiten de SEPA-basistekenset.

KSeF-factuur (Polen, FA(3))