Quedan menos de dos meses para que el llamado botón de desistimiento sea obligatorio en todas las tiendas online de la Unión Europea, así que si tienes WooCommerce o cualquier otro e-commerce y vendes a consumidores europeos, tienes hasta el 19 de junio de 2026 para implementar lo que la Directiva (UE) 2023/2673 llama función de desistimiento online. Si no lo haces te expones a sanciones que en algunos países pueden llegar al 4% de la facturación anual.
Y aunque la directiva surgió para regular contratos de banca y seguros a distancia, introduce una obligación que afecta a prácticamente todo el comercio electrónico europeo. Vamos a ver qué hay que cumplir, cómo, y qué opciones tienes para llegar a tiempo.
Qué pide exactamente la directiva
Antes de entrar en detalle, una aclaración terminológica por si las moscas, y es que cuando la directiva habla de «contrato a distancia» no se refiere únicamente a contratos formales tipo seguro, hipoteca o suscripción a un servicio. En jerga jurídica europea, cualquier compra online es un contrato.
Comprar un par de zapatillas en tu tienda de WooCommerce es jurídicamente un contrato de venta a distancia, igual que contratar un seguro online es un contrato de servicios financieros a distancia. La directiva 2023/2673 aplica a todos, ya sean ventas de productos físicos, productos digitales, suscripciones, cursos online, servicios profesionales contratados a distancia y servicios financieros.
Si en tu web alguien le da a «comprar» o «contratar» desde su casa, te aplica.
La idea de fondo es que si un consumidor puede contratar contigo online con un par de clics, también tiene que poder ejercer el derecho de desistimiento con la misma facilidad. Nada de buscar formularios PDF en una página enterrada, descargarlos, rellenarlos, escanearlos y enviarlos por email, nada de llamar a un teléfono que solo atiende los martes de 11:00 a 12:00.
La directiva exige que comercios electrónicos y prestadores de servicios online incorporen un mecanismo visible y directo que permita al consumidor desistir del contrato o acuerdo de compra igual de fácil que lo realizó.
Aquí viene un matiz importante, y es la palabra que usa la directiva no es botón, sino función, interpretada en sentido amplio. Puede ser un botón, un enlace o un formulario integrado, lo importante es que sea visible, accesible y efectivo.
En la práctica, la mayoría de implementaciones acaban siendo lo mismo, o sea, un botón claro que lleve a un formulario corto donde el cliente meta sus datos, identifique el pedido y confirme el desistimiento. Es la versión actualizada del Kündigungsbutton alemán que lleva aplicándose desde 2022 para suscripciones, pero ahora extendido a toda la UE y a cualquier venta online.
Sanciones si no lo implementas
Las sanciones las marca cada estado miembro al trasponer la directiva, así que el rango varía. España está terminando la trasposición ahora mismo, mediante una modificación del Texto Refundido de la Ley General para la Defensa de los Consumidores y Usuarios. Las cuantías habituales en infracciones de consumo van desde unos cientos de euros para casos leves hasta el 4% de la facturación anual en infracciones muy graves o reincidentes.
Más relevante todavía es lo del plazo, pues la falta de información clara o de medios efectivos para desistir extiende el plazo legal de 14 días a 12 meses. Si vendes algo de margen ajustado y un año después tienes que aceptar la devolución y devolver el dinero íntegro, te puede salir más caro que la propia sanción.
Qué NO vale como función de desistimiento
Esto es importante porque a más de uno le va a tentar resolverlo por la vía barata o del mínimo esfuerzo. La directiva descarta de forma explícita las soluciones que no pasen por una herramienta digital integrada en la propia interfaz online:
- Un email visible o un enlace
mailto: El considerando 37 de la directiva dice literalmente que los consumidores no deberían tener que escribir emails para desistir. - Un PDF descargable que haya que rellenar e imprimir: Esa era la fórmula del Anexo I de la directiva 2011/83/UE y ahora se considera insuficiente como única vía.
- Un teléfono o WhatsApp de atención al cliente: Falla por todos lados, no es una función integrada en la interfaz, no genera registro auditable y no está continuamente disponible.
- Un formulario al que solo se pueda acceder iniciando sesión: Los pedidos hechos como invitado tienen el mismo derecho de desistimiento, así que la función tiene que ser accesible sin obligar a registrarse.
Lo que la directiva sí pide expresamente es una función de desistimiento integrada en la web, etiquetada con «Desistir aquí» o texto equivalente inequívoco, muy visible, accesible durante todo el plazo de 14 días, y que permita al consumidor enviar la declaración de desistimiento online sin tener que salir de la web. Si tu solución no cumple estos cuatro requisitos, no cumple.
A quién SÍ afecta
Si tienes una web o una app desde la que se pueden formalizar ventas o contratos a distancia con consumidores residentes en la UE, te aplica. No hay umbral mínimo de facturación, no hay excepción por tamaño y no hay licencia de autónomo pequeño que te exima. Da igual si tu empresa está en España, en Andorra o en Estados Unidos, lo que cuenta es a quién vendes, no desde dónde.
Quedan dentro tiendas online B2C de cualquier tamaño, vendedores en marketplaces que además tengan tienda propia, suscripciones a software, contenidos o servicios, plataformas de cursos online, servicios profesionales contratados a distancia (consultoría, asesoría legal, traducción, diseño) y cualquier negocio fuera de la UE que dirija su actividad comercial al mercado europeo.
Si tu web se ve en español o tiene precio en euros y entrega en España, eso es dirigir actividad al mercado europeo, por ponerte un ejemplo. Es un derecho de los consumidores europeos.
A quién NO afecta
Te libras únicamente si vendes solo productos o servicios incluidos en los supuestos exentos del artículo 103 del Real Decreto Legislativo 1/2007:
- Productos personalizados o fabricados según especificaciones del cliente.
- Bienes precintados que no se pueden devolver por motivos de higiene o salud (cosmética abierta, suplementos, ropa interior).
- Contenidos digitales descargados con consentimiento expreso del consumidor.
- Productos perecederos.
- Bienes que se hayan mezclado con otros de forma indisociable.
- Grabaciones, vídeos o software desprecintados.
- Servicios ya ejecutados completamente con consentimiento expreso del consumidor.
La realidad es que pocas tiendas venden únicamente productos exentos. Una papelería online vende cuadernos personalizados (exentos) y bolígrafos estándar (no exentos), y el segundo grupo ya te obliga a tenerlo todo montado. Asume que estás dentro y prepárate.
Qué tiene que tener tu tienda online
Como mínimo
La versión que cumple la directiva en su lectura mínima:
-
- Una página o sección visible en tu web dedicada al desistimiento, fácil de encontrar desde cualquier parte del sitio. El sitio recomendado es el pie de página, junto a tus condiciones de venta y política de privacidad.
- Un formulario integrado que el cliente pueda rellenar online sin descargas ni emails. Los datos imprescindibles son nombre, email del pedido, número de pedido y un campo para detalles.
- Confirmación inmediata al cliente de que su solicitud se ha recibido, normalmente por email automático.
- Notificación interna a tu sistema (email, panel de administración, lo que sea) para gestionarla en plazo.
- Registro auditable de cada solicitud, con fecha, hora, identificación del cliente y del pedido. Esto te lo van a pedir si hay reclamación.
Lo perfecto (la versión alemana)
Alemania ha sido el primer país en publicar borrador de transposición y lo interpreta de forma más estricta. Si te quieres curar en salud, este es el modelo que conviene seguir y el que probablemente acaben trasponiendo España y otros países de la UE:
- Función de desistimiento accesible desde el pie de página, desde la zona de cliente y desde cada pedido individual dentro del plazo de 14 días.
- Aviso con enlace al formulario en los emails transaccionales de WooCommerce (pedido recibido, pedido procesado, pedido entregado), porque la directiva obliga a informar al consumidor de la existencia y ubicación de la función.
- Doble paso de confirmación. Un primer botón «Desistir del contrato» abre una página intermedia con los datos del cliente y un resumen, y un segundo botón «Confirmar desistimiento» envía la solicitud definitiva. Esto evita reclamaciones por desistimientos accidentales.
- Confirmación de recepción inmediata por medio duradero (email), con la fecha y hora exactas en las que la solicitud entró en tu sistema.
- Registro auditable con IP del cliente y user agent, no solo los datos del formulario, para tener trazabilidad legal completa.
- Acceso al formulario sin login obligatorio, para que los pedidos hechos como invitado puedan desistir igual.
España todavía no ha cerrado la transposición pero es razonable que se parezca a la versión alemana. Hasta que no haya texto definitivo del Real Decreto lo prudente es como poco montar la versión mínima y prepararse para añadir el segundo paso de confirmación si la transposición española lo exige.
Cómo implementarlo en WordPress
Tienes varias maneras de empezar a cumplir, según el tamaño y complejidad de tu tienda.
Hacerlo a mano con un formulario y una página
Si tu tienda es pequeña y vendes pocas unidades puedes salir del paso con un Contact Form 7 o un WPForms que envíe los datos a tu email, una página dedicada con el formulario incrustado y enlace en el pie de página, y un sistema manual de gestión por correo electrónico.
A falta de otra cosa, desde la misma web de WooCommerce es la única opción que han ofrecido.
Funciona, pero te toca a ti registrar cada solicitud, marcar el estado y guardar la trazabilidad. Igual a partir de cierto volumen no te compensa.
Plugins de cumplimiento legal alemanes
Si te pones a buscar te vas a encontrar con Germanized, WP Trusted Shops y similares, que llevan años cumpliendo requisitos del comercio electrónico alemán, que históricamente ha sido el más estricto de la UE, así que su nuevo módulo de desistimiento sí cumple la directiva.
El problema es que para una tienda española son matar moscas a cañonazos. Vienen con Impressum, AGB en formato alemán, factura B2C con desglose germánico, configuración compleja y soporte en alemán o inglés, así que te va a tocar desactivar la mitad de funciones y reconfigurar la otra para adaptarlas al mercado español. Si no vendes a Alemania yo creo que no compensa.
Adaptar un plugin de devoluciones que ya tengas
Si ya usas algo tipo YITH Advanced Refund System, RMA for WooCommerce o Returns and Warranty Requests, técnicamente puedes reciclarlos como puerta de entrada al desistimiento. Tienen formularios, gestión de estados y notificaciones por email.
La pega es que ninguno está pensado para esto, son plugins de gestión de devoluciones por defecto o garantía, no de derecho de desistimiento legal. Les falta el registro auditable específico, la validación del plazo de 14 días desde fecha del pedido, la trazabilidad legal con IP y user agent, y la integración con la función de desistimiento como concepto separado de una devolución comercial. Funciona si lo configuras a conciencia, pero no es enchufar y olvidarte.
Un plugin específico solo para la función de desistimiento
Si tu objetivo es cumplir la directiva sin añadir 50 funcionalidades más lo lógico es un plugin centrado solo en eso. Así que como la cosa no está para andar. perdiendo el tiempo he desarrollado un plugin gratuito específicamente para esta necesidad, para mi, para mis clientes, y para ti si lo quieres.
Cuando lo activas crea automáticamente la página pública de desistimiento con el formulario integrado por shortcode.
En estas página el plugin ya incluye un texto orientativo bilingüe con disclaimer legal claro, listo para que tu abogado lo revise antes de publicarlo.
Cuando WooCommerce está activo, todo (ajustes y solicitudes) se integra dentro del menú de WooCommerce, no como un menú propio aparte, y añade una nueva sección de «Derecho de desistimiento» en «Mi cuenta» y un botón «Desistir» junto a cada pedido que esté dentro del plazo de 14 días.
Además de lo anterior, en WooCommerce inyecta un aviso con enlace al formulario en todos los emails transaccionales del cliente durante el plazo de 14 días.
Cuando el cliente envía la solicitud, el plugin valida automáticamente que el email coincida con el del pedido y que estés dentro del plazo, registra todo en un panel de administración propio con seguimiento y gestión de los distintos estados (pendiente, aceptada, rechazada, completada)
Igualmente envía email de confirmación al cliente, te avisa a ti con reply-to apuntando al cliente para responderle de un clic, y deja una nota privada en el pedido de WooCommerce con el ID del registro.
Para que no falte de nada, en la pantalla de pedidos tienes una nueva columna que muestra el estado de desistimiento, y enlace al mismo, si lo hubiera.
También, en la página de producto hay una nueva casilla por si alguno debe excluirse del procedimiento de desistimiento.
Y, por supuesto, tiene página de ajustes, donde tienes los enlaces a los formularios, puedes cambiar el email de los avisos y, muy importante, excluir categorías de producto, además de ofrecer un periodo de gracia adicional al desistimiento.
Aquí te dejo unas capturas, aunque también las tienes en la página del plugin.
Por temas legales también registra un HASH único y la marca temporal, algo importante para la trazabilidad, tanto tuya como para el cliente, así estamos todos cubiertos.
Si no tienes WooCommerce activo también funciona, porque no siempre se vende con WooCommerce, puedes usarlo en una web corporativa si quieres incluso. En este caso el plugin crea su propio menú, con un icono que lo identifica claramente.
Lo puedes descargar o instalar gratis, está alojado en WordPress (Plugins > Añadir nuevo), como cualquier plugin de WordPress.
Si por lo que sea necesitas algo a medida o quieres que te lo deje instalado y configurado en tu sitio puedes contratar el servicio de mantenimiento, a nuestros clientes estas cosas (entre otras muchas) se las implementamos gratis, somos así de majos.
Está pensado para cubrir la mayoría de los requisitos de la directiva (y en cada versión se pondrá más exhaustivo). Si la transposición española acaba pareciéndose a la alemana y exige el segundo botón de confirmación, sacaré una actualización para añadirlo. Estate atento al repositorio.
Por supuesto, cumple los WordPress Coding Standards, escapa todas las salidas y sanea todas las entradas, está traducido al español, es compatible con HPOS.
Está preparado para subir a WordPress.org, cuando tenga un rato. De momento urgía subirlo y ponerlo público, y ahí lo tienes.
Lo que tienes que hacer antes del 19 de junio
Quedan menos de 2 meses desde hoy hasta que la nueva normativa sea exigible, no te puedes relajar, así que te propongo estas tareas:
- Revisa qué productos vendes y si todos están sujetos al derecho de desistimiento o no. Si tienes mezcla te aplica, no te arriesgues.
- Decide la ruta de implementación según tu tamaño. Para una tienda WooCommerce media o grande un plugin específico es lo más rápido.
- Crea la página de desistimiento, mete el formulario y enlázala desde el pie de página.
- Actualiza la política de devoluciones y las condiciones de venta para mencionar la nueva vía digital.
- Avisa a tu equipo de atención al cliente (si lo tienes) del nuevo proceso para que sepan gestionar las solicitudes que entren por ahí.
- Haz una prueba completa como si fueses un cliente, con un pedido real (puede ser uno tuyo, da igual, es dinero bien empleado para evitar sustos). Que llegue el email al cliente, al admin, que aparezca en el escritorio y que la nota privada se añada al pedido.
Si todo esto lo dejas para el 18 de junio, vas a ir con prisas y vas a fallar. Hazlo en mayo y dedica las dos primeras semanas de junio a probar y afinar. El reloj corre.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



















