Es uno de los casos que más se repite en proyectos Veri*Factu públicos: un cliente de Portugal, su número fiscal guardado en la ficha sin el prefijo del país, y el software lo envía como si fuera un NIF español.
Por qué no puede ser un NIF español
Un NIF español siempre lleva una letra: al final en el DNI (12345678Z), al principio en el NIE (X1234567L) y en el de las entidades (B26580886). Nueve cifras sin ninguna letra no tienen forma de NIF español. Portugal, Grecia y otros países sí usan números de nueve cifras.
Qué valida la AEAT
El documento oficial de validaciones de la AEAT (v1.2.2) establece, para el destinatario:
- Se informa NIF o IDOtro, nunca los dos, y uno de ellos es obligatorio.
- Si se usa
IDOtroconIDType«02» (NIF-IVA), el identificador debe ajustarse a la estructura de NIF-IVA de algún Estado miembro y estar identificado. - Con
IDType«02», el campoCodigoPaisno es exigible. - Con
IDOtroeIDType«02», elTipoFacturadebe ser F1, F3, R1, R2, R3 o R4.
Y en la lista oficial de códigos de error, un NIF del bloque Destinatarios que no está identificado en el censo de la AEAT produce el 2001: el registro se acepta, pero con errores que después hay que subsanar. Ver error 2001.
Cómo va en el registro
<IDDestinatario>
<NombreRazon>Cliente Lda.</NombreRazon>
<IDOtro>
<CodigoPais>PT</CodigoPais>
<IDType>02</IDType>
<ID>PT500077568</ID>
</IDOtro>
</IDDestinatario>
CodigoPais no es obligatorio con IDType 02, pero no estorba y deja claro el país en tus propios datos.
Cómo detectarlo antes de enviar
FiscalGrid Sentinel lo detecta en la comprobación gratuita. Para 500077568 devuelve FOREIGN_WITHOUT_PREFIX y ok_to_send: false. Con el prefijo, PT500077568, consulta VIES y, si es válido, devuelve SEND_AS_IDOTRO_02 con el país y el identificador listos para el registro.
curl -X POST https://fiscalgrid.io/api/check \
-H "Content-Type: application/json" \
-d '{"id":"500077568"}'
Pruébalo con tu propio cliente, sin registro.
Fuentes
- AEAT · Documento de validaciones y errores Veri*Factu v1.2.2 (08/04/2026)
- AEAT · Lista de códigos de error (errores.properties)
Información general, no asesoramiento fiscal ni jurídico.