Este módulo ha sido desarrollado para automatizar y garantizar el cumplimiento fiscal en WHMCS mediante la validación de exenciones de NIF/VAT de clientes. Su objetivo principal es verificar, de forma automática y segura, si un cliente puede acogerse a la exención de IVA, ya sea por operar dentro de la Unión Europea o por normativa fiscal específica (como el caso de empresas intracomunitarias o sujetos pasivos fuera de España).
El sistema integra validaciones en tiempo real con servicios oficiales y lógicos personalizados, asegurando que únicamente se apliquen exenciones cuando proceda legalmente. Además, permite mantener un registro trazable y auditable de cada validación realizada, facilitando el cumplimiento con la normativa española y europea vigente.
Este módulo es ideal para empresas que gestionan clientes internacionales o que necesitan cumplir con los requisitos de control fiscal exigidos por Verifactu y otras autoridades tributarias.
Instalación y desinstalación #
¿Cómo instalar el módulo? #
- Sube los archivos necesarios a tu carpeta public_html/whmcs/modules/addons/
- Diríjete en WHMCS a Ajustes/Módulos Extra y activa el módulo “Validar Exenciones NIF y VAT“
- Introduce la Clave de Licencia, selecciona la ubicación fiscal de tu empresa y activa el Check Full administrator

¿Cómo desinstalar el módulo? #
CUIDADO: Si has generado facturas con el módulo activado y quieres conservar los textos de exención, no elimines la tabla mod_validarexenciones_facturas o perderás los textos de las facturas.
- Diríjete en WHMCS a Ajustes/Módulos Extra y desactiva el módulo “Validar Exenciones NIF y VAT“
- Diríjete en WHMCS a Ajustes/Campos personalizados y elimina el campo “Motivo de exención” y el campo “Tipo de cliente” si no los vas a utilizar más.
- Si no quieres tener restos en la base de datos, elimina las tablas siguientes:
- mod_validarexenciones_cola
- mod_validarexenciones_facturas (Cuidado con esta, revisa el warning de arriba)
- mod_validarexenciones_logs
Configuración Inicial #
Configuración del módulo #

- Ubicación Fiscal de tu empresa: Selecciona si tu emperesa está en Península, Canarias, Ceuta o Melilla: Según lo que selecciones los textos legales y las exenciones actuarán en consecuencia.
- Clientes a incluir en el recálculo: Este selector sólo indica que clientes revisarás en el caso de que quieras hacer una sincronización inicial, para que todos tus clientes tengan sus exenciones y textos de exención adecuados. El recálculo en principio sólo lo deberías hacer la primera vez.
- Habilitar validación de VAT y exención automática de impuestos: Esto te permite que cuando un cliente de la Comunidad Europea se registre, verificará con VIES si el VAT es válido, en caso de serlo lo pondrá exento de impuestos y le aplicará el texto legal a la factura. SI no eres operador intracomunitario, no lo marques. Si eres operador intracomunitario tu VAT empieza por “ES”. El módulo no marcará exentos a los clientes de España aunque pongan un VAT válido, ya que legalmente no pueden ser exentos por motivo de VAT.
- Habilitar campo “Tipo de cliente”: Este campo es muy recomendable activarlo, sobre todo si tu empresa está en la península. Al activarlo se creará el campo personalizado para tipo de cliente Persona física o Autónomo/Empresa.
Cuando por ejemplo tenemos un cliente de Canarias, si es persona física es exento por la normativa “…”, pero si el cliente es autónomo o empresa, además de ser exento, debe tener el texto de inversión de sujeto pasivo, por tanto, tener este campo, hará que cada tipo de cliente tenga el texto oportuno y correcto en las facturas.

- Eliminar logs más antiguos de: El módulo genera logs de los cambios de exenciones que se han ido produciendo, y los podemos ver desde el panel. Esto es útil para saber cuando se marcó como exento o no exento a un cliente, qué motivo de exención se le asignó y qué acción lo produjo. Esta opción nos permite definir cuánto tiempo mantendremos esos logs.
- Modo Debug: Activar sólo en caso de problemas
Recalcular o simular exenciones #
Esta sección está pensada para la primera puesta en marca, después de que se haya realizado toda la configuración.
Simular recálculo #

