De dónde sale un error de fecha
Cuando una fecha cae fuera del rango del esquema o de la regla de KSeF, la factura recibe el estado 450, «Błąd weryfikacji semantyki dokumentu faktury» (error de verificación semántica del documento). El Ministerio de Finanzas polaco comprueba dos casos así en las pruebas de su biblioteca: P_1 puesta en mañana según la hora polaca y una DataWytworzeniaFa anterior a 2025-09-01.

Las tres fechas y sus reglas
P_1- «Data wystawienia, z zastrzeżeniem art. 106na ust. 1 ustawy» (fecha de emisión). Tipo TDataT, «Data zdarzenia w okresie od 2006-01-01 do 2050-01-01» (una fecha entre 2006-01-01 y 2050-01-01). KSeF añade: no puede ser posterior a la fecha en que el sistema recibe el documento, contada en hora polaca.
P_6- Fecha de entrega de los bienes o de realización del servicio, cuando es común a todas las líneas y distinta de la fecha de emisión. Mismo tipo TDataT.
DataWytworzeniaFa- «Data i czas wytworzenia faktury» (fecha y hora de generación de la factura), de 2025-09-01T00:00:00Z a 2050-01-01T23:59:59Z.
OkresFa- El periodo al que se refiere la factura, con
P_6_OdyP_6_Do, en lugar de una sola fechaP_6.
Cómo las rellena Odoo
| Campo FA(3) | Odoo 18, 19 y 20 |
|---|---|
P_1 | La fecha de la factura. |
P_6 | La fecha de entrega, solo si está puesta y es distinta de la fecha de factura. |
DataWytworzeniaFa | El momento en que genera el fichero, en UTC. |
OkresFa | No lo rellena; en la plantilla solo hay un comentario «TO-CHECK». |
Antes de enviar, Odoo se salta una factura con fecha posterior a hoy: «The move was skipped because it is future-dated». Cuenta el «hoy» en la zona horaria del usuario, y KSeF en la de Varsovia. Si el usuario trabaja en una zona por delante de Polonia, una factura con su fecha de hoy puede ser todavía mañana en Polonia y volver con un 450. La prueba del Ministerio avisa de lo mismo al revés: entre las 00:00 y las 02:00 CET/CEST, «mañana en UTC» puede ser hoy en Polonia.
Odoo 17 no tiene l10n_pl_edi: la fecha la pone el programa que crea el fichero FA(3).

Qué hacer ante un 450 por una fecha
- Revisa la fecha de la factura: no puede ser posterior al día del envío en Polonia.
- Revisa la zona horaria del usuario que envía las facturas, en sus preferencias de Odoo.
- Si el servicio abarcó un periodo, recuerda que Odoo no escribe
OkresFa; en la factura solo queda la fecha de entrega. - Restablece la factura a borrador, corrige la fecha, confírmala y envíala otra vez.
Nuestro módulo, Poland KSeF 2.0 Validator, valida el fichero contra el esquema FA(3) con la suscripción a FlexigoTech Cloud, así que detecta una P_1, P_6 o DataWytworzeniaFa fuera de los rangos del esquema. No puede comprobar P_1 frente al momento en que la recibe KSeF, porque esa regla solo la aplica KSeF. En Odoo 17 valida el fichero que se sube a la factura.
Sigue leyendo
Comprobado en el código del módulo (versión 17.0 y 20.0) y en las fuentes enlazadas
Fuentes
- 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
- Código del módulo: FlexigoTech Cloud, validacion_efactura (motor_xsd.py y reglas.json)
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_cloud.py
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 17.0 (2b2a93bb): __manifest__.py
