Naar hoofdinhoud
VeriFactu

VeriFactu-fouten met het verzendformaat: onleesbare XML, UTF-8 en lege verzoeken

Voordat de AEAT een factuur controleert, moet ze kunnen lezen wat er binnenkomt: goed gevormde XML, in UTF-8, via de juiste methode en met de knooppunten die ze verwacht. Als daar iets misgaat, telt geen enkele factuur. Deze acht codes horen bij die eerste controle, en bijna alle wijzen het volledige verzoek af.

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

Wat de AEAT niet kan lezen

CodeTekst van de AEAT
4103Se ha producido un error inesperado al parsear el XML.
4119Error al informar caracteres cuya codificación no es UTF-8.
4135Esta URL no puede ser utilizada mediante GET.
4136No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto.
4137No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto.
4138Petición vacía en el XML o encoding incorrecto.

Alle zes staan in het deel van de lijst dat de volledige verzending afwijst. De andere twee codes op deze pagina wijzen alleen een record af: 1100, Valor o tipo incorrecto del campo., de meest generieke van de lijst, en 1251, voor een onjuiste IDVersion.

Kaart met de codes van het verzendformaat van VeriFactu
In rood de zes die het volledige verzoek afwijzen; in oranje 1100 en 1251, die één record afwijzen.

Hoe Odoo elk verzoek verstuurt

De module verstuurt elke verzending als een SOAP 1.1 POST via wederzijdse TLS, met het certificaat van het bedrijf. De inhoud is XML in UTF-8, met de bijbehorende coderingsdeclaratie, en de HTTP-header kondigt dat aan als text/xml in UTF-8. Teksten worden genormaliseerd naar de NFC-vorm, zodat dezelfde letter met accent altijd met dezelfde bytes aankomt. Elk record heeft IDVersion 1.0, en voordat het vertrekt, wordt het gevalideerd tegen het officiële schema dat de module bevat.

Zo verstuurd zouden de fouten op deze pagina niet mogen optreden: er is geen GET, er zijn geen lege verzoeken en de codering is altijd dezelfde.

Het GET-geval

4135 is de enige van deze pagina die vaak voorkomt, en de verklaring is heel eenvoudig: iemand heeft het adres van de AEAT-dienst in een browser geopend. Een browser vraagt pagina's op met GET, en de dienst accepteert alleen POST. Als je dit ziet bij het handmatig testen van het adres, zegt dat niets over je verzendingen: de wachtrij van Odoo gebruikt nooit GET.

Wachtrij voor verzending naar de AEAT gegroepeerd op status
De verzendwachtrij in Odoo gegroepeerd op status: volledige afwijzingen van het verzoek blijven in Failed. Schermafbeelding van Odoo 20 met demogegevens; de antwoorden van de AEAT zijn gesimuleerd.

Wat te doen

  • Bij een 4103, 4119 of 4138 in een verzending van de module, bewaar het antwoord uit het veld Raw Response en schrijf naar comercial@flexigobe.com: we willen zien welke factuur in die verzending zat.
  • Bij een 4136 of 4137, hetzelfde. De module bouwt die knooppunten voor elke registratie en elke annulering.
  • Bij een 1100 zegt het bericht niet welk veld het betreft: het volledige antwoord laat meestal zien op welk record het slaat.

Zodra we de oorzaak kennen, worden de verzendingen in Failed opnieuw verstuurd via Envío a AEAT › Errores AEAT met Reintentar Selección. Die met 1100 en 1251 probeert de wachtrij al opnieuw, maar met dezelfde gegevens.

De codes op deze pagina, met de tekst van de AEAT

Elke code met zijn letterlijke tekst, zoals de foutenlijst van de AEAT die geeft:

CodeTekst van de AEAT
4103Se ha producido un error inesperado al parsear el XML.
4119Error al informar caracteres cuya codificación no es UTF-8.
4135Esta URL no puede ser utilizada mediante GET.
4136No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto.
4137No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto.
4138Petición vacía en el XML o encoding incorrecto.
1100Valor o tipo incorrecto del campo.
1251El valor del campo IdVersion tiene un valor incorrecto

Schemafouten, wanneer een verplicht veld ontbreekt, hebben hun eigen pagina: fout 4102.

Lees verder

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.Fouten 4113 en 4114 van VeriFactu: te veel records in één verzendingDe VeriFactu-fouten 4113 en 4114: te veel records in één verzending. De limiet van 1000 per verzoek, die per blok en hoe Odoo 17 tot 20 ze respecteert.Technische VeriFactu-fouten: wanneer het probleem in de systemen van de AEAT zitTechnische VeriFactu-fouten bij de AEAT (4108, 4110, 4111, 4118, 4128, 3500, 3501, 1129, 1256, 1288): welke Odoo zelf herhaalt en welke jij opnieuw verstuurt.
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen

Bronnen