Zum Hauptinhalt springen
VeriFactu

VeriFactu-Fehler 4102: «El XML no cumple el esquema. Falta informar campo obligatorio»

Der Fehler 4102 ist der typische Strukturfehler: Dem XML, das die AEAT erhält, fehlt ein Feld, das das Schema verlangt. Da es sich um einen strukturellen Fehler handelt, lehnt die AEAT die gesamte Anfrage ab, mit allen darin enthaltenen Rechnungen. Mit unserem Modul sehen Sie ihn normalerweise bereits in Odoo, bevor etwas gesendet wird, und nicht als Antwort der AEAT.

FlexigoTech · Verantwortlich: Víctor Gómez · Aktualisiert am 4. November 2026

Das Wichtigste

Versionen
Odoo 17, 18, 19 und 20
Geprüft
im Quellcode des Moduls, Version 20.0 · in den Quellen am Ende
Lesezeit
3 Min.

Warum er den gesamten Versand zu Fall bringt

Das Validierungsdokument der AEAT unterscheidet drei Arten von Prüfungen: strukturelle, syntaktische und fachliche Regeln. Die strukturellen Prüfungen kontrollieren, ob das XML dem Schema mit seinen Pflicht-Tags entspricht, und bei Fehlern wird die gesamte Nachricht abgelehnt. Diese Ablehnung kommt als SoapFault zurück, und keine Rechnung der Anfrage wird registriert, auch nicht die korrekten.

Der offizielle Wortlaut lautet: «El XML no cumple el esquema. Falta informar campo obligatorio.», also «Das XML entspricht nicht dem Schema. Ein Pflichtfeld fehlt.». Er steht im ersten Abschnitt, bei den Codes, die den gesamten Versand ablehnen.

Karte des VeriFactu-Codes 4102
Der 4102 in Rot: Er lehnt die gesamte Anfrage ab und lässt den Versand in der Warteschlange des Moduls auf Failed stehen.

Was das Modul tut, damit er nicht entsteht

Ein einziger fehlerhafter Datensatz würde alle anderen Datensätze desselben Versands mit sich reißen. Um das zu verhindern, validiert das Modul jeden Datensatz vor dem Versand gegen das offizielle Schema der AEAT. Es enthält eine Kopie dieses Schemas, die Datei SuministroLR.xsd mit ihren Abhängigkeiten, und der Ablauf ist folgender:

  1. Beim Buchen der Rechnung Ihr Abrechnungsdatensatz wird erstellt und ändert sich danach nicht mehr.
  2. Beim nächsten Durchlauf der Warteschlange Jeder ausstehende Datensatz wird in XML umgewandelt und gegen das Schema validiert.
  3. Wenn ein Datensatz nicht entspricht Er wird in Odoo mit der Meldung des Schemas als abgelehnt markiert, ohne AEAT-Code, und wird nicht versendet.
  4. Der Rest Geht in derselben Anfrage an die AEAT, ohne den fehlerhaften Datensatz.

So reißt ein fehlerhafter Datensatz die korrekten Rechnungen nicht mit, die mit ihm übermittelt werden.

Wie Sie ihn in Odoo sehen

In der Warteschlange für den Versand an die AEAT erscheint der angehaltene Datensatz unter Failed, mit der Meldung des Validators als letztem Fehler, statt eines vierstelligen Codes. Diese Meldung nennt das fehlende oder unpassende Element, und genau das brauchen Sie, um die Ursache zu finden. In der Liste der Abrechnungsdatensätze lautet der Status «Rechazado AEAT», abgelehnt von der AEAT, obwohl die AEAT ihn nie gesehen hat.

Warteschlange für den Versand an die AEAT, nach Status gruppiert
Die nach Status gruppierte Warteschlange: Die Versände in Failed sind diejenigen, die nicht automatisch erneut gesendet werden. Screenshot aus Odoo 20 mit Demodaten; die Antworten der AEAT sind simuliert.

Noch vor dem Schema gibt es Daten, ohne die das Modul das XML gar nicht erstellt, und es teilt Ihnen das mit eigener Meldung mit:

  • Company … has no NIF for Veri*Factu. wenn das Unternehmen keine NIF hat.
  • Record … has no tax breakdown (Desglose) to declare. wenn der Datensatz keine Steueraufschlüsselung hat.

Wenn der 4102 von der AEAT kommt

Wenn die Antwort mit dem 4102 von der AEAT selbst stammt, hat der Datensatz die lokale Validierung bestanden, und die AEAT hat ihn mit ihrem Schema abgelehnt. Die naheliegende Erklärung ist, dass das Schema der AEAT und die Kopie im Modul nicht mehr übereinstimmen. In diesem Fall bringt ein erneuter Versand nichts: Schreiben Sie an comercial@flexigobe.com mit der vollständigen Antwort, dem Feld Raw Response der Warteschlange, damit wir die Schemakopie prüfen können.

Kann ich das Datum korrigieren und erneut versuchen?

Das hängt davon ab, wo das Datum steht. Der Kopfbereich wird bei jedem Versand aus den Unternehmensdaten zu diesem Zeitpunkt erstellt: Lag der Fehler im Namen, korrigieren Sie ihn und verwenden Sie Ausgewählte erneut senden unter AEAT-Fehler. Lag er in der NIF, reicht die Korrektur nicht aus, denn die NIF ist beim Buchen auch in den Hash jeder Rechnung eingeflossen, und der erneute Versand kommt mit 2000 zurück. Steht das Datum im Abrechnungsdatensatz der Rechnung, sendet ein erneuter Versuch dasselbe und schlägt wieder fehl. In diesen beiden Fällen schreiben Sie uns.

Geht die Rechnung verloren?

Nein. Der Datensatz bleibt in Odoo, verkettet, und die Warteschlange verarbeitet die ausstehenden Vorgänge alle 1 Minute, sobald das Problem behoben ist.

Weiterlesen

VeriFactu-Fehler beim Übermittlungsformat: nicht lesbares XML, UTF-8 und leere AnfragenVeriFactu-Fehler beim Übermittlungsformat (4103, 4119, 4135 bis 4138, 1100, 1251): nicht lesbares XML, UTF-8, GET oder leere Anfragen und wie Odoo sendet.VeriFactu-Fehler 4113 und 4114: zu viele Datensätze in einer einzigen ÜbermittlungVeriFactu-Fehler 4113 und 4114: zu viele Datensätze in einer Übermittlung. Das Limit von 1000 pro Anfrage, die Grenzen je Block und wie Odoo sie einhält.VeriFactu-Fehler 4134: «Servicio no activo», was mit Ihren Rechnungen passiert und wie Sie sie erneut sendenWas der AEAT-Fehler 4134 bei VeriFactu bedeutet, warum er die gesamte Übermittlung ablehnt und wie Sie Ihre Rechnungen in Odoo 17 bis 20 erneut senden.
Geprüft im Quellcode des Moduls (Version 20.0) und in den verlinkten Quellen

Quellen