O que significa
O texto da AEAT é Registro de facturación duplicado. e está na secção da lista oficial que rejeita a fatura, não o envio inteiro. O identificador que se compara é o bloco IDFactura: o NIF do emitente, o número da fatura e a sua data de emissão. No Odoo, esses três dados vêm do NIF da empresa, do número que o Odoo atribuiu à fatura e da sua data.
Juntamente com o 3000, a resposta da AEAT inclui um bloco RegistroDuplicado que indica o que aconteceu com o registo que já existia: o identificador do pedido em que entrou, o seu estado e, se tiver tido, o seu próprio código de erro.

Quando acontece ao trabalhar com o Odoo
A AEAT responde a cada envio com um estado por registo. Se essa resposta não chegar, por uma interrupção da rede ou um tempo limite esgotado, o módulo não consegue saber se a AEAT guardou o registo: deixa o envio em Retrying e repete-o mais tarde, com esperas que vão de 2 minutos a 12 horas. Se a primeira tentativa tiver entrado, a segunda devolve um 3000. É a forma que a AEAT tem de lhe dizer que já o tinha.
O que o módulo faz com a resposta
| Estado do registo anterior | O que fica no Odoo |
|---|---|
| Correcta | O registo passa a «Aceptado AEAT» e não volta a ser enviado. |
| AceptadaConErrores | Fica como «Aceptado con errores (subsanar)», com o código e a descrição do registo anterior. |
| Qualquer outro | É tratado como uma rejeição: Retrying e, à sexta tentativa, Dead Letter. |
Isto coincide com o que a AEAT indica: se o registo já constar como correto ou aceite com erros, não deve ser reenviado. Voltar a enviá-lo só produziria outro 3000.

O que tem de fazer você
- Se o registo ficou como «Aceptado AEAT», não há nada a fazer. A fatura está registada uma única vez.
- Se ficou como «Aceptado con errores (subsanar)», o problema não é o duplicado, mas o erro que o registo anterior já tinha. Procure o seu código nesta mesma série de páginas.
- Se o 3000 se repetir com faturas diferentes, verifique se dois sistemas não estão a enviar as mesmas faturas com o mesmo NIF, por exemplo uma cópia de teste do Odoo a apontar para o ambiente de produção.
O 3000 pode ser de outra fatura com o mesmo número?
Só se coincidirem NIF, número e data. O Odoo não repete números dentro de um mesmo diário, por isso o habitual é tratar-se da mesma fatura enviada duas vezes.
Onde vejo o registo anterior?
Na resposta guardada no envio, o campo Raw Response da fila, que contém o bloco RegistroDuplicado completo.
Os registos de anulação seguem a mesma lógica de identificador. O que acontece quando anula uma fatura que a AEAT não tem, ou que já estava anulada, está em a página das anulações.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- 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_cola_envio.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): data/verifactu_error_catalogue.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
