Ce que l'AEAT ne peut pas lire
| Code | Texte de l'AEAT |
|---|---|
| 4103 | Se ha producido un error inesperado al parsear el XML. |
| 4119 | Error al informar caracteres cuya codificación no es UTF-8. |
| 4135 | Esta URL no puede ser utilizada mediante GET. |
| 4136 | No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto. |
| 4137 | No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto. |
| 4138 | Petición vacía en el XML o encoding incorrecto. |
Les six figurent dans la section de la liste qui rejette l'envoi complet. Les deux autres codes de cette page ne rejettent qu'un enregistrement : le 1100, Valor o tipo incorrecto del campo., le plus générique de la liste, et le 1251, pour un IDVersion incorrect.

Comment Odoo envoie chaque requête
Le module envoie chaque envoi sous forme de POST SOAP 1.1 en TLS mutuel, avec le certificat de l'entreprise. Le corps est un XML en UTF-8, avec sa déclaration d'encodage, et l'en-tête HTTP l'annonce comme text/xml en UTF-8. Les textes sont normalisés en forme NFC, de sorte qu'une même lettre accentuée arrive toujours avec les mêmes octets. Chaque enregistrement porte IDVersion 1.0 et, avant de partir, passe par la validation contre le schéma officiel fourni avec le module.
Envoyé de cette façon, les échecs de cette page ne devraient pas apparaître : il n'y a pas de GET, pas de requête vide et l'encodage est toujours le même.
Le cas du GET
Le 4135 est le seul de cette page que l'on voit souvent, et son explication est très simple : quelqu'un a ouvert l'adresse du service de l'AEAT dans un navigateur. Un navigateur demande les pages en GET, et le service n'accepte que le POST. Si vous le voyez en testant l'adresse à la main, cela ne signale aucun problème avec vos envois : la file d'attente d'Odoo n'utilise jamais GET.

Que faire
- Avec un 4103, 4119 ou 4138 sur un envoi du module, conservez la réponse du champ Raw Response et écrivez à comercial@flexigobe.com : nous voulons voir quelle facture figurait dans cet envoi.
- Avec un 4136 ou 4137, de même. Le module construit ces nœuds pour chaque inscription et chaque annulation.
- Avec un 1100, le message n'indique pas le champ : la réponse complète permet généralement de voir à quel enregistrement il se rapporte.
Une fois la cause connue, les envois en Failed se renvoient depuis Envío a AEAT › Errores AEAT avec Reintentar Selección. Ceux du 1100 et du 1251, la file les réessaie déjà, mais avec les mêmes données.
Les codes de cette page, avec le texte de l'AEAT
Chaque code avec son texte littéral, tel que le donne la liste d'erreurs de l'AEAT :
| Code | Texte de l'AEAT |
|---|---|
| 4103 | Se ha producido un error inesperado al parsear el XML. |
| 4119 | Error al informar caracteres cuya codificación no es UTF-8. |
| 4135 | Esta URL no puede ser utilizada mediante GET. |
| 4136 | No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto. |
| 4137 | No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto. |
| 4138 | Petición vacía en el XML o encoding incorrecto. |
| 1100 | Valor o tipo incorrecto del campo. |
| 1251 | El valor del campo IdVersion tiene un valor incorrecto |
Les erreurs de schéma, lorsqu'un champ obligatoire manque, ont leur propre page : l'erreur 4102.
À 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): data/verifactu_error_catalogue.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
