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.

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:
- Beim Buchen der Rechnung Ihr Abrechnungsdatensatz wird erstellt und ändert sich danach nicht mehr.
- Beim nächsten Durchlauf der Warteschlange Jeder ausstehende Datensatz wird in XML umgewandelt und gegen das Schema validiert.
- Wenn ein Datensatz nicht entspricht Er wird in Odoo mit der Meldung des Schemas als abgelehnt markiert, ohne AEAT-Code, und wird nicht versendet.
- 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.

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
Geprüft im Quellcode des Moduls (Version 20.0) und in den verlinkten Quellen
Quellen
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (aa2ea3d2): data/verifactu_crons.xml
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_registro.py
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
- Quellcode des Moduls: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cadena.py
