Els dos codis
- 4113
- «El XML no cumple con el esquema: se ha superado el límite permitido de registros para el bloque.» Un bloc de l'XML porta més repeticions de les que admet.
- 4114
- «El XML no cumple con el esquema: se ha superado el límite máximo permitido de facturas a registrar.» La petició porta més factures de les permeses.
Tots dos són de l'apartat que rebutja l'enviament sencer. Segons el document de validacions de l'AEAT, el bloc RegistroFactura es repeteix d'1 a 1000 vegades a cada petició, i altes i anul·lacions poden anar juntes, cadascuna al seu propi RegistroFactura.

Com reparteix Odoo els enviaments
La cua del mòdul corre cada 1 minut i, a cada volta, ajunta els registres pendents de cada empresa en una sola petició, en ordre de cadena. Aquesta petició no passa mai de 1000 registres:
- El paràmetre verifactu.max_envelope_records fixa quants registres surten a cada volta, i si ningú el toca val 1000.
- El que no hi cap es queda a la cua per a la volta següent.
- Si per qualsevol camí s'intentessin enviar més de 1000, el client del mòdul s'atura abans d'enviar amb «The AEAT accepts at most 1000 records per request.».
Dins de cada registre, el mòdul també ajusta els blocs als seus límits: el desglossament es retalla a 12 línies, sense avís, i un bescanvi de simplificades porta fins a 1000 factures substituïdes.

El ritme que marca l'AEAT
A més de la mida, l'AEAT marca el ritme. Cada resposta porta un TiempoEsperaEnvio, els segons que cal esperar abans de l'enviament següent, i el mòdul el respecta. Hi ha una excepció: si ja hi ha 1000 registres pendents, no espera, perquè la petició és plena. Si l'AEAT respon amb un HTTP 429 per excés de peticions, el mòdul espera el que indiqui la seva capçalera Retry-After i, si no indica res, 60 segons.
Si te n'arriba un
Amb el paràmetre al seu valor, un 4113 o un 4114 no s'hauria de produir. Si algú va pujar verifactu.max_envelope_records per sobre de 1000, torna'l a 1000 o deixa'l buit. Després, torna a enviar els enviaments en Failed des d'AEAT Submission › AEAT Errors amb Retry Selected: la cua els repartirà en peticions de la mida correcta.
Les altes i les anul·lacions van a la mateixa petició?
Sí. L'AEAT ho admet sempre que cadascuna vagi al seu propi RegistroFactura, i la cua del mòdul envia juntes les altes i les anul·lacions pendents de l'empresa, en l'ordre de la cadena.
Convé abaixar el paràmetre?
No cal. Amb menys registres per petició es fan més peticions, i cadascuna ha d'esperar el TiempoEsperaEnvio que marqui l'AEAT.
Si amb el paràmetre a 1000 t'arriba un d'aquests codis, escriu-nos a comercial@flexigobe.com amb la resposta de l'enviament.
Continua llegint
Comprovat al codi del mòdul (versió 20.0) i a les fonts enllaçades
Fonts
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Codi del mòdul: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Codi del mòdul: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Codi del mòdul: 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
