Lo que admite la AEAT
El documento de validaciones de la AEAT fija la regla para NumSerieFactura: solo caracteres ASCII del 32 al 126, los imprimibles, y entre ellos están prohibidos estos cinco.
| Carácter | Código ASCII |
|---|---|
Comillas dobles " | 34 |
Apóstrofo ' | 39 |
Menor que < | 60 |
Mayor que > | 62 |
Igual = | 61 |
Fuera del rango quedan las letras con tilde, la eñe, la ç, el símbolo de ordinal º o el del euro. Barras, guiones, puntos y espacios sí entran en el rango.

Los tres códigos
- 1104
El valor del campo NumSerieFactura es incorrecto.El genérico: el número no es válido para la AEAT.- 1130
El campo NumSerieFactura contiene caracteres no permitidos.El caso concreto de un carácter fuera de la regla.- 1287
- «El valor del campo %s contiene carácteres no validos (<, >, ", ', =).» La versión general, que en la respuesta real trae el nombre del campo en lugar de %s.
De dónde sale el número en Odoo
El módulo envía como NumSerieFactura el número que Odoo dio a la factura al publicarla, el mismo que ves en la factura y en el PDF. Ese número lo genera la secuencia del diario de ventas, con su prefijo. Solo si la factura no tuviera número, el módulo construiría uno con el prefijo de la serie de VeriFactu y seis cifras.
Por eso el origen de un 1130 casi siempre es el prefijo de la secuencia del diario: un código de diario con eñe, un prefijo como «FAC-Nº» o una serie con comillas. El formato habitual de Odoo, con barras y el año, cumple la regla.

Cómo se arregla
Para las facturas nuevas, cambia el prefijo de la secuencia del diario para que solo use caracteres admitidos. A partir de ahí, las siguientes saldrán bien.
Para las ya rechazadas, el arreglo es más delicado. El número de una factura publicada no se cambia en Odoo, y el registro de facturación guarda el que tenía al publicarse: la cola lo reintentará con él hasta dejarlo en Dead Letter. Para la AEAT, esa factura nunca se registró, y lo que prevé para corregirla es un alta por rechazo, con los datos buenos. Cómo encaja eso con un número que tenía un carácter prohibido depende de tu caso, así que escríbenos a comercial@flexigobe.com antes de emitir nada nuevo.
¿Afecta a facturas emitidas antes de VeriFactu?
No: solo a los registros que se envían a la AEAT. Pero si una serie antigua sigue en uso, revisa su prefijo antes de que llegue la primera factura.
Un número de factura no puede repetirse con la misma fecha y el mismo NIF: si dos registros coinciden en los tres datos, la AEAT contesta con el error 3000.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cadena.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_registro.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
