Os dois códigos
- 4113
- «El XML no cumple con el esquema: se ha superado el límite permitido de registros para el bloque.» Um bloco do XML tem mais repetições do que as permitidas.
- 4114
- «El XML no cumple con el esquema: se ha superado el límite máximo permitido de facturas a registrar.» O pedido contém mais faturas do que as permitidas.
Ambos pertencem à secção que rejeita o envio completo. Segundo o documento de validações da AEAT, o bloco RegistroFactura repete-se de 1 a 1000 vezes em cada pedido, e as altas e as anulações podem seguir juntas, cada uma no seu próprio RegistroFactura.

Como o Odoo reparte os envios
A fila do módulo corre a cada 1 minuto e, em cada ciclo, junta os registos pendentes de cada empresa num único pedido, por ordem de cadeia. Esse pedido nunca ultrapassa 1000 registos:
- O parâmetro verifactu.max_envelope_records define quantos registos saem em cada ciclo e, se ninguém o alterar, vale 1000.
- O que não couber fica na fila para o ciclo seguinte.
- Se, por qualquer via, se tentassem enviar mais de 1000, o cliente do módulo para antes de enviar com «The AEAT accepts at most 1000 records per request.».
Dentro de cada registo, o módulo também ajusta os blocos aos seus limites: o detalhe do imposto é reduzido a 12 linhas, sem aviso, e uma troca de faturas simplificadas leva até 1000 faturas substituídas.

O ritmo que a AEAT define
Para além do tamanho, a AEAT define o ritmo. Cada resposta traz um TiempoEsperaEnvio, os segundos a aguardar antes do envio seguinte, e o módulo respeita-o. Há uma exceção: se já houver 1000 registos pendentes, não espera, porque o pedido está cheio. Se a AEAT responder com um HTTP 429 por excesso de pedidos, o módulo aguarda o que indicar o seu cabeçalho Retry-After e, se não indicar nada, 60 segundos.
Se receber um
Com o parâmetro no seu valor, não deveria surgir um 4113 nem um 4114. Se alguém tiver subido verifactu.max_envelope_records acima de 1000, reponha-o para 1000 ou deixe-o vazio. Depois, reenvie os envios em Failed a partir de Envío a AEAT › Errores AEAT com Reintentar Selección: a fila voltará a repartí-los em pedidos do tamanho correto.
As altas e as anulações vão no mesmo pedido?
Sim. A AEAT admite-o desde que cada uma vá no seu próprio RegistroFactura, e a fila do módulo envia juntas as altas e as anulações pendentes da empresa, por ordem de cadeia.
Convém baixar o parâmetro?
Não é necessário. Com menos registos por pedido fazem-se mais pedidos, e cada um tem de aguardar o TiempoEsperaEnvio definido pela AEAT.
Se, com o parâmetro em 1000, receber algum destes códigos, escreva para comercial@flexigobe.com com a resposta do envio.
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_crons.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
