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.

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:
- De parameter verifactu.max_envelope_records bepaalt hoeveel records per ronde uitgaan; als niemand hem aanpast, is dat 1000.
- Wat niet past, blijft in de wachtrij voor de volgende ronde.
- 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.

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
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen
Bronnen
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Broncode van de module: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Broncode van de module: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Broncode van de module: 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
