A regra da AEAT, campo a campo
- TipoRectificativa
- Só com TipoFactura R1, R2, R3, R4 ou R5, e obrigatório nesses casos. Em falta numa retificativa, o 1114; presente numa fatura normal, o 1115. Um valor fora da lista, o 1107.
- FacturasRectificadas
- O bloco com as faturas que se retificam. Só com R1 a R5 e não é obrigatório. Numa fatura normal, o 1117.
- ImporteRectificacion
- Só e obrigatório quando TipoRectificativa é S, retificação por substituição. Se faltar, o 1118; se não deveria estar, o 1119.
- FacturasSustituidas
- Só com TipoFactura F3, a troca de faturas simplificadas. Em qualquer outro tipo, o 1116.
Os sete códigos rejeitam o registo da fatura, não o envio completo.

Como o Odoo envia uma nota de crédito
Hoje o módulo não distingue o motivo da retificação: toda a nota de crédito sai como R1, ou como R5 se retifica uma fatura que foi registada como simplificada (F2). R2, R3 e R4 nunca saem, por isso uma nota de crédito que pela norma devesse ser um deles é declarada como R1. Com esse tipo:
- Envia sempre TipoRectificativa. Nenhum código do módulo lhe dá um valor diferente de I, retificação por diferenças.
- Se a nota de crédito tem fatura de origem e essa fatura tem o seu registo de VeriFactu, inclui-a em FacturasRectificadas com o seu NIF, o seu número e a sua data.
- Envia os montantes em negativo, como convém a uma retificação por diferenças.
Trabalhando assim, a maioria destes códigos não deverá aparecer. O 1114 e o 1115 ficam cobertos porque TipoRectificativa vai em todos os R e em nenhum F. O 1117 também, porque FacturasRectificadas só se acrescenta a uma nota de crédito. E como o tipo é sempre I, o bloco ImporteRectificacion nunca é necessário, pelo que o 1118 não tem como acontecer.

A troca de faturas simplificadas
A F3 é a fatura que substitui uma ou várias faturas simplificadas já emitidas. É o único tipo que aceita FacturasSustituidas, e o módulo só a preenche quando a fatura está marcada como troca: com as F2 que substitui, emitidas no Odoo ou fora, até 1000. Antes de publicar uma troca, o módulo verifica que o substituído são faturas simplificadas já registadas; caso contrário, não deixa publicar.
Se, ainda assim, receber um
Se vir algum destes códigos com um envio do módulo, interessa-nos saber: o mais provável é que a nota de crédito tenha algo fora do normal. O registo rejeitado é repetido com os mesmos dados até Dead Letter e o módulo publicado não envia a correção por si só. Escreva para comercial@flexigobe.com com o número da nota de crédito e revisamos.
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 |
|---|---|
| 1107 | El valor del campo TipoRectificativa es incorrecto. |
| 1114 | Si la factura es de tipo rectificativa, el campo TipoRectificativa debe tener valor. |
| 1115 | Si la factura no es de tipo rectificativa, el campo TipoRectificativa no debe tener valor. |
| 1116 | Debe informarse el campo FacturasSustituidas sólo si la factura es de tipo F3. |
| 1117 | Si la factura no es de tipo rectificativa, el bloque FacturasRectificadas no podrá venir informado. |
| 1118 | Si la factura es de tipo rectificativa por sustitución el bloque ImporteRectificacion es obligatorio. |
| 1119 | Si la factura no es de tipo rectificativa por sustitución el bloque ImporteRectificacion no debe tener valor. |
As retificativas não se devem confundir com as anulações. Anular uma fatura no Odoo gera um registo de anulação, com os seus próprios códigos de erro: estão na página das anulações.
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
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
