Le champ et ce que vérifie l'AEAT
Le champ s'appelle FechaHoraHusoGenRegistro et contient la date, l'heure et le fuseau du moment où le système a généré l'enregistrement, au format AAAA-MM-DDThh:mm:ss plus le décalage horaire. Le document de validations de l'AEAT indique qu'il doit être inférieur ou égal à la date du système de l'AEAT, avec une marge d'erreur admise. Si cette marge est dépassée, l'AEAT renvoie un avertissement sans rejet.
Le texte du 2004 dans la liste de l'AEAT est « El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: » et s'arrête là : la liste ne publie pas combien de secondes ou de minutes représente cette marge.

Les quatre codes de ce champ
| Code | Texte de l'AEAT | Effet |
|---|---|---|
| 2004 | El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: | Accepté ; l'AEAT ne demande pas de correction. |
| 1243 | Error técnico al obtener el cálculo de la fecha del huso horario. | Rejette l'enregistrement à cause d'un incident technique de l'AEAT. |
| 1244 | El campo FechaHoraHusoGenRegistro tiene un formato incorrecto. | Rejette l'enregistrement. |
| 1268 | La longitud del campo FechaHoraHusoGenRegistro no cumple con las especificaciones. | Rejette l'enregistrement. |
Dans sa liste d'erreurs admissibles, l'AEAT classe ce cas parmi les deux qui ne nécessitent pas de correction. L'autre est une ClaveRegimen vide avec l'impôt IPSI.
D'où Odoo tire l'heure
Le module prend le moment où il a généré l'enregistrement de facturation, au moment de la validation de la facture, avec son décalage horaire. Ce moment est enregistré et ne peut plus être modifié ensuite, comme l'empreinte, car il fait partie de ce qui est chaîné. Le format est toujours construit de la même manière par le module : un 1244 ou un 1268 ne devrait donc pas apparaître avec un envoi de notre module. Si vous en voyez un, transmettez-le-nous.
Pour le 2004, la question est de savoir si l'horloge du serveur Odoo était en avance au moment de la validation de la facture. Le module dispose d'une tâche planifiée, Verifactu: Clock Drift Check, qui toutes les 1 heure compare l'heure d'Odoo à celle de sa base de données PostgreSQL, ainsi que d'un bouton pour le faire à tout moment. Elle ne compare avec aucune horloge extérieure : si Odoo et la base tournent sur la même machine, ou si les deux sont en avance, elle ne signale rien. L'heure réelle se vérifie auprès d'un serveur NTP.

Que faire dans chaque cas
- Avec un 2004, rien à faire sur la facture : elle est enregistrée. Demandez à la personne qui administre le serveur de comparer son heure à un serveur NTP et de la synchroniser si elle est en avance. Check Clock Drift ne sert pas dans ce cas : il compare seulement Odoo à sa base de données.
- Avec un 1243, patientez : il s'agit d'une erreur technique côté AEAT et la file relance seule l'envoi, avec des attentes de 2 minutes à 12 heures, jusqu'à la sixième tentative.
- Avec un 1244 ou un 1268, écrivez à comercial@flexigobe.com avec la réponse de l'envoi.
Dans Odoo, un 2004 laisse l'enregistrement sur « Aceptado con errores (subsanar) », la même étiquette que pour tous les codes 2xxx. Pour ce code précis, l'AEAT indique qu'aucune correction n'est nécessaire : vous pouvez le laisser en l'état.
Une horloge en retard provoque-t-elle une erreur ?
La règle de l'AEAT vérifie seulement si votre heure est supérieure à la sienne plus la marge. Un enregistrement dont l'heure est en retard ne déclenche pas ce contrôle.
À lire aussi
Vérifié dans le code du module (version 20.0) et dans les sources citées
Sources
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Code du module : flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Code du module : flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Code du module : 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
- Code du module : flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cadena.py
