L'une ou l'autre, jamais les deux
La première règle est simple : chaque ligne porte soit CalificacionOperacion (la qualification), soit OperacionExenta (l'exonération). Sans aucun des deux, 1195 ; avec les deux, 1196. Une valeur absente de la liste donne 1181 pour la qualification, ou 1182 pour l'exonération.

Ce qu'exige chaque qualification
| Qualification | Ce que demande l'AEAT | Codes |
|---|---|---|
| S1, assujettie et non exonérée | Taux et cotisation obligatoires ; seule ici la cotisation peut être différente de zéro. | 1207, 1208, 1209 |
| S2, autoliquidation | Uniquement avec F1, F3, R1, R2, R3 ou R4, et avec taux 0 et cotisation 0. | 1197, 1198 |
| N1 ou N2, non assujettie | Avec TVA, sans taux, cotisation ni surcharge. | 1237 |
| Exonérée, E1 à E6 | Sans taux, cotisation ni surcharge ; avec la clé de régime 01, ni E2 ni E3 ; avec E5, le destinataire uniquement par IDOtro. | 1238, 1289 |
Pour savoir laquelle s'applique, le document même de l'AEAT renvoie à la loi espagnole sur la TVA, la Ley 37/1992. N1 est l'opération non assujettie en vertu des articles 7 et 14, entre autres ; N2, non assujettie en raison des règles de localisation. Et chaque exonération a son article : E1 l'article 20, E2 l'article 21, E3 l'article 22, E4 les articles 23 et 24, E5 l'article 25 et E6 les autres cas de la loi.
Le code 1199 interdit E2 et E3 avec la clé 01 et relève des codes de clé de régime, sur leur propre page.
Ce qu'Odoo envoie sur chaque ligne
Le module construit la ventilation en regroupant les lignes de facture par leur TVA, et choisit la qualification ainsi :
- Ligne avec une taxe TVA
- S1, avec le pourcentage de la taxe comme taux, la base et la cotisation calculée.
- Ligne sans taxe TVA
- N1, avec la base seulement.
Avec ces deux sorties, les codes de cette page ne devraient pas apparaître : S1 porte toujours taux et cotisation, et N1 ne les porte jamais. Le module n'envoie ni S2, ni N2, ni exonérations depuis une facture Odoo.

Ce que cela signifie pour vos factures
L'absence d'erreurs ne veut pas dire que tout est déclaré comme vous le souhaiteriez. Si dans Odoo vous vendez avec une taxe à 0 %, par exemple une livraison intracommunautaire ou une exportation, cette ligne porte une taxe TVA et sort en S1 avec taux 0, et non comme opération exonérée. Et une opération en autoliquidation, que l'AEAT attend en S2, sort en S1 ou N1 selon les taxes de la ligne.
Si vous facturez des opérations exonérées, en autoliquidation ou non assujetties pour des règles de localisation, écrivez-nous à comercial@flexigobe.com avant de les envoyer : nous voulons examiner avec vous comment elles sont déclaré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 |
|---|---|
| 1181 | El valor del campo CalificacionOperacion es incorrecto. |
| 1182 | El valor del campo OperacionExenta es incorrecto. |
| 1195 | Al menos uno de los dos campos OperacionExenta o CalificacionOperacion deben estar informados. |
| 1196 | OperacionExenta o CalificacionOperacion no pueden ser ambos informados ya que son excluyentes entre sí. |
| 1197 | Si CalificacionOperacion tiene valor Operación Sujeta y No exenta - Con inversión del sujeto pasivo (S2) TipoFactura solo puede ser F1, F3, R1, R2, R3 y R4. |
| 1198 | Si CalificacionOperacion tiene valor Operación Sujeta y No exenta - Con inversión del sujeto pasivo (S2) TipoImpositivo y CuotaRepercutida deberan tener valor 0. |
| 1207 | La CuotaRepercutida solo podrá ser distinta de 0 si CalificacionOperacion es Operación Sujeta y No exenta - Sin inversión del sujeto pasivo (S1). |
| 1208 | Si CalificacionOperacion es Operación Sujeta y No exenta - Sin inversión del sujeto pasivo (S1) y BaseImponibleACoste no está cumplimentada, TipoImpositivo y CuotaRepercutida son obligatorios. |
| 1209 | Si CalificacionOperacion es Operación Sujeta y No exenta - Sin inversión del sujeto pasivo (S1) y ClaveRegimen es 06, TipoImpositivo y CuotaRepercutida son obligatorios. |
| 1237 | El valor del campo CalificacionOperacion está informado como Operación No sujeta (N1 o N2) y el impuesto es IVA. No se puede informar de los campos TipoImpositivo, CuotaRepercutida, TipoRecargoEquivalencia y CuotaRecargoEquivalencia. |
| 1238 | Si la operacion es exenta no se puede informar ninguno de los campos TipoImpositivo, CuotaRepercutida, TipoRecargoEquivalencia y CuotaRecargoEquivalencia. |
| 1289 | Si Impuesto es IVA(01) o vacio y si el campo OperacionExenta es igual a 'E5' sólo deberá existir la agrupación IDOtro en el bloque Destinatario. |
Et si je vois l'un de ces codes ?
Envoyez-nous la réponse de la transmission. L'enregistrement rejeté est réessayé avec les mêmes données jusqu'à la Dead Letter, il ne se corrigera donc pas tout seul.
À 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_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): data/verifactu_error_catalogue.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
