Il campo e cosa controlla l'AEAT
Il campo si chiama FechaHoraHusoGenRegistro e memorizza data, ora e fuso orario del momento in cui il sistema ha generato il record, nella forma AAAA-MM-DDThh:mm:ss più lo scostamento dall'UTC. Il documento di validazione dell'AEAT stabilisce che deve essere minore o uguale alla data del sistema dell'AEAT, con un margine di errore. Se lo supera, l'AEAT restituisce un avviso senza rifiuto.
Il testo del 2004 nell'elenco dell'AEAT è «El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de:» e si ferma lì: l'elenco non pubblica quanti secondi o minuti valga quel margine.

I quattro codici di questo campo
| Codice | Testo dell'AEAT | Effetto |
|---|---|---|
| 2004 | El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: | Accettato; l'AEAT non chiede di correggere. |
| 1243 | Error técnico al obtener el cálculo de la fecha del huso horario. | Rifiuta il record per un guasto tecnico dell'AEAT. |
| 1244 | El campo FechaHoraHusoGenRegistro tiene un formato incorrecto. | Rifiuta il record. |
| 1268 | La longitud del campo FechaHoraHusoGenRegistro no cumple con las especificaciones. | Rifiuta il record. |
Nel suo elenco di errori ammissibili, l'AEAT segna questo caso come uno dei due che non richiedono correzione. L'altro è la ClaveRegimen vuota con l'imposta IPSI.
Da dove Odoo prende l'ora
Il modulo prende il momento in cui ha generato il record di fatturazione, al momento della registrazione della fattura, con il suo scostamento dall'UTC. Quel momento viene memorizzato e non può essere modificato in seguito, come l'impronta, perché fa parte di ciò che viene concatenato. Il formato lo costruisce sempre allo stesso modo il modulo stesso, quindi un 1244 o un 1268 con un invio del nostro modulo non dovrebbe comparire: se lo vedi, inviacelo.
Per il 2004, la domanda è se l'orologio del server Odoo fosse avanti al momento della registrazione della fattura. Il modulo include un cron, Verifactu: Clock Drift Check, che ogni 1 ora confronta l'ora di Odoo con quella del suo database PostgreSQL, e un pulsante per farlo quando vuoi. Non confronta con nessun orologio esterno: se Odoo e il database girano sulla stessa macchina, o sono avanti entrambi, non segnala nulla. L'ora reale si verifica con un server NTP.

Cosa fare in ogni caso
- Con un 2004, nulla sulla fattura: è registrata. Chiedi a chi gestisce il server di confrontare il suo orologio con un server NTP e di sincronizzarlo se è avanti. Check Clock Drift non serve a questo: confronta solo Odoo con il suo database.
- Con un 1243, attendi: è un errore tecnico dal lato dell'AEAT e la coda riprova da sola, con attese da 2 minuti a 12 ore, fino al sesto tentativo.
- Con un 1244 o un 1268, scrivi a comercial@flexigobe.com con la risposta dell'invio.
In Odoo, un 2004 lascia il record come «Aceptado con errores (subsanar)», la stessa etichetta di tutti i codici 2xxx. Per questo codice in particolare l'AEAT dice che non serve alcuna correzione: puoi lasciarlo così.
Un orologio in ritardo dà errore?
La regola dell'AEAT verifica solo se la tua ora è maggiore della loro più il margine. Un record con l'ora indietro non fa scattare questo controllo.
Continua a leggere
Verificato nel codice del modulo (versione 20.0) e nelle fonti collegate
Fonti
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Codice del modulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Codice del modulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Codice del modulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_registro.py
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
- Codice del modulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cadena.py
