Ce qu'admet l'AEAT
Le document de validations de l'AEAT fixe la règle pour NumSerieFactura : uniquement les caractères ASCII de 32 à 126, les imprimables, et parmi eux ces cinq sont interdits.
| Caractère | Code ASCII |
|---|---|
Guillemets doubles " | 34 |
Apostrophe ' | 39 |
Inférieur à < | 60 |
Supérieur à > | 62 |
Égal = | 61 |
Hors de la plage restent les lettres accentuées, le ñ, le ç, le signe ordinal º et le signe euro. Les barres obliques, les tirets, les points et les espaces entrent dans la plage.

Les trois codes
- 1104
El valor del campo NumSerieFactura es incorrecto.Le code générique : le numéro n'est pas valide pour l'AEAT.- 1130
El campo NumSerieFactura contiene caracteres no permitidos.Le cas précis d'un caractère hors de la règle.- 1287
- «El valor del campo %s contiene carácteres no validos (<, >, ", ', =).» La version générale, qui dans une réponse réelle porte le nom du champ à la place de %s.
D'où vient le numéro dans Odoo
Le module envoie comme NumSerieFactura le numéro qu'Odoo a attribué à la facture lors de sa validation, le même que celui de la facture et de son PDF. Ce numéro est généré par la séquence du journal de ventes, avec son préfixe. Ce n'est que si la facture n'avait pas de numéro que le module en construirait un à partir du préfixe de la série VeriFactu et de six chiffres.
C'est pourquoi l'origine d'un 1130 vient presque toujours du préfixe de la séquence du journal : un code de journal avec un ñ, un préfixe comme «FAC-Nº» ou une série avec des guillemets. Le format habituel d'Odoo, avec des barres obliques et l'année, respecte la règle.

Comment corriger
Pour les nouvelles factures, modifiez le préfixe de la séquence du journal afin qu'il n'utilise que des caractères admis. À partir de là, les suivantes partiront correctement.
Pour celles déjà rejetées, la correction est plus délicate. Le numéro d'une facture validée ne se modifie pas dans Odoo, et l'enregistrement de facturation conserve celui qu'il avait à la validation : la file le réessaiera avec ce numéro jusqu'à le placer en Dead Letter. Pour l'AEAT, cette facture n'a jamais été enregistrée, et ce qu'elle prévoit pour la corriger est un « enregistrement après rejet » avec les bonnes données. La façon dont cela s'articule avec un numéro qui contenait un caractère interdit dépend de votre cas : écrivez à comercial@flexigobe.com avant d'émettre quoi que ce soit de nouveau.
Cela concerne-t-il les factures émises avant VeriFactu ?
Non : seulement les enregistrements envoyés à l'AEAT. Mais si une ancienne série est encore utilisée, vérifiez son préfixe avant l'envoi de la première facture.
Un numéro de facture ne peut pas se répéter avec la même date et le même NIF : si deux enregistrements coïncident sur ces trois données, l'AEAT répond par l'erreur 3000.
À 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_cadena.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
- Code du module : flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
