Naar hoofdinhoud
KSeF 2.0 · factuurstatus

KSeF-code 450: «Błąd weryfikacji semantyki dokumentu faktury»

Status 450 betekent dat KSeF het bestand heeft aangenomen om te verwerken en de factuur daarna heeft afgewezen bij de controle van de inhoud. Het is een andere code dan de 450 bij het inloggen, die over een token gaat (daar leggen we het apart uit). Odoo toont je het nummer en een algemene omschrijving; de precieze reden staat in het veld details van het KSeF-antwoord.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 5 november 2026

In het kort

Module
KSeF 2.0
Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 17.0 en 20.0 · in de bronnen onderaan
Leestijd
4 min

Wat KSeF teruggeeft

In de specificatie van de KSeF API 2.9.0 heeft factuurstatus 450 een vaste omschrijving, «Błąd weryfikacji semantyki dokumentu faktury» (fout bij de semantische controle van het factuurdocument). Wat er precies misgaat, zet KSeF in het veld details van diezelfde status. Het Poolse Ministerie van Financiën publiceert geen lijst van die meldingen, dus er bestaat geen tabel die zegt «450 betekent altijd dit probleem».

Wel zijn er gevallen die het Ministerie controleert in de tests van zijn eigen bibliotheek ksef-client-csharp, en daar verwacht het precies code 450:

  • datum van uitgifte P_1 ingesteld op morgen volgens de Poolse tijd, omdat KSeF P_1 leest in de tijdzone van Warschau en geen datum accepteert later dan het moment waarop het de factuur ontvangt;
  • DataWytworzeniaFa vóór 2025-09-01T00:00:00Z, de ondergrens van dat veld in het FA(3)-schema 1-0E.
Kaart van KSeF-code 450 met de omschrijving uit de API
De code 450 en zijn omschrijving uit de KSeF API 2.9.0, met de velden die je het best eerst controleert.

Wat je ziet in Odoo

Facturen komen bij KSeF via de module l10n_pl_edi van Odoo, die bestaat in Odoo 18, 19 en 20. Wanneer KSeF antwoordt, zet het «KSeF Status» op Rejected en schrijft het een melding in de geschiedenis van de factuur:

VersieMelding in Odoo
Odoo 18 en 19 in het Pools«Status KSeF: Odrzucono (kod: 450). Błąd weryfikacji semantyki dokumentu faktury.»
Odoo 20«KSeF Status: Rejected (Code: 450). Invoice document semantics verification error.» (de Poolse vertaling van deze module is in 20 leeg)
Odoo 17Geen l10n_pl_edi: een ander programma verstuurt de factuur en toont de fout.

Uit het antwoord van KSeF leest Odoo de code, de omschrijving en het KSeF-nummer. Het slaat het veld details niet op (het voegt alleen de omschrijving van KSeF voor code 500 toe), dus Odoo alleen kan je niet vertellen welk deel van de factuur is mislukt.

Waar je de reden vindt

De tekst van details komt in het antwoord van KSeF op de opvraag van de factuurstatus. Als je vanuit Odoo verstuurt, heb je iemand nodig die die uit de API leest, of een controle van het FA(3)-bestand vóór het verzenden. Odoo 18, 19 en 20 bevatten een kopie van het FA(3)-schema in de module, maar buiten de tests gebruikt niets die: het bestand gaat naar KSeF zonder validatie tegen het schema.

Odoo let wel op twee dingen. Het verstuurt geen factuur met een datum na vandaag in de tijdzone van de gebruiker («The move was skipped because it is future-dated»). En het vult DataWytworzeniaFa in met het moment waarop het bestand wordt gegenereerd, in UTC, dus de grens van 2025 zou niet mogen komen van een factuur die in Odoo is uitgegeven.

Hoe je de factuur opnieuw verstuurt

  1. Zoek de reden in details, of controleer het FA(3)-bestand tegen het schema.
  2. Corrigeer de gegevens in Odoo: datum, klant, regels.
  3. Zet de factuur terug naar concept. Bij een afgewezen factuur wist Odoo de KSeF-status, het nummer, de referentie en de sessie.
  4. Bevestig haar en verstuur ze opnieuw met de optie «by KSeF (e-Faktura)». Odoo verstuurt alleen facturen zonder KSeF-status, dus zonder stap 3 gaat er niets weg.
Schema: wat KSeF teruggeeft bij code 450 en wat Odoo 20 toont
Schema gemaakt op basis van de code van l10n_pl_edi van Odoo 20 en de specificatie van de KSeF API 2.9.0; wat doorgestreept is, is wat Odoo niet bewaart of niet doet.

Met onze module

Poland KSeF 2.0 Validator verstuurt geen facturen naar KSeF. Met het abonnement FlexigoTech Cloud valideert het, als je vóór het verzenden van de factuur op «Validate FA(3) (FlexigoTech Cloud)» klikt, het FA(3)-bestand tegen het schema 1-0E en toont het elke fout als een regel «[error] XSD (pad)»: de plek in het bestand, zonder de tekst van de melding, tot 100 fouten. Het resultaat houdt l10n_pl_edi niet tegen bij het verzenden: een factuur «Not valid» gaat toch weg als je ze verstuurt. Het kan niet vangen wat KSeF alleen aan zijn kant controleert, zoals P_1 ten opzichte van het moment van ontvangst. Zodra l10n_pl_edi de factuur verstuurt, wordt de eerdere validatie Expired en controleert de module het bestand dat KSeF echt heeft ontvangen. In Odoo 17 valideert hij het FA(3)-bestand dat aan de factuur is geüpload.

Onze module pikt code 450 niet op: van l10n_pl_edi neemt hij alleen de status (Submitted, Accepted of Rejected) en het KSeF-nummer.

Lees verder

De datums in FA(3): P_1, P_6 en DataWytworzeniaFaDatumregels van het FA(3)-schema 1-0E en KSeF: P_1 in Poolse tijd, P_6, DataWytworzeniaFa vanaf 2025-09-01. Wanneer ze 450 geven en wat Odoo 18-20 doet.Technische factuurstatussen in KSeF: 550, 500, 405, 430 en 435KSeF-factuurstatussen die niets met de inhoud te maken hebben: 550, 500, 405, 430 en 435. Wat Odoo ermee doet en waarom de 550 op Sent blijft staan.KSeF-authenticatiestatussen: 415, 425, 450, 470 en 480Statussen van de KSeF 2.0-aanmelding naast het certificaat: geen rechten, ingetrokken, verkeerd token, geblokkeerd. Codes 21301 en 21304 en hoe ze eruitzien in Odoo.
Gecontroleerd in de broncode van de module (versie 17.0 en 20.0) en in de gelinkte bronnen

Bronnen