I due codici
- 4113
- «El XML no cumple con el esquema: se ha superado el límite permitido de registros para el bloque.» Un blocco dell'XML contiene più ripetizioni di quante ne ammetta.
- 4114
- «El XML no cumple con el esquema: se ha superado el límite máximo permitido de facturas a registrar.» La richiesta contiene più fatture di quelle consentite.
Entrambi appartengono alla sezione che rifiuta l'invio completo. Secondo il documento di validazione dell'AEAT, il blocco RegistroFactura si ripete da 1 a 1000 volte in ogni richiesta, e registrazioni e annullamenti possono viaggiare insieme, ciascuno nel proprio RegistroFactura.

Come Odoo suddivide gli invii
La coda del modulo viene eseguita ogni 1 minuto e, a ogni esecuzione, raggruppa i record in attesa di ciascuna azienda in un'unica richiesta, nell'ordine della catena. Quella richiesta non supera mai i 1000 record:
- Il parametro verifactu.max_envelope_records stabilisce quanti record partono a ogni esecuzione e, se nessuno lo modifica, vale 1000.
- Ciò che non entra resta in coda per l'esecuzione successiva.
- Se in qualche modo si tentasse di inviarne più di 1000, il client del modulo si ferma prima di inviare con «The AEAT accepts at most 1000 records per request.».
All'interno di ogni record il modulo adatta inoltre i blocchi ai rispettivi limiti: il dettaglio IVA viene ridotto a 12 righe, senza avviso, e uno scambio di semplificate arriva fino a 1000 fatture sostituite.

Il ritmo imposto dall'AEAT
Oltre alla dimensione, l'AEAT impone il ritmo. Ogni risposta contiene un TiempoEsperaEnvio, i secondi da attendere prima del successivo invio, e il modulo lo rispetta. C'è un'eccezione: se sono già in attesa 1000 record, non attende, perché la richiesta è piena. Se l'AEAT risponde con un HTTP 429 per eccesso di richieste, il modulo attende quanto indicato dall'intestazione Retry-After e, se non indica nulla, 60 secondi.
Se ne ricevi uno
Con il parametro al suo valore, un 4113 o un 4114 non dovrebbe presentarsi. Se qualcuno ha alzato verifactu.max_envelope_records sopra 1000, riportalo a 1000 oppure lascialo vuoto. Poi reinvia gli invii in Failed da Invio a AEAT › Errori AEAT con Riprova selezione: la coda li suddividerà in richieste della dimensione corretta.
Registrazioni e annullamenti vanno nella stessa richiesta?
Sì. L'AEAT lo ammette purché ciascuno vada nel proprio RegistroFactura, e la coda del modulo invia insieme le registrazioni e gli annullamenti in attesa dell'azienda, nell'ordine della catena.
Conviene abbassare il parametro?
Non serve. Con meno record per richiesta si effettuano più richieste, e ciascuna deve attendere il TiempoEsperaEnvio stabilito dall'AEAT.
Se con il parametro a 1000 ricevi uno di questi codici, scrivi a comercial@flexigobe.com con la risposta dell'invio.
Continua a leggere
Verificato nel codice del modulo (versione 20.0) e nelle fonti collegate
Fonti
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Codice del modulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Codice del modulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Codice del modulo: 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
