A veces nos encontramos casos especiales de la legislación de un país que hace que haya que «jugar» con un plugin para poder adaptarlo a la legalidad. Uno de los casos más paradigmáticos en España es el de la exención de IVA a los profesionales y empresas de la Unión Europea, que hace que tengamos que hacer algunos retoques a nuestro plugin de emisión de facturas.
Me lo consultan mucho, así que entiendo que si lo dejo aquí por escrito ayudará a bastante gente. Vamos a ver, paso a paso, cómo tenemos que hacer para que las facturas emitidas en WooCommerce salgan sin IVA para las empresas y profesionales europeos registrados en el VIES.
Tabla de contenidos
Exención de IVA a los profesionales de la Unión Europea
En España están exentas de IVA las operaciones entre profesionales y/o empresas de la Unión Europea que no sean españolas. Concretamente, el artículo 25 de la Ley 30/1992 del Impuesto sobre el Valor Añadido dice:
Estarán exentas del impuesto las siguientes operaciones:
Uno. Las entregas de bienes definidas en el artículo 8 de esta Ley, expedidos o transportados, por el vendedor, por el adquirente o por un tercero en nombre y por cuenta de cualquiera de los anteriores, al territorio de otro Estado miembro, siempre que el adquirente sea un empresario o profesional o una persona jurídica que no actúe como tal, que disponga de un número de identificación a efectos del Impuesto sobre el Valor Añadido asignado por un Estado miembro distinto del Reino de España, que haya comunicado dicho número de identificación fiscal al vendedor.
Es decir, que la operación está exenta de IVA siempre que:
- El comprador sea un profesional o empresa de la Unión Europa que no sea España (el hecho de actuar como vendedores ya significa que nosotros somos también un profesional o una empresa).
- Debe ser un país diferente del nuestro, es decir, la exención no es aplicable entre profesionales o empresas españolas, que liquidamos el IVA trimestralmente por medio del modelo 303.
- El comprador debe estar registrado en el ROI (Registro de Operadores Intracomunitarios) o VIES (VAT Information Exchange System, Sistema de Intercambio de Información sobre el IVA). Para nosotros poder operar con otros países de la UE también debemos estar registrados en él.
- Emitirse sin IVA.
- Incluir el addendum («coletilla») Operación exenta de IVA por aplicación de lo dispuesto en el artículo 25 de la Ley 37/1992 del IVA dentro del cuerpo de la factura.
Si se cumplen esas tres condiciones, la operación ha de estar exenta de IVA. En ese caso la factura debe:
Y ahí está la cuestión, porque los plugins para emisión de facturas para WooCommerce no contemplan esta situación. Vamos a ver cómo podemos conseguir cumplir la ley correctamente al vender a otros profesionales de la Unión Europea. Para eso necesitaremos configurar bien varias cosas.
Configuración de los impuestos
Esto ya está explicado hasta la saciedad (aquí abajo te enlazo una entrada donde explico paso a paso todo el proceso). Simplemente a tener dos cosas en cuenta:
- Debes tener los impuestos correctamente configurados, como es normal.
- En las tarifas tienes que configurar el IVA de los países de la Unión Europa, incluso aunque no vendas a particulares. Como hemos visto, esta tarifa no se aplicará a los profesionales/empresas, pero WooCommerce debe saber cuál es para poder aplicar el precio sin IVA.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Validar el número de IVA Europeo
Para poder hacer funcionar el sistema correctamente hay que validar que el número de IVA Europeo que introduce el comprador es correcto y está registrado en el VIES, en cuyo caso se aplicará la exención de IVA a la operación.
Para esto sí hay plugins, el más recomendable de los cuales es el oficial de WooCommerce, WooCommerce EU VAT Number, que funciona genial y es muy sencillo de configurar.
El plugin se ocupa de verificar que el número de IVA Europeo introducido por el cliente en el checkout es correcto, está registrado en el VIES, y no se encuentra en el mismo país que la tienda. En ese caso, el pedido queda exento de IVA, se registra como tal, y se ajustan los totales.
Configurar facturas
Aquí es donde empezamos a tener trabajo, y lo que de verdad te va a ser de utilidad (los puntos anteriores tienen poca o nula dificultad y entran en una configuración más o menos estándar). Vamos a empezar con el tema de las facturas. Para ello necesitamos un plugin que:
- Desglose el IVA en la factura. Esto parece una obviedad, ya que para que una factura sea válida es necesario que desglose los impuestos. Sin embargo la mayoría de plugins gratuitos de emisión de facturas no lo hacen a no ser que también se desglose en la tienda, y te sorprendería saber la de profesionales y empresas que están emitiendo en su web «facturas» que no desglosan el IVA.
- Añada el addendum Operación exenta de IVA por aplicación de lo dispuesto en el artículo 25 de la Ley 37/1992 del IVA. Esto no lo hace ningún plugin, tenemos que hacerlo nosotros mediante código.
Para la emisión de facturas yo siempre utilizo el plugin gratuito WooCommerce PDF Invoices & Packing Slips. Me parece el más completo, el que mejor funciona y el mejor programado. Además, incluye una extensa API (hooks) para poder insertarle código personalizado donde necesitemos. Y eso nos va a venir de perlas para poder hacer esto.
Aquí te hablaba ya en 2016 más en extenso sobre este plugin:
A no ser que en la configuración de WooCommerce hayas especificado que los precios se muestren desglosados, la factura emitida con el plugin gratuito no desglosará el IVA. Para que el IVA aparezca desglosado necesitarás, además, el add-on WooCommerce PDF Invoices & Packing Slips Premium Templates.
Por supuesto, los pedidos que WooCommerce EU VAT Number haya generado exentos de IVA por pertenecer a profesionales/empresas europeos, se mostrarán como tales en la factura, sin la aplicación del impuesto.
Añadir la coletilla sobre la exención de IVA
Llegados a este punto ya tenemos casi todo configurado: WooCommerce emite factura de los pedidos con el IVA desglosado, y las operaciones entre profesionales/empresas intracomunitarios quedan exentas de IVA, y así se refleja también en la factura.
Éste es el tema que más quebraderos de cabeza levanta, ya que necesitamos añadir la apostilla prescrita por la ley dentro del cuerpo de la factura y ningún plugin incluye una opción de este tipo. Tenemos que tirar de código.
Como decía más arriba, WooCommerce PDF Invoices & Packing Slips incluye bastantes hooks para «enganchar» en ellos nuestro código, y eso nos va a permitir cumplir este requisito. En concreto, vamos a usar el gancho de acción wpo_wcpdf_after_customer_notes para incluir ahí el texto necesario; pero obviamente hemos de hacerlo de forma condicional, sólo en el caso de que WooCommerce EU VAT Number haya marcado la operación como exenta de IVA por ser de un operador intracomunitario.
No te mareo, te doy el código necesario para ello explicándote someramente lo que hace: recupera los datos meta del pedido is_vat_exempt (yes/no) y _vat_number_is_validated (true/false), donde WooCommerce EU VAT Number almacena si el pedido está exento de IVA y si el número de IVA Europeo se ha validado correctamente, y (por seguridad) el dato meta _billing_country, donde WooCommerce almacena el país de facturación del cliente. En caso de que los dos primeros sean true (verdadero) y que el tercero no sea ES (España), entonces inserta el texto centrado dentro del cuerpo de la factura (el código primero verifica que el documento que está siendo generado es una factura, ya que el plugin también puede emitir albaranes).
El código es el siguiente:
add_action ('wpo_wcpdf_after_customer_notes', function ($document_type, $order) { if ('invoice' != $document_type) return; $pedido = $order->get_id(); if ('yes' == get_post_meta ($pedido, 'is_vat_exempt', true) && true == get_post_meta ($pedido, '_vat_number_is_validated', true) && true == get_post_meta ($pedido, '_vat_number_is_valid', true) && 'ES' != get_post_meta ($pedido, '_billing_country', true)) echo '<p style="width:80%;text-align:center;margin:30px auto 0 auto">Operación exenta de IVA por aplicación de lo dispuesto en el artículo 25 de la Ley 37/1992 del IVA.</p>'; }, 10, 2);
Y ya está, de esta forma, el código añadirá el texto en cuestión siempre que se den todas las condiciones:
- El documento emitido sea una factura.
- El pedido esté exento de IVA.
- El número de IVA Europeo exista y esté registrado en el VIES.
- El país de facturación del cliente no sea España.
Si no sabes cómo o dónde añadir ese código, te recomiendo echarle un vistazo a esta entrada, donde te explico cómo hacer este tipo de cosas:
Deja una respuesta