Naar hoofdinhoud
VeriFactu

Fouten 4113 en 4114 van VeriFactu: te veel records in één verzending

Elk verzoek aan VERI*FACTU kan tot 1000 factureringsrecords bevatten, en sommige blokken binnenin hebben hun eigen maxima. Worden die overschreden, dan voldoet de XML niet meer aan het schema en wijst de AEAT het hele verzoek af met 4113 of 4114. Odoo met onze module splitst de verzendingen zodat dat nooit gebeurt.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 4 november 2026

In het kort

Module
VeriFactu
Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 20.0 · in de bronnen onderaan
Leestijd
3 min

De twee codes

4113
«El XML no cumple con el esquema: se ha superado el límite permitido de registros para el bloque.» Een blok van de XML bevat meer herhalingen dan toegestaan.
4114
«El XML no cumple con el esquema: se ha superado el límite máximo permitido de facturas a registrar.» Het verzoek bevat meer facturen dan toegestaan.

Beide horen bij het deel dat de volledige verzending afwijst. Volgens het validatiedocument van de AEAT wordt het blok RegistroFactura 1 tot 1000 keer herhaald in elk verzoek, en inschrijvingen en annuleringen kunnen samen meegaan, elk in een eigen RegistroFactura.

Kaart met de VeriFactu-codes 4113 en 4114
De 4113 en 4114 in rood: te veel records laten het hele verzoek mislukken.

Hoe Odoo de verzendingen verdeelt

De wachtrij van de module draait elke 1 minuut en zet bij elke ronde de openstaande records van elk bedrijf samen in één verzoek, in kettingvolgorde. Dat verzoek gaat nooit boven 1000 records:

  1. De parameter verifactu.max_envelope_records bepaalt hoeveel records per ronde uitgaan; als niemand hem aanpast, is dat 1000.
  2. Wat niet past, blijft in de wachtrij voor de volgende ronde.
  3. Als er langs welke weg dan ook meer dan 1000 verzonden zouden worden, stopt de client van de module vóór het verzenden met «The AEAT accepts at most 1000 records per request.».

Binnen elk record past de module de blokken ook aan hun maxima aan: de btw-uitsplitsing wordt zonder waarschuwing teruggebracht tot 12 regels, en een ruil van vereenvoudigde facturen bevat tot 1000 vervangen facturen.

Wachtrij voor verzending naar de AEAT gegroepeerd per status
De verzendwachtrij gegroepeerd per status, met de openstaande records die bij de volgende ronde uitgaan. Schermafbeelding van Odoo 20 met demogegevens; de antwoorden van de AEAT zijn gesimuleerd.

Het tempo dat de AEAT bepaalt

Naast de omvang bepaalt de AEAT ook het tempo. Elk antwoord bevat een TiempoEsperaEnvio, de seconden die je moet wachten vóór de volgende verzending, en de module houdt daar rekening mee. Er is één uitzondering: staan er al 1000 records open, dan wacht hij niet, want het verzoek is vol. Antwoordt de AEAT met een HTTP 429 vanwege te veel verzoeken, dan wacht de module de tijd die de Retry-After-header aangeeft en, als die niets aangeeft, 60 seconden.

Als je er een krijgt

Met de parameter op zijn waarde zou een 4113 of 4114 zich niet moeten voordoen. Heeft iemand verifactu.max_envelope_records boven 1000 gezet, zet hem dan terug op 1000 of laat hem leeg. Stuur daarna de verzendingen in Failed opnieuw via Verzending naar AEAT › Fouten AEAT met Geselecteerde opnieuw proberen: de wachtrij verdeelt ze dan in verzoeken van de juiste omvang.

Gaan inschrijvingen en annuleringen in hetzelfde verzoek?

Ja. De AEAT staat dat toe zolang elk in zijn eigen RegistroFactura gaat, en de wachtrij van de module stuurt de openstaande inschrijvingen en annuleringen van het bedrijf samen mee, in kettingvolgorde.

Is het zinvol de parameter te verlagen?

Dat is niet nodig. Minder records per verzoek betekent meer verzoeken, en elk moet wachten op de TiempoEsperaEnvio die de AEAT aangeeft.

Krijg je met de parameter op 1000 toch een van deze codes, mail dan naar comercial@flexigobe.com met het antwoord van de verzending.

Lees verder

VeriFactu-fouten met het verzendformaat: onleesbare XML, UTF-8 en lege verzoekenVeriFactu-fouten van het verzendformaat (4103, 4119, 4135 tot 4138, 1100, 1251): onleesbare XML, UTF-8, GET of lege verzoeken, en hoe Odoo verstuurt.Fout 4102 van VeriFactu: «El XML no cumple el esquema. Falta informar campo obligatorio»Fout 4102 van VeriFactu wijst het hele verzoek af omdat een verplicht veld ontbreekt. Zo vangt Odoo 17 tot 20 dit vooraf op en wat je doet als de AEAT het stuurt.VeriFactu fout 4134: «Servicio no activo», wat er met je facturen gebeurt en hoe je ze opnieuw verstuurtWat foutcode 4134 van de AEAT in VeriFactu betekent, waarom de hele verzending wordt geweigerd en hoe je de facturen vanuit Odoo 17, 18, 19 en 20 opnieuw verstuurt.
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen

Bronnen