Uma ou outra, nunca as duas
A primeira regra é simples: cada linha leva CalificacionOperacion ou OperacionExenta. Se não leva nenhuma, o 1195; se leva as duas, o 1196. Um valor que não está na lista dá o 1181, para a qualificação, ou o 1182, para a isenção.

O que exige cada qualificação
| Qualificação | O que pede a AEAT | Códigos |
|---|---|---|
| S1, sujeita e não isenta | Taxa e imposto obrigatórios; o imposto só pode ser diferente de zero aqui. | 1207, 1208, 1209 |
| S2, com inversão do sujeito passivo | Só com F1, F3, R1, R2, R3 ou R4, e com taxa 0 e imposto 0. | 1197, 1198 |
| N1 ou N2, não sujeita | Com IVA, sem taxa, imposto nem sobretaxa. | 1237 |
| Isenta, E1 a E6 | Sem taxa, imposto nem sobretaxa; com a chave de regime 01 não cabem E2 nem E3; com E5, o destinatário só por IDOtro. | 1238, 1289 |
Para saber qual se aplica, o próprio documento da AEAT remete para o Código do IVA espanhol, a Lei 37/1992. N1 é a operação não sujeita pelos artigos 7.º e 14.º, entre outros; N2, a não sujeita pelas regras de localização. E cada isenção tem o seu artigo: E1 o 20.º, E2 o 21.º, E3 o 22.º, E4 os artigos 23.º e 24.º, E5 o 25.º e E6 os restantes casos da lei.
O 1199 proíbe E2 e E3 com a chave 01 e convive com os códigos de chave de regime, na sua própria página.
O que o Odoo envia em cada linha
O módulo constrói o desdobramento agrupando as linhas da fatura pelo seu IVA, e escolhe a qualificação assim:
- Linha com um imposto de IVA
- S1, com a percentagem do imposto como taxa, a base e o imposto calculado.
- Linha sem imposto de IVA
- N1, apenas com a base.
Com estas duas saídas, os códigos desta página não deveriam aparecer: o S1 leva sempre taxa e imposto, e o N1 nunca os leva. O módulo não envia S2, N2 nem isenções a partir de uma fatura do Odoo.

O que isto significa para as suas faturas
Não haver erros não quer dizer que tudo esteja declarado como desejaria. Se no Odoo vende com um imposto a 0 %, por exemplo uma entrega intracomunitária ou uma exportação, essa linha leva um imposto de IVA e sai como S1 com taxa 0, não como operação isenta. E uma operação com inversão do sujeito passivo, que a AEAT espera como S2, sai como S1 ou N1 conforme os impostos da linha.
Se fatura operações isentas, com inversão do sujeito passivo ou não sujeitas por regras de localização, escreva-nos para comercial@flexigobe.com antes de as enviar: queremos rever consigo como ficam declaradas.
Os códigos desta página, com o texto da AEAT
Cada código com o seu texto literal, tal como o dá a lista de erros da AEAT:
| Código | Texto da 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. |
E se vir um destes códigos?
Envie-nos a resposta do envio. O registo rejeitado é reenviado com os mesmos dados até à Dead Letter, por isso não se resolve sozinho.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Código do módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Código do módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cadena.py
- Código do módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Código do módulo: 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