Cuando hacemos click sobre el botón simular recálculo, no hemos de temer nada, puesto que lo único que hace es preparar un archivo JSON donde nos muestra todos los cambios que se van a realizar en los clientes. Ese archivo se guarda en la carpeta /tmp del módulo y se eliminará cuando le demos a aplicar cambios, tras aplicarlos elimina el archivo. Si volvemos a dar a Simular, el archivo se sustituirá por el nuevo simulacro.
Aplicar Cambios simulados #
Al hacer click, se aplicarán los cambios que nos ha propuesto el simulador.
¿Cuándo usar el simulador? #
El simulador es una herramienta que está pensada para utilizar sólo en la primera puesta en marcha del módulo, o en caso de que nuestra empresa cambie su ubicación fiscal.
Código de integración en Facturas #
En la pestaña “Integración” del módulo, encontrarás los códigos necesarios para integrar en viewinvoice.tpl e invoicepdf.tl . Usa estos códigos para hacer que los motivos de exención aparezcan en tus facturas.
Crons #
Revalidar VAT #
Este cron se puede configurar 1 vez al mes. Se encargará de comprobar qué clientes tienen un VAT intracomunitario y los pondrá en una Cola para comprobar de nuevo en VIES. Esto es muy útil para comprobar si un VAT sigue estando dado de alta, y en caso de no estarlo quitarle la exención de impuestos. O si no era exento y ahora sí, se le aplica la exención.
Procesar Cola #
Este cron se puede configurar cada 10 minutos. No actuará si no hay nada en la cola, pero cuando Revalidar VAT se ejecute y cree una cola… este cron irá lanzando la cola por paquetes cada 10 minutos, así evitamos carga en el servidor y consultas constantes a VIES.
Configurar los crons #
Cronjob para Iniciar revalidación #
(ejemplo cada día 1 del mes a las 0:00h)
0 0 1 * * /usr/local/bin/php /home/whmcs/public_html/modules/addons/validarexencionesnifvat/crons/revalidar_vat.php
Cronjob para procesar la cola #
(ejemplo cada 10 minutos)
*/10 * * * * /usr/local/bin/php /home/whmcs/public_html/modules/addons/validarexencionesnifvat/crons/process_queue.php
Cola de procesamiento VAT #
Esta sección del módulo nos muestra la lista de los clientes con VAT que nos quedan por procesar desde la cola de procesamiento que ha generado el primer cron. Esta cola se va limpiando a medida que el segundo cronjob se va ejecutando.
En ella podemos ver:

- Id Cliente: El id del cliente
- VAT: El Vat number que estamos comprobando
- Intentos: Cuantos intentos se han hecho contra VIES (Vies a veces puede fallar, por eso se va intentando en cada ejecución del cron)
- Procesado: Si no ha sido procesado de forma satisfactoria con una respuesta válida. Esto sólo indica que no se ha procesado, ya sea porque aún no le toca o porque se ha reintentado sin éxito. De echo cuando se ha procesado ese VAT desaparece de la lista.
- Fecha: Fecha y hora en la que se incluyó en la cola de procesamiento.
- Eliminar: En el caso de que veamos que un VAT lleva muchos reintentos, lo podemos eliminar de la cola para que no siga intentando procesarse, de esta forma podemos hacer una revisión manual.
- Eliminar toda la cola: Elimina de la lista de procesamiento todos los VATS y no se procesarán si no ejecutamos de nuevo el primer CRON o hasta que se ejecute en la fecha que le hayamos configurado, momento en el que volverán a la cola.
Logs #
Esta pestaña nos muestra los logs de los últimos cambios en exenciones de clientes. Nos mostrará el estado anterior, el nuevo estado y el texto de exención en caso de haber pasado a exento.
Es posible que veamos un cliente que en estado anterior fuera exento, y en el nuevo también… y aparezca en la lista, en ese caso, lo más probable es que haya tenido un cambio en el texto de exención, eso es correcto.
Los logs almacenan la fecha y hora del cambio y la acción que ha llevado al cambio (Creación de cliente, edición de cliente o cronjob).

Podemos eliminar los Logs.
Podemos Buscar Logs por Id de cliente o nombre
La configuración del tiempo de almacenado de los logs se realizan desde la pestaña de configuración del módulo.
Client Area #
En el área de clientes, desde el punto de vista del cliente, se ejecutarán estas acciones:
- Comprobará si el formato de NIF de un cliente en el caso de seleccionar como país España, es válido. En caso de no serlo, el botón de REGISTRO quedará desactivado hasta que el NIF sea válido (se muestra un mensaje de advertencia al cliente)
- Si el NIF tiene formato de empresa marcará al cliente como autónomo/empresa de forma automática.
- Si el NIF no tiene formato empresa, borrará y ocultará el campo “nombre de empresa”, puesto que un particular o autónomo NO tiene nombre de empresa, y no forzará el tipo de cliente a autónomo/empresa, ya que no sabemos si se trata de un particular o autónomo, por lo tanto el cliente lo seleccionará personalmente.
- Si el país seleccionado es de la Comunidad Europea (excepto España) y se introduce un identificador en formato VAT number, mostrará un mensaje de que se comprobará. Al procesar el registro el VAT será validado o no para dejar al cliente exento si fuera necesario.


Client Edit #
Cuando editamos a un cliente, y guardamos los datos, o cuando el propio cliente edita sus datos… se harán las validaciones oportunas durante el guardado.
Ejemplo 1: Si como administradores tenemos un cliente con un VAT válido, que el sistema ha marcado exento, y le marcamos manualmente como no exento… cunado se guarde el cambio, el sistema comprobará de nuevo la validez del VAT y automáticamente lo marcará como exento aunque nosotros le indiquemos lo contrario.
Ejemplo 2: Un cliente cambia su dirección fiscal, y este cliente estaba en Barcelona (por lo tanto según estos ejemplo NO ERA EXENTO). Si ahora el cliente cambia su dirección fiscal y la nueva está en Canarias, el cliente pasará automáticamente a exento al guardar los cambios.
* Consejo: Bajo ninguna cirtunstancia debería permitirse a un cliente cambiar datos como Nombre de empresa, Número Identificación fiscal.
Si un cliente quiere cambiar alguno de estos datos, lo mejor es que se abra otra cuenta de cliente, porque esto puede afectar a otras integraciones que tienen tratamientos fiscales como Verifactu para WHMCS, Facturas rectificativas para WHMCS o integración con QUIPU para WHMCS.