O que a AEAT responde
Cada remessa leva entre 1 e 1 000 registos. A resposta traz um estado para a remessa inteira (Correcto, ParcialmenteCorrecto ou Incorrecto), um estado por registo (Correcto, AceptadoConErrores ou Incorrecto) e o tempo de espera até à remessa seguinte.
A AEAT publica o seu catálogo oficial de erros, com 247 códigos, em três famílias:
| Família | O que significa | O que fazer |
|---|---|---|
| 4xxx: remessa inteira rejeitada | Nada dessa remessa foi registado. | Corrija a causa e reenvie a remessa inteira. |
| Registo rejeitado | Esse registo não é aceite; o resto da remessa, sim. | Corrija esse registo e reenvie apenas esse. |
| 2xxx: aceite com erros | O registo fica registado, mas há algo a corrigir. | Não o reenvie como novo: corrija o que o código indica. |
Há dois casos concretos que convém reconhecer à primeira. O código 3000 assinala um registo duplicado: se já aparece como correto ou aceite com erros, não é preciso reenviá-lo. E a impressão digital, um SHA-256 encadeado com o registo anterior, é recalculada pela AEAT: se não coincidir, o registo é aceite com um erro que tem de ser corrigido.

Antes de chegar à AEAT: o certificado
A AEAT identifica o emissor pelo certificado apresentado ao ligar. Sem certificado, o seu serviço redireciona para a página de erro 4033, «certificado não detetado». Com um certificado que não valida, para a 4011. No Odoo, estes casos são travados antes:
No active certificate for company …: a empresa não tem nenhum certificado ativo. Carregue-o em Configuration › Certificates.The certificate … of company … has expired.: expirou. Há um alerta diário de validade para não chegar a este ponto.
O que o seu sistema bloqueia antes de enviar
| Mensagem | O que falta | Solução |
|---|---|---|
Company … has no NIF for Veri*Factu. | A empresa não tem NIF. | Preencha-o nos dados da empresa. |
Invalid NIF length: "…" (must be 9 chars) | O NIF do cliente não tem 9 caracteres. | Verifique o NIF no contacto. |
Invalid NIF digits: "…" | O NIF contém caracteres inválidos. | Corrija-o no contacto. |
Cannot post invoice: invalid counterparty identifier. | O identificador do cliente não é válido. | Corrija o identificador antes de lançar. |
Record … has no tax breakdown (Desglose) to declare. | A fatura não tem discriminação de impostos. | Verifique os impostos nas linhas. |
Record … is chained to a previous record that does not exist. | A cadeia de registos está partida. | Não lhe mexa à mão: verifique o estado da cadeia e escreva-nos. |
The AEAT accepts at most 1000 records per request. | Uma remessa com mais registos do que o permitido. | A fila divide-os; se vir isto, avise-nos. |

Onde ver no Odoo
A fila de remessas processa-se a cada minuto e está em AEAT Submission › Submission Queue. Os erros devolvidos pela AEAT têm a sua própria lista em AEAT Errors, e o catálogo completo de códigos em AEAT Error Catalogue. Esses três ecrãs resolvem a maioria dos casos sem abrir o documento técnico da AEAT, embora tenha a ligação abaixo caso precise dele.

O módulo está publicado para o Odoo 17, 18, 19 e 20. Se um código não estiver no catálogo, envie-nos o texto exato da resposta: vamos encontrá-lo no documento oficial de validaçõ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
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- sede.agenciatributaria.gob.es/Sede/errores/erro4033.html
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- Código do módulo: flexigo_spain_verifactu 20.0 (4dc42be4): models/account_move.py
- Código do módulo: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_aeat_client.py
- Código do módulo: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_nif_validator.py
- Código do módulo: flexigo_spain_verifactu 20.0 (4dc42be4): data/verifactu_crons.xml
- Código do módulo: flexigo_spain_verifactu 20.0 (4dc42be4): views/menu_views.xml
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