Muchas gracias por todo el contenido y el conocimiento que compartes.
¡Eres oro para la comunidad!
Gracias a ti por el detalle de pasarte 🙂
Muchas gracias por tu aportación, Fernando, utilizaré tu plugin. ¡Un saludo!
De nada Alfredo, cualquier cosa a mejorar me dices 😉
Hola, ¿esto afecta a una escuela online con MemberPress+LearnDash? Con un Plan mensual o anual.
¿Estaría obligado a hacer devolución de ese plan si lo solicitan en 14 días?
En teoría al ser productos digitales que se pueden consumir al instante, no hay derecho de desistimiento según tengo entendido. (Lo que no quita, que de normal piden devolución 3-4 clientas al año y se les hace sin problema, pero lo piden por mail).
Si hay que hacerlo, ¿valdría con un formulario en Elementor?
Saludos.
Hola Pablo,
Si la legislación actual vigente ya te dice que NO existe el derecho al desistimiento en tu tipo de producto no tienes porqué implementar algo para facilitar un derecho que no asiste a tus clientes en TU caso, eso no cambia, sería como ilógico ofrecer un derecho que no existe ¿no?
Otra cosa es que tú, de manera voluntaria, y excepcionalmente, quieras darlo en ocasiones puntuales, si te lo piden, yo también lo hago con mis cursos, pero eso no es un derecho, no estás obligado, tampoco a poner un botón o similar.
Lo que tengas ahora, si es que tienes algo, ya te vale, mientras no cambie la ley de qué se tiene derecho a desistimiento y qué no, claro
¡Mil gracias, Fernando! Sinceramente, te has convertido en nuestra «gestoría adelantada».
Siempre nos enteramos de estas novedades legales y normativas por ti antes que por nuestros propios asesores. De hecho, terminamos llevándole tus artículos a la gestoría para que se pongan las pilas y lo apliquen, cuando lógicamente debería ser al revés…
Gracias por el trabajazo constante y por mantenernos siempre un paso por delante y cubiertos a nivel legal y técnico.
¡Un abrazo!
Miguel
Uy, de nada. Casi no tiene mérito, también me aprieta el zapato, aunque solo sea para tener informados a los clientes a quienes llevo el mantenimiento de su web 🙂
Hola Fernando,
Antes de nada gracias por tu gran trabajo.
Gestionó una web de una charcutería de venta online, por lo leído en tu artículo, no está obligada a tener el derecho de consentimiento, ya que son productos perecederos.
Es así verdad?
Gracias de nuevo.
Un saludo
Hola Rafael, no conozco cada legislación de cada tipo de producto, eso son consultas legales a las que no me atrevo a decir nada, y además de que en España tenemos legislaciones para aburrir casi por pueblo, así que consulta eso en concreto a un abogado o a tu gestoría – que para eso la pagamos – antes de tomar ninguna decisión 😉
Muchas gracias por hacernos la vida siempre tan fácil Fernando y tenernos siempre informados de los cambios para las webs. He probado el plugin y funciona de 10. Solo 2 cosas que son chorradas, pero por si te interesa. El mail de desestimiento llega como [email protected] tanto al cliente como al admin de la tienda. Y la otra cosa es que no veo es la nota privada de desestimiento en el pedido, creo que según dices en el artículo debería salir, si no lo he entendido mal.
Un saludo.
Hola Xisco. Lo del email ¿has probado a cambiarlo en los ajustes?, si no lo pilla me dices y lo corrijo en unos días. Lo de las notas privadas salen sí o sí, de hecho en la versión actual subida, la 1.2.0 he ampliado las notas, porque antes solo salía la de la solicitud, y ahora crea notas también cuando se aceptan o rechazan. Si miras en el Github en la carpeta de capturas verás que es así, y eso es de mis pruebas, que pruebo siempre todo primero en webs mías, de pruebas y reales.
Hola Fernando, pues parece que no pilla lo del mail, sigue saliendo [email protected]
Sobre lo de las notas privadas he actualizado a la última versión 1.2.0 y ahora sí.
Gracias
Al cliente es normal, pero al admin el del cliente debería ser el configurado ¿es así?
al cliente le llega desde la dirección [email protected] a su mail y al admin le llega desde [email protected] al mail configurado en ajustes del plugin. Lo comentaba porque cuando recibes el mail de desistimiento se ve con el nombre «wordpress» en lugar del nombre de la tienda como destinatario, solo era eso.
Vale, entendido, entonces no falla, es lo. esperado, esos emails son los que manda WordPress, el plugin no cambia nada, son emails estandar. Solo cambia a quién manda el de desistimiento, si quieres.
Eso igual lo añado más adelante, mientras se puede cambiar con un filtro: Cómo desactivar y personalizar todos los emails que envía WordPress – Guía completa recopilada de toda la documentación oficial y no oficial
Cómo te los has currado Fernando!!!
Haciendo la vida fácil a las demás personas.
Muchas gracias.
Me alegra que te guste, yo uso el plugin en todas mis webs hace ya. Si le ves cualquier mejora o cosa que le falte avisas 😉