Salta al contingut principal
VeriFactu

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

El 4102 és l'error d'estructura per excel·lència: a l'XML que rep l'AEAT li falta un camp que l'esquema exigeix. Com que és una fallada estructural, l'AEAT rebutja la petició sencera, amb totes les factures que portés. Amb el nostre mòdul, el normal és veure'l abans que surti res, a Odoo, i no com a resposta de l'AEAT.

FlexigoTech · Responsable: Víctor Gómez · Actualitzat el 4 de novembre de 2026

L'essencial

Mòdul
VeriFactu
Versions
Odoo 17, 18, 19 i 20
Comprovat
al codi del mòdul, versió 20.0 · a les fonts enllaçades al final
Lectura
3 min

Per què fa caure l'enviament sencer

El document de validacions de l'AEAT distingeix tres tipus de comprovació: estructurals, sintàctiques i de negoci. Les estructurals miren que l'XML compleixi l'esquema, amb les seves etiquetes obligatòries, i si fallen el rebuig és del missatge sencer. Aquest rebuig arriba com un SoapFault i no queda registrada cap factura de la petició, tampoc les que estaven bé.

El text de la llista oficial ho diu tal qual: «El XML no cumple el esquema. Falta informar campo obligatorio.» És al primer apartat, el dels codis que rebutgen l'enviament sencer.

Targeta del codi 4102 de VeriFactu
El 4102 en vermell: rebutja la petició sencera i, a la cua del mòdul, deixa l'enviament en Failed.

El que fa el mòdul perquè no arribi

Un sol registre mal format arrossegaria tots els altres del mateix enviament. Per evitar-ho, el mòdul valida cada registre contra l'esquema oficial de l'AEAT abans d'enviar-lo. En porta una còpia a dins, el fitxer SuministroLR.xsd amb les seves dependències, i el recorregut és aquest:

  1. En publicar la factura Es crea el seu registre de facturació, que ja no canvia.
  2. A la volta següent de la cua Cada registre pendent es converteix en XML i es valida contra l'esquema.
  3. Si un registre no el compleix Es dona per rebutjat a Odoo amb el missatge de l'esquema, sense codi de l'AEAT, i no surt.
  4. La resta Surt cap a l'AEAT a la mateixa petició, sense el registre dolent.

Així, un registre defectuós no s'emporta per davant les factures bones que viatgen amb ell.

Com ho veuràs a Odoo

A la cua d'enviament, el registre aturat apareix en Failed amb el missatge del validador a l'últim error, en lloc d'un codi de quatre xifres. Aquest missatge anomena l'element que falta o que sobra, que és just el que necessites per saber d'on ve. A la llista de registres de facturació, el seu estat és «Rechazado AEAT», encara que l'AEAT no el va arribar a veure.

Cua d'enviament a l'AEAT agrupada per estat
La cua agrupada per estat: els enviaments en Failed són els que no es tornaran a provar sols. Captura d'Odoo 20 amb dades de demostració; les respostes de l'AEAT són simulades.

Fins i tot abans de l'esquema, hi ha dades sense les quals el mòdul ni tan sols construeix l'XML, i t'ho diu amb el seu propi missatge:

  • Company … has no NIF for Veri*Factu. quan l'empresa no té NIF.
  • Record … has no tax breakdown (Desglose) to declare. quan el registre no té desglossament d'impostos.

Si el 4102 arriba de l'AEAT

Si la resposta amb el 4102 ve de la mateixa AEAT, el registre va passar la validació local i l'AEAT el va rebutjar amb el seu esquema. L'explicació raonable és que l'esquema de l'AEAT i la còpia que porta el mòdul ja no coincideixen. En aquest cas no serveix de res tornar a enviar: escriu-nos a comercial@flexigobe.com amb la resposta completa, el camp Raw Response de la cua, perquè revisem la còpia de l'esquema.

Puc corregir la dada i tornar-ho a provar?

Depèn d'on sigui la dada. La capçalera es munta a cada enviament amb les dades de l'empresa d'aquell moment: si la fallada era al nom, corregeix-lo i fes servir Retry Selected a AEAT Errors. Si era al NIF, corregir-lo no n'hi ha prou, perquè el NIF també va entrar a l'empremta de cada factura en publicar-la i el reenviament torna amb el 2000. Si la dada és al registre de la factura, el reintent envia el mateix i tornarà a fallar. En aquests dos casos, escriu-nos.

Es perd la factura?

No. El registre continua a Odoo, encadenat, i la cua processa el que està pendent cada 1 minut tan bon punt el problema es resol.

Continua llegint

Errors de VeriFactu amb el format de l'enviament: XML il·legible, UTF-8 i peticions buidesErrors de VeriFactu del format de l'enviament (4103, 4119, 4135 a 4138, 1100, 1251): XML il·legible, UTF-8, GET o peticions buides, i com envia Odoo.Errors 4113 i 4114 de VeriFactu: massa registres en un mateix enviamentEls errors 4113 i 4114 de VeriFactu: massa registres en un enviament. El límit de 1000 per petició, el de cada bloc i com el respecta Odoo 17 a 20.Error 4134 de VeriFactu: «Servicio no activo», què passa amb les teves factures i com tornar-les a enviarQuè vol dir l'error 4134 de l'AEAT a VeriFactu, per què rebutja l'enviament sencer i com tornar a enviar les factures des d'Odoo 17, 18, 19 i 20.
Comprovat al codi del mòdul (versió 20.0) i a les fonts enllaçades

Fonts