Como é que o Odoo identifica um cliente estrangeiro
O módulo decide o tipo de identificador ao validar a fatura, com dois campos do contacto: o país e o NIF.
- Cliente com país Espanha ou sem país
- Vai no campo NIF. Se o número começar por X, Y ou Z, é tratado como NIE.
- Cliente de outro país da UE
- Vai em IDOtro com IDType 02 (NIF-IVA) e sem CodigoPais.
- Cliente de fora da UE
- Vai em IDOtro com o CodigoPais do seu país e IDType 04, ou com IDType 03 (passaporte) se o número tiver mais de 20 caracteres ou nenhum alfanumérico.
O número segue com 20 caracteres no máximo. Com isto em mente, quase todos os códigos abaixo explicam-se olhando para o país e o NIF do contacto.

Os códigos, um a um
| Código | O que diz a AEAT | O que verificar |
|---|---|---|
| 1239 | Error en el bloque Destinatario. | O bloco inteiro: país, NIF e nome do contacto. |
| 1101 | El valor del campo CodigoPais es incorrecto. | O país do contacto. |
| 1102 | El valor del campo IDType es incorrecto. | O tipo de documento que foi deduzido. |
| 1103 | El valor del campo ID es incorrecto. | O número do contacto. |
| 1111 | El campo CodigoPais es obligatorio cuando IDType es distinto de NIF-IVA (02). | Um cliente sem país no Odoo. |
| 1122 | El campo CodigoPais indicado no coincide con los dos primeros dígitos del identificador. | Um número com o prefixo de outro país. |
| 1126 | El valor del CodigoPais solo puede ser ES cuando el IDType sea Pasaporte (03) o No Censado (07)… | Um cliente espanhol enviado por IDOtro. |
| 1131 | El valor del campo ID ha de ser el NIF de una persona física cuando el campo IDType tiene valor No Censado (07). | O tipo 07, que o módulo não usa. |
| 1222 | El valor del campo ID del bloque IDOtro es incorrecto. | O número de um cliente de fora. |
| 1232, 1233 e 1234 | IDOtro com CodigoPais ES exige IDType 03, 07 ou um dos dois. | O país Espanha num cliente com passaporte. |
| 1254 e 1255 | NIF-IVA do Reino Unido: XI não é aceite antes de 01/01/2021 e GB não é aceite desde 01/02/2021. | A data da operação e o prefixo. |
Para o IDType 02 a AEAT verifica ainda que o número tem a estrutura de NIF-IVA do Estado-membro e que está em maiúsculas. Na prática, o NIF de um cliente europeu tem de ir no Odoo com o prefixo do seu país, tal como o VIES o valida.
O que acontece no Odoo quando a AEAT o rejeita
Estes códigos rejeitam o registo, não o envio: as restantes faturas do mesmo pedido entram. A fila deixa o rejeitado em Retrying e volta a enviá-lo com esperas cada vez mais longas, de 2 minutos a 12 horas; à sexta tentativa passa-o para Dead Letter e o registo fica como «Error permanente».

Voltar a tentar não muda nada se o dado estiver errado, porque o envio sai do registo criado ao validar a fatura, não do contacto. Por isso a correção tem duas partes:
- Corrija o país ou o NIF do contacto, para que as faturas seguintes saiam bem.
- Para a fatura já rejeitada, a AEAT prevê um registo de alta por rejeição, com Subsanacion S e RechazoPrevio X. O módulo publicado não gera esse registo por si só: escreva para comercial@flexigobe.com com o número da fatura e resolvemo-lo consigo.
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 |
|---|---|
| 1239 | Error en el bloque Destinatario. |
| 1101 | El valor del campo CodigoPais es incorrecto. |
| 1102 | El valor del campo IDType es incorrecto. |
| 1103 | El valor del campo ID es incorrecto. |
| 1111 | El campo CodigoPais es obligatorio cuando IDType es distinto de NIF-IVA (02). |
| 1122 | El campo CodigoPais indicado no coincide con los dos primeros dígitos del identificador. |
| 1126 | El valor del CodigoPais solo puede ser ES cuando el IDType sea Pasaporte (03) o No Censado (07). Si IDType es No Censado (07) el CodigoPais debe ser ES (España). |
| 1131 | El valor del campo ID ha de ser el NIF de una persona física cuando el campo IDType tiene valor No Censado (07). |
| 1222 | El valor del campo ID del bloque IDOtro es incorrecto. |
| 1232 | Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ES (España), el campo IDType debe valer Pasaporte (03). |
| 1233 | Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ES (España), el campo IDType debe valer No Censado (07). |
| 1234 | Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ES (España), el campo IDType debe valer Pasaporte (03) o No Censado (07). |
| 1254 | Si FechaOperacion (FechaExpedicionFactura si no se informa FechaOperacion) es anterior a 01/01/2021 no se permite el valor 'XI' para Identificaciones NIF-IVA |
| 1255 | Si FechaOperacion (FechaExpedicionFactura si no se informa FechaOperacion) es mayor o igual que 01/02/2021 no se permite el valor 'GB' para Identificaciones NIF-IVA |
Se o código que vê não estiver nesta tabela, o catálogo completo está em Envio à AEAT › Catálogo de Erros AEAT, com o texto literal da AEAT.
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_cadena.py
- 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_registro.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
