Formato: lo que Odoo detiene antes
Al publicar una factura con NIF, el módulo lo valida antes de encadenarla: longitud de 9, dígitos, letra de control, NIE que empiece por X, Y o Z y CIF. Si algo falla, la factura no se publica y aparece Cannot post invoice: invalid counterparty identifier. seguido del motivo. Por eso los dos códigos de formato de la AEAT son raros con el módulo:
- 1123:
El formato del NIF es incorrecto. - 1290:
El campo ID no contiene un NIF con formato correcto.
Si un cliente no tiene NIF en Odoo, no hay nada que validar y la factura sale como simplificada, sin destinatario.

Censo: lo que solo sabe la AEAT
Un NIF puede estar perfectamente formado y no existir en el censo de la AEAT. Para eso hay varios códigos, y no todos tratan igual la factura:
| Código | Texto de la AEAT | Efecto |
|---|---|---|
| 1109 y 1110 | El NIF no está identificado en el censo de la AEAT. | Rechazan el registro. |
| 1121 | El campo ID no está identificado en el censo de la AEAT. | Rechaza el registro. |
| 1193 | En el bloque Destinatarios si se identifica mediante NIF, el NIF debe estar identificado y ser distinto del NIF ObligadoEmision. | Rechaza el registro. |
| 1154 | El NIF del emisor de la factura rectificada/sustitutiva no se ha podido identificar en el censo de la AEAT. | Rechaza el registro. |
| 2001 | El NIF del bloque Destinatarios no está identificado en el censo de la AEAT. | Acepta el registro y pide subsanarlo. |
La lista oficial trae el 1109 y el 1110 con el mismo texto y no explica qué los distingue. El 2001 sí está explicado en el documento de validaciones, como error admisible, y tiene su propia página.
Dos casos que conviene reconocer
El 1193 tiene una trampa: además de estar en el censo, el NIF del cliente tiene que ser distinto del tuyo. Una factura a tu propia empresa, con tu NIF como cliente, lo provoca.
El 1154 mira el bloque de la factura rectificada. En un abono, el módulo identifica la factura de origen con tu propio NIF como emisor, así que solo podría salir si el NIF de tu empresa no estuviera en el censo.

Nombre: el 1283
«Si el NIF de la contraparte es persona fisica se debe informar tambien de su NombreRazon». Con el módulo, el nombre siempre viaja junto al NIF: es el nombre del contacto y, si estuviera vacío, el propio número.
Qué hacer con un rechazo
- Comprueba el NIF con el cliente y corrígelo en su ficha de Odoo para las facturas siguientes.
- Recuerda que el envío sale del registro creado al publicar: la cola reintentará el mismo registro, con el NIF antiguo, hasta dejarlo en Dead Letter.
- Para la factura rechazada, escríbenos a comercial@flexigobe.com con su número y lo cerramos contigo.
Los códigos de esta página, con el texto de la AEAT
Cada código con su texto literal, tal como lo da la lista de errores de la AEAT:
| Código | Texto de la AEAT |
|---|---|
| 1109 | El NIF no está identificado en el censo de la AEAT. |
| 1110 | El NIF no está identificado en el censo de la AEAT. |
| 1121 | El campo ID no está identificado en el censo de la AEAT. |
| 1123 | El formato del NIF es incorrecto. |
| 1154 | El NIF del emisor de la factura rectificada/sustitutiva no se ha podido identificar en el censo de la AEAT. |
| 1193 | En el bloque Destinatarios si se identifica mediante NIF, el NIF debe estar identificado y ser distinto del NIF ObligadoEmision. |
| 1283 | Si el NIF de la contraparte es persona fisica se debe informar tambien de su NombreRazon |
| 1290 | El campo ID no contiene un NIF con formato correcto. |
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/account_move.py
- 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_aeat_client.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
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
