Aller au contenu principal
VeriFactu

Erreurs 4113 et 4114 de VeriFactu : trop d'enregistrements dans un même envoi

Chaque requête envoyée à VERI*FACTU peut contenir jusqu'à 1000 enregistrements de facturation, et certains blocs internes ont leurs propres plafonds. S'ils sont dépassés, le XML ne respecte plus le schéma et l'AEAT rejette la requête entière avec le 4113 ou le 4114. Odoo, avec notre module, découpe les envois pour ne jamais atteindre ce seuil.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 4 novembre 2026

L'essentiel

Module
VeriFactu
Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du module, version 20.0 · dans les sources citées à la fin
Lecture
3 min

Les deux codes

4113
«El XML no cumple con el esquema: se ha superado el límite permitido de registros para el bloque.» Un bloc du XML contient plus de répétitions qu'il n'en admet.
4114
«El XML no cumple con el esquema: se ha superado el límite máximo permitido de facturas a registrar.» La requête contient plus de factures que le nombre autorisé.

Les deux relèvent de la section qui rejette l'envoi complet. Selon le document de validations de l'AEAT, le bloc RegistroFactura se répète de 1 à 1000 fois dans chaque requête, et les inscriptions et les annulations peuvent aller ensemble, chacune dans son propre RegistroFactura.

Fiche des codes 4113 et 4114 de VeriFactu
Le 4113 et le 4114 en rouge : un excès d'enregistrements fait échouer toute la requête.

Comment Odoo répartit les envois

La file du module s'exécute toutes les 1 minute et, à chaque passage, regroupe les enregistrements en attente de chaque société dans une seule requête, dans l'ordre de la chaîne. Cette requête ne dépasse jamais 1000 enregistrements :

  1. Le paramètre verifactu.max_envelope_records fixe le nombre d'enregistrements envoyés à chaque passage ; si personne n'y touche, il vaut 1000.
  2. Ce qui ne rentre pas reste dans la file pour le passage suivant.
  3. Si, par un chemin quelconque, plus de 1000 enregistrements devaient partir, le client du module s'arrête avant l'envoi avec «The AEAT accepts at most 1000 records per request.».

Dans chaque enregistrement, le module ajuste aussi les blocs à leurs plafonds : la ventilation fiscale est ramenée à 12 lignes, sans avertissement, et un échange de factures simplifiées porte jusqu'à 1000 factures remplacées.

File d'envoi vers l'AEAT regroupée par état
La file d'envoi regroupée par état, avec les enregistrements en attente qui partent au prochain passage. Capture d'Odoo 20 avec des données de démonstration ; les réponses de l'AEAT sont simulées.

Le rythme imposé par l'AEAT

Outre la taille, l'AEAT fixe le rythme. Chaque réponse contient un TiempoEsperaEnvio, le nombre de secondes à attendre avant l'envoi suivant, et le module le respecte. Une exception : si 1000 enregistrements sont déjà en attente, il n'attend pas, car la requête est pleine. Si l'AEAT répond par un HTTP 429 pour excès de requêtes, le module attend le délai indiqué par son en-tête Retry-After et, à défaut, 60 secondes.

Si l'un de ces codes apparaît

Avec le paramètre à sa valeur, un 4113 ou un 4114 ne devrait pas se produire. Si quelqu'un a relevé verifactu.max_envelope_records au-delà de 1000, remettez-le à 1000 ou laissez-le vide. Puis renvoyez les envois en Failed depuis Envoi à AEAT › Erreurs AEAT avec Réessayer la sélection : la file les répartira en requêtes de la bonne taille.

Les inscriptions et les annulations vont-elles dans la même requête ?

Oui. L'AEAT l'admet tant que chacune se trouve dans son propre RegistroFactura, et la file du module envoie ensemble les inscriptions et les annulations en attente de la société, dans l'ordre de la chaîne.

Faut-il baisser le paramètre ?

Ce n'est pas nécessaire. Moins d'enregistrements par requête signifie plus de requêtes, et chacune doit attendre le TiempoEsperaEnvio fixé par l'AEAT.

Si vous obtenez un de ces codes avec le paramètre à 1000, écrivez à comercial@flexigobe.com avec la réponse de l'envoi.

À lire aussi

Erreurs VeriFactu avec le format d'envoi : XML illisible, UTF-8 et requêtes videsErreurs VeriFactu du format d'envoi (4103, 4119, 4135 à 4138, 1100, 1251) : XML illisible, UTF-8, GET ou requêtes vides, et comment Odoo envoie.Erreur 4102 de VeriFactu : « El XML no cumple el esquema. Falta informar campo obligatorio »L'erreur 4102 de VeriFactu rejette l'envoi entier car un champ obligatoire manque. Comment Odoo 17, 18, 19 et 20 la bloque en amont et que faire si l'AEAT la renvoie.Erreur 4134 de VeriFactu : « Servicio no activo », ce qui arrive à vos factures et comment les renvoyerCe que signifie l'erreur 4134 de l'AEAT dans VeriFactu, pourquoi elle rejette l'envoi entier et comment renvoyer vos factures depuis Odoo 17, 18, 19 et 20.
Vérifié dans le code du module (version 20.0) et dans les sources citées

Sources