La orden renumera los campos españoles del anexo, y la AEAT confirma sus erratas
Quien programó para la solución pública con el borrador de abril delante tiene que rehacer casi todo lo español, y no puede fiarse del texto publicado al pie de la letra. Esto es lo que cambió, dónde falla la orden, qué contestó la AEAT y qué mide Glosa-e desde que salió.
Lo que se anunció y lo que salió
El 10 de septiembre la AEAT anunció, en un seminario para desarrolladores, que el anexo I del borrador de abril iba a cambiar: las rectificativas, el NIF del vendedor, el indicador de copia, las claves de régimen, las categorías del IVA y un mensaje para anular facturas. La orden salió en el BOE el 5 de octubre, entró en vigor el 6, y trae eso y bastante más:
| Abril | Orden | |
|---|---|---|
| Filas de la factura | 174 | 176 |
| Identificadores distintos | 155 | 149 |
Filas españolas (BT-ES y BG-ES) | 52 | 33 |
| Listas de códigos | L1 a L8 | L1 a L10 |
Los campos españoles se renumeran casi todos. De los 33 números
que tiene la orden, solo dos dicen lo mismo que en abril:
BT-ES-1, si la factura es el original o una copia, y
BG-ES-4, la retención aplicada. Los demás cambian de sentido
sin cambiar de nombre. BG-ES-1 era la extensión de las
rectificativas y ahora son los datos del tercero que expide la factura (está en la
entrada del 28 de
septiembre). BT-ES-10 era un centro administrativo del
comprador, y ahora identifica un suplido. Un programa que lea por número
leerá otra cosa sin dar ningún error.
Lo que cambia para quien programó con abril
- El NIF tiene dos sitios. Como NIF-IVA, con el prefijo ES
(
BT-31del vendedor,BT-48del comprador), o como NIF, conLOCy el atributoFC(BT-32yBT-47). Por la segunda vía, el del vendedor va dos veces, porque la orden pide tambiénBT-30. - El indicador de copia deja de ser obligatorio: sin él, la factura es el original. En la copia fiel hay que escribirlo, porque el artículo 4.3 pide que se identifique ahí.
- Las rectificativas salen de la extensión española y van en el
grupo de documentos justificativos de la norma europea
(
BG-24), conRECT:TIPO,RECT:MODALIDADyRECT:IMPORTES. - El recargo de equivalencia y el grupo de entidades dejan sus
líneas propias y pasan al desglose del IVA, con la categoría
N, nueva en la listaL4. LaL4gana también laDy laF, y sigue sin laK. - Los otros impuestos y tasas tienen grupo propio en los cargos
del documento (
BG-ES-2), y todo cargo de línea lleva ahora un código obligatorio de una lista nueva, laL9: los impuestos especiales uno por uno, yRESTOpara lo que no es un impuesto. - Lo pagado por adelantado (
BT-113) ya no tiene que ser cero: solo quedan fuera los anticipos que devengaron el IVA. Y hay campo para la fecha efectiva de pago (BT-ES-2): la factura que la trae cumple ya la comunicación del pago (artículo 7.4). - Las claves de régimen del IVA pierden la 18, la 19 y la 20, que eran el recargo de equivalencia, el régimen de agricultura, ganadería y pesca y el régimen simplificado.
- Los centros administrativos del comprador desaparecen del anexo.
- Y hay un anexo II entero: ocho mensajes de estado (el pago, el rechazo, el cobro y el impago, cada uno con su baja), además del mensaje de anulación que trae el anexo I.
Dónde falla el texto
La orden escribe el anexo en UBL, y da para cada campo la ruta del elemento donde va. Cada una de esas rutas se recorrió por los esquemas oficiales de UBL 2.5. De las 61 rutas distintas que traen los dos anexos, 13 no existen:
| Dónde | Qué falla | Rutas |
|---|---|---|
El impuesto o tasa de un cargo del documento
(BT-ES-6 a BT-ES-9) | Empiezan por
/in:Invoice/cac:Invoice, que no existe, y escriben
cac:TaxSubTotal, que es cac:TaxSubtotal | 5 |
| El mensaje de anulación | Cuelga la factura anulada de
cac:Response, que no la admite. En UBL va en
cac:DocumentResponse, que es donde la pone el propio anexo
II | 6 |
La tipología del tercero (BT-ES-5) | Cuelga
cbc:ServiceTypeCode de cac:Party, y es hijo de
cac:ServiceProviderParty | 1 |
La situación del inmueble y el impuesto (IVA, IGIC o IPSI) de la
clave de régimen (BT-ES-23 y BT-ES-24) | La raíz va en
minúscula: /in:invoice | 1 |
Las siete de la factura tienen una sola corrección posible, y Glosa-e las
lee corregidas. Las del mensaje de anulación, no. Tal
como está publicado, ese mensaje no pasa el esquema de UBL. Y escribe el
nombre del vendedor dentro de una cac:PartyLegalEntity colgada
de cac:PartyTaxScheme, que no la admite: sobra uno de los dos,
y el texto no dice cuál.
Hay fallos que no son de ruta. La descripción de BT-48, el
NIF-IVA del comprador, lo llama NIF del vendedor. La fila BT-3 habla
de hasta tres grupos de importes rectificados, y el grupo admite cinco.
Los dos anexos tienen una lista L1, y son distintas: la de tipos de
factura y la de motivos de rechazo. Y el identificador del proceso
(BT-23) no es el que escribió la propia AEAT en el ejemplo que
mandó por correo el 2 de octubre: el de la orden lleva ubl: y el del
ejemplo no.
Lo que contestó la AEAT
Ocho preguntas, con las erratas menores, se mandaron al buzón técnico de la AEAT el 7 de octubre. Contestó el 13, punto por punto, y dijo que corrige el anexo y que lo publicará en su portal para desarrolladores. Mientras no esté publicado, Glosa-e mide el texto del BOE con lo que contestó por escrito, y donde las dos cosas no casan, lo que dice el BOE sale con un aviso y no con un error. Esto es lo que contestó de lo que toca al anexo:
| Se preguntó | Contestó | En Glosa-e |
|---|---|---|
| Dónde va la factura anulada en el mensaje de anulación | Sobra
cac:Response: va en cac:DocumentResponse, como
en el anexo II | La anulación escrita al pie de la letra sale con el error del esquema, que es lo que tiene. Los datos de la factura anulada se buscan en los dos sitios, y la nota de cada anulación dice lo que contestó |
| Dónde va el nombre del vendedor en la anulación | En
cac:PartyLegalEntity, como en el anexo II | Si va donde lo escribe la orden, se encuentra y sale un aviso |
| Qué esquema de impuesto lleva el NIF de los mensajes, que ninguna fila da, y si va con ES | cac:TaxScheme puede ir
vacío, y el NIF va sin ES | Con ES también se acepta, porque del código único contestó que, si viene, se trata igual |
Qué identificador del proceso vale (BT-23) | El
del ejemplo, sin ubl:, como el resto de campos | El del ejemplo pasa limpio, y el de la orden sale con un aviso. Hasta el 13, el de la orden pasaba limpio y el del ejemplo salía en una nota |
Si el calificador de las listas L7, L8
y L10 va delante del valor, porque las filas dan solo el
valor | Sí: el calificador seguido del valor, como en su ejemplo | Un valor sin su calificador sale con un aviso, que es
una regla nueva, SPFE-CALIFICADOR, y se sigue leyendo para
medir lo demás |
| Cómo se forma el código único, que la orden remite a un anexo que no lo dice | Son los tres datos por separado: el NIF sin ES, la serie seguida del número sin separador y la fecha en AAAA-MM-DD | Nada: ya se comparaban así |
Qué cuota lleva BT-ES-8 cuando un cargo tiene dos
impuestos, que la sintaxis no admite | Lo están estudiando, y piden el caso concreto | Sigue saliendo una nota |
| Las siete rutas de la factura que tienen una sola corrección | Corregidas | Nada: ya se leían así |
Los grupos de importes rectificados: cinco en la tabla y hasta
tres en BT-3 | Corregido a 0..1. El
ejemplo que mandó ese día lleva tres, uno por cada importe de la lista
L2.C (base, cuota y cuota del recargo) | Se lee como uno por cada importe, que es la lectura en la que casan la fila, la respuesta y el ejemplo: un importe repetido sale con un aviso |
La descripción de BT-48, que llama al comprador
vendedor | Corregida | El NIF-IVA del comprador sin el prefijo de España salía con un aviso, porque no se sabía si la fila era suya. Ahora sale con un error, como el del vendedor |
De la cuota de BT-ES-8 se les mandará el caso que piden, y
lo que contesten se dirá aquí.
Lo que mide Glosa-e desde que salió
Cuando salió la orden, Glosa-e medía el borrador de abril, y el 6 de
octubre se midió lo que eso suponía: seis de sus reglas daban por mala una factura
escrita como manda la orden (el identificador del proceso, el
indicador de copia, el NIF, lo pagado por adelantado, las líneas de cobro y
las retenciones), y la categoría N, nueva, la tumbaba además la
capa europea. Se corrigió al día siguiente. Desde el 11 de octubre, lo que
se mide sale de las tablas del XML del BOE y no del PDF del borrador, y
desde el 13, con lo que contestó la AEAT. Hoy son tres cosas:
- La factura de la solución pública, contra el anexo I: 30
reglas propias, las
SPFE-, además de las de la norma europea. - Los mensajes de anulación y de estado: los nueve, con 6 reglas más.
- La copia fiel: para una factura Facturae, qué le pasa a cada concepto al copiarlo a la solución pública, en una tabla de 107 filas que nombra los 33 campos españoles. Por qué hace falta, en la entrada del 21 de septiembre.
Y lo que no mide se dice en cada informe. La orden deja a la Sede
electrónica de la AEAT las especificaciones técnicas, la volumetría y los
servicios web, y eso aquí no se mide. Del código único, la AEAT contestó
cómo se forma, pero no cuánto puede medir la serie y número: aquí se toma
el tope de VeriFactu, 60 caracteres. Y hay tres campos que son términos de
la edición de 2026 de la norma europea: el importe y la descripción de las
líneas de cobro (BT-179 y BT-180), que es donde
van los suplidos, los otros impuestos, las minoraciones y las retenciones,
y el código del motivo de exención de la línea (BT-195). La
orden no les da ruta: remite a la vinculación UBL de esa edición, la
UNE-CEN/TS 16931-3-2:2026, que aquí no se ha podido leer. Que el informe no
saque ninguna queja no quiere decir que la factura cumpla la orden, y lo
dice la nota
SPFE-ALCANCE en cada
factura de la solución pública.