Cómo identifica Odoo a un cliente extranjero
El módulo decide el tipo de identificador al publicar la factura, con dos campos del contacto: el país y el NIF.
- Cliente con país España o sin país
- Va en el campo NIF. Si el número empieza por X, Y o Z, se trata como NIE.
- Cliente de otro país de la UE
- Va en IDOtro con IDType 02 (NIF-IVA) y sin CodigoPais.
- Cliente de fuera de la UE
- Va en IDOtro con el CodigoPais de su país e IDType 04, o con IDType 03 (pasaporte) si el número tiene más de 20 caracteres o ninguno alfanumérico.
El número viaja con 20 caracteres como máximo. Con esto delante, casi todos los códigos de abajo se explican mirando el país y el NIF del contacto.

Los códigos, uno a uno
| Código | Lo que dice la AEAT | Qué mirar |
|---|---|---|
| 1239 | Error en el bloque Destinatario. | El bloque entero: país, NIF y nombre del contacto. |
| 1101 | El valor del campo CodigoPais es incorrecto. | El país del contacto. |
| 1102 | El valor del campo IDType es incorrecto. | El tipo de documento que se dedujo. |
| 1103 | El valor del campo ID es incorrecto. | El número del contacto. |
| 1111 | El campo CodigoPais es obligatorio cuando IDType es distinto de NIF-IVA (02). | Un cliente sin país en Odoo. |
| 1122 | El campo CodigoPais indicado no coincide con los dos primeros dígitos del identificador. | Un número con el prefijo de otro país. |
| 1126 | El valor del CodigoPais solo puede ser ES cuando el IDType sea Pasaporte (03) o No Censado (07)… | Un cliente español enviado por IDOtro. |
| 1131 | El valor del campo ID ha de ser el NIF de una persona física cuando el campo IDType tiene valor No Censado (07). | El tipo 07, que el módulo no usa. |
| 1222 | El valor del campo ID del bloque IDOtro es incorrecto. | El número de un cliente de fuera. |
| 1232, 1233 y 1234 | IDOtro con CodigoPais ES exige IDType 03, 07 o uno de los dos. | El país España en un cliente con pasaporte. |
| 1254 y 1255 | NIF-IVA de Reino Unido: XI no se admite antes de 01/01/2021 y GB no se admite desde 01/02/2021. | La fecha de la operación y el prefijo. |
Para el IDType 02 la AEAT comprueba además que el número tenga la estructura de NIF-IVA del Estado miembro y que esté en mayúsculas. En la práctica, el NIF de un cliente europeo tiene que ir en Odoo con su prefijo de país, tal como lo valida el VIES.
Qué pasa en Odoo cuando la AEAT lo rechaza
Estos códigos rechazan el registro, no el envío: las demás facturas de la misma petición entran. La cola deja el rechazado en Retrying y lo vuelve a mandar con esperas cada vez más largas, de 2 minutos a 12 horas; al sexto intento lo pasa a Dead Letter y el registro queda como «Error permanente».

Reintentar no cambia nada si el dato está mal, porque el envío sale del registro que se creó al publicar la factura, no del contacto. Por eso el arreglo tiene dos partes:
- Corrige el país o el NIF del contacto, para que las siguientes facturas salgan bien.
- Para la factura ya rechazada, la AEAT prevé un alta por rechazo, con Subsanacion S y RechazoPrevio X. El módulo publicado no genera ese registro por sí solo: escríbenos a comercial@flexigobe.com con el número de la factura y lo resolvemos 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 |
|---|---|
| 1239 | Error en el bloque Destinatario. |
| 1101 | El valor del campo CodigoPais es incorrecto. |
| 1102 | El valor del campo IDType es incorrecto. |
| 1103 | El valor del campo ID es incorrecto. |
| 1111 | El campo CodigoPais es obligatorio cuando IDType es distinto de NIF-IVA (02). |
| 1122 | El campo CodigoPais indicado no coincide con los dos primeros dígitos del identificador. |
| 1126 | El valor del CodigoPais solo puede ser ES cuando el IDType sea Pasaporte (03) o No Censado (07). Si IDType es No Censado (07) el CodigoPais debe ser ES (España). |
| 1131 | El valor del campo ID ha de ser el NIF de una persona física cuando el campo IDType tiene valor No Censado (07). |
| 1222 | El valor del campo ID del bloque IDOtro es incorrecto. |
| 1232 | Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ES (España), el campo IDType debe valer Pasaporte (03). |
| 1233 | Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ES (España), el campo IDType debe valer No Censado (07). |
| 1234 | Si se identifica a través de la agrupación IDOtro y CodigoPais tiene valor ES (España), el campo IDType debe valer Pasaporte (03) o No Censado (07). |
| 1254 | Si FechaOperacion (FechaExpedicionFactura si no se informa FechaOperacion) es anterior a 01/01/2021 no se permite el valor 'XI' para Identificaciones NIF-IVA |
| 1255 | Si FechaOperacion (FechaExpedicionFactura si no se informa FechaOperacion) es mayor o igual que 01/02/2021 no se permite el valor 'GB' para Identificaciones NIF-IVA |
Si el código que ves no está en esta tabla, el catálogo completo está en Envío a AEAT › Catálogo de Errores AEAT, con el texto literal de la AEAT.
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_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
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): data/verifactu_error_catalogue.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
