D'où vient une erreur de date
Lorsqu'une date tombe hors de la plage du schéma ou hors de la règle de KSeF, la facture reçoit le statut 450, « Błąd weryfikacji semantyki dokumentu faktury » (erreur de vérification sémantique du document de facture). Le ministère des Finances polonais contrôle deux cas de ce type dans les tests de sa bibliothèque : P_1 fixée à demain selon l'heure polonaise, et une DataWytworzeniaFa antérieure au 2025-09-01.

Les trois dates et leurs règles
P_1- « Data wystawienia, z zastrzeżeniem art. 106na ust. 1 ustawy » (date d'émission). Type TDataT, « Data zdarzenia w okresie od 2006-01-01 do 2050-01-01 » (une date comprise entre le 2006-01-01 et le 2050-01-01). KSeF ajoute : elle ne peut pas être postérieure à la date de réception du document par le système, comptée en heure polonaise.
P_6- Date de livraison des biens ou de réalisation de la prestation, lorsqu'elle est commune à toutes les lignes et différente de la date d'émission. Même type TDataT.
DataWytworzeniaFa- « Data i czas wytworzenia faktury » (date et heure de génération de la facture), du 2025-09-01T00:00:00Z au 2050-01-01T23:59:59Z.
OkresFa- La période couverte par la facture, avec
P_6_OdetP_6_Do, à la place d'une seule dateP_6.
Comment Odoo les remplit
| Champ FA(3) | Odoo 18, 19 et 20 |
|---|---|
P_1 | La date de la facture. |
P_6 | La date de livraison, uniquement si elle est renseignée et différente de la date de facture. |
DataWytworzeniaFa | Le moment de génération du fichier, en UTC. |
OkresFa | Non renseigné ; le modèle ne contient qu'un commentaire « TO-CHECK ». |
Avant l'envoi, Odoo ignore une facture datée après aujourd'hui : « The move was skipped because it is future-dated ». Il compte « aujourd'hui » dans le fuseau horaire de l'utilisateur, alors que KSeF le compte à Varsovie. Lorsque l'utilisateur travaille dans un fuseau en avance sur la Pologne, une facture datée de son aujourd'hui peut encore être demain en Pologne et revenir avec un 450. Le test du ministère signale l'inverse : entre 00h00 et 02h00 CET/CEST, « demain en UTC » peut être aujourd'hui en Pologne.
Odoo 17 ne dispose pas de l10n_pl_edi : la date est fixée par le programme qui crée le fichier FA(3).

Que faire face à un 450 causé par une date
- Vérifiez la date de la facture : elle ne peut pas être postérieure au jour de l'envoi en Pologne.
- Vérifiez le fuseau horaire de l'utilisateur qui envoie les factures, dans ses préférences Odoo.
- Si la prestation couvre une période, rappelez-vous qu'Odoo n'écrit pas
OkresFa; seule la date de livraison figure sur la facture. - Remettez la facture en brouillon, corrigez la date, confirmez-la et renvoyez-la.
Notre module, Poland KSeF 2.0 Validator, valide le fichier par rapport au schéma FA(3) avec l'abonnement FlexigoTech Cloud ; il détecte donc un P_1, un P_6 ou une DataWytworzeniaFa hors des plages du schéma. Il ne peut pas comparer P_1 au moment où KSeF la reçoit, car seule KSeF applique cette règle. Sur Odoo 17, il valide le fichier joint à la facture.
À lire aussi
Vérifié dans le code du module (version 17.0 et 20.0) et dans les sources citées
Sources
- 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
- Code du module : FlexigoTech Cloud, validacion_efactura (motor_xsd.py y reglas.json)
- Code du module : flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_cloud.py
- Code du module : flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 17.0 (2b2a93bb): __manifest__.py
