Da dove nasce un errore di data
Quando una data cade fuori dall'intervallo dello schema o fuori dalla regola di KSeF, la fattura riceve lo stato 450, «Błąd weryfikacji semantyki dokumentu faktury» (errore di verifica semantica del documento di fattura). Il Ministero delle Finanze polacco controlla due casi di questo tipo nei test della sua libreria: P_1 impostata a domani secondo l'ora polacca e una DataWytworzeniaFa anteriore al 2025-09-01.

Le tre date e le loro regole
P_1- «Data wystawienia, z zastrzeżeniem art. 106na ust. 1 ustawy» (data di emissione). Tipo TDataT, «Data zdarzenia w okresie od 2006-01-01 do 2050-01-01» (una data compresa tra il 2006-01-01 e il 2050-01-01). KSeF aggiunge: non può essere successiva alla data in cui il sistema riceve il documento, calcolata secondo l'ora polacca.
P_6- Data di consegna dei beni o di completamento della prestazione, quando è comune a tutte le righe e diversa dalla data di emissione. Stesso tipo TDataT.
DataWytworzeniaFa- «Data i czas wytworzenia faktury» (data e ora di generazione della fattura), dal 2025-09-01T00:00:00Z al 2050-01-01T23:59:59Z.
OkresFa- Il periodo a cui si riferisce la fattura, con
P_6_OdeP_6_Do, al posto di una singola dataP_6.
Come le compila Odoo
| Campo FA(3) | Odoo 18, 19 e 20 |
|---|---|
P_1 | La data della fattura. |
P_6 | La data di consegna, solo se impostata e diversa dalla data della fattura. |
DataWytworzeniaFa | Il momento in cui genera il file, in UTC. |
OkresFa | Non viene compilato; il modello contiene solo un commento «TO-CHECK». |
Prima dell'invio, Odoo salta una fattura con data successiva a oggi: «The move was skipped because it is future-dated». Conta «oggi» nel fuso orario dell'utente, mentre KSeF lo conta su Varsavia. Se l'utente lavora in un fuso orario avanti rispetto alla Polonia, una fattura con la data di oggi per lui può essere ancora domani in Polonia e tornare con un 450. Il test del Ministero segnala lo stesso problema al contrario: tra le 00:00 e le 02:00 CET/CEST, «domani in UTC» può essere oggi in Polonia.
Odoo 17 non dispone di l10n_pl_edi: la data è impostata dal programma che crea il file FA(3).

Cosa fare davanti a un 450 causato da una data
- Verifica la data della fattura: non può essere successiva al giorno dell'invio in Polonia.
- Verifica il fuso orario dell'utente che invia le fatture, nelle sue preferenze di Odoo.
- Se il servizio ha coperto un periodo, ricorda che Odoo non scrive
OkresFa; sulla fattura resta solo la data di consegna. - Riporta la fattura in bozza, correggi la data, confermala e inviala di nuovo.
Il nostro modulo, Poland KSeF 2.0 Validator, valida il file con lo schema FA(3) con l'abbonamento a FlexigoTech Cloud, quindi rileva una P_1, P_6 o DataWytworzeniaFa fuori dagli intervalli dello schema. Non può verificare P_1 rispetto al momento in cui la riceve KSeF, perché questa regola la applica solo KSeF. Su Odoo 17 valida il file caricato sulla fattura.
Continua a leggere
Verificato nel codice del modulo (versione 17.0 e 20.0) e nelle fonti collegate
Fonti
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- 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/schemy/FA
- 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/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/CIRFMF/ksef-client-csharp/blob/a66cbc669814e6c2a615748a13a0a04a650ba04f/KSeF.Cl
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- 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/2982b5f44af03fae6a9888f20632c1cc19f623ba/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/data
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/i18n
- Codice del modulo: FlexigoTech Cloud, validacion_efactura (motor_xsd.py y reglas.json)
- Codice del modulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_cloud.py
- Codice del modulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 17.0 (2b2a93bb): __manifest__.py
