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_1ingesteld op morgen volgens de Poolse tijd, omdat KSeFP_1leest in de tijdzone van Warschau en geen datum accepteert later dan het moment waarop het de factuur ontvangt; DataWytworzeniaFavóór 2025-09-01T00:00:00Z, de ondergrens van dat veld in het FA(3)-schema 1-0E.

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:
| Versie | Melding 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 17 | Geen 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
- Zoek de reden in
details, of controleer het FA(3)-bestand tegen het schema. - Corrigeer de gegevens in Odoo: datum, klant, regels.
- Zet de factuur terug naar concept. Bij een afgewezen factuur wist Odoo de KSeF-status, het nummer, de referentie en de sessie.
- 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.

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
Gecontroleerd in de broncode van de module (versie 17.0 en 20.0) en in de gelinkte bronnen
Bronnen
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/i18n
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/i18n
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- Broncode van de module: FlexigoTech Cloud, validacion_efactura (motor_xsd.py y reglas.json)
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_cloud.py
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/account_move.py
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 17.0 (2b2a93bb): __manifest__.py
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/account_move_views.xml
