O que a AEAT não consegue ler
| Código | Texto da AEAT |
|---|---|
| 4103 | Se ha producido un error inesperado al parsear el XML. |
| 4119 | Error al informar caracteres cuya codificación no es UTF-8. |
| 4135 | Esta URL no puede ser utilizada mediante GET. |
| 4136 | No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto. |
| 4137 | No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto. |
| 4138 | Petición vacía en el XML o encoding incorrecto. |
Os seis estão na secção da lista que rejeita o envio completo. Os outros dois códigos desta página rejeitam apenas um registo: o 1100, Valor o tipo incorrecto del campo., o mais genérico da lista, e o 1251, para um IDVersion incorreto.

Como o Odoo envia cada pedido
O módulo envia cada pedido como um POST SOAP 1.1 através de TLS mútuo, com o certificado digital da empresa. O corpo é XML em UTF-8, com a respetiva declaração de codificação, e o cabeçalho HTTP anuncia-o como text/xml em UTF-8. Os textos são normalizados para a forma NFC, para que uma mesma letra acentuada chegue sempre com os mesmos bytes. Cada registo leva IDVersion 1.0 e, antes de sair, passa pela validação contra o esquema oficial que o módulo inclui.
Com esta forma de enviar, as falhas desta página não deveriam aparecer: não há GET, não há pedidos vazios e a codificação é sempre a mesma.
O caso do GET
O 4135 é o único desta página que se vê com frequência, e tem uma explicação muito simples: alguém abriu o endereço do serviço da AEAT num navegador. Um navegador pede as páginas com GET, e o serviço só aceita POST. Se o vir ao testar o endereço manualmente, não indica nenhum problema com os seus envios: a fila do Odoo nunca pede com GET.

O que fazer
- Com um 4103, 4119 ou 4138 num envio do módulo, guarde a resposta do campo Raw Response e escreva para comercial@flexigobe.com: queremos ver que fatura seguia nesse envio.
- Com um 4136 ou 4137, o mesmo. O módulo constrói esses nós para cada registo de alta e cada anulação.
- Com um 1100, a mensagem não indica o campo: a resposta completa costuma deixar ver a que registo diz respeito.
Quando soubermos a causa, os envios em Failed reenviam-se a partir de Envío a AEAT › Errores AEAT com Reintentar Selección. Os do 1100 e do 1251 a fila já os repete, mas com os mesmos dados.
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 |
|---|---|
| 4103 | Se ha producido un error inesperado al parsear el XML. |
| 4119 | Error al informar caracteres cuya codificación no es UTF-8. |
| 4135 | Esta URL no puede ser utilizada mediante GET. |
| 4136 | No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto. |
| 4137 | No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto. |
| 4138 | Petición vacía en el XML o encoding incorrecto. |
| 1100 | Valor o tipo incorrecto del campo. |
| 1251 | El valor del campo IdVersion tiene un valor incorrecto |
Os erros de esquema, quando falta um campo obrigatório, têm página própria: o erro 4102.
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_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
