If you sell to customers in the EU, there’s a new rule you need to know about, and if your store isn’t compliant, the clock’s already running. From 19 June 2026, Directive (EU) 2023/2673 requires online traders to give consumers an electronic withdrawal function, commonly called a “withdrawal button”, for any distance contract concluded through a website or app where a statutory right of withdrawal exists.
It sounds like a small thing. It isn’t. Here’s what’s changed, why it matters, and what to do about it if you’re running Shopify or WooCommerce.
What’s actually changed
The right of withdrawal itself isn’t new. EU consumers have had a 14-day cooling-off period since the original Consumer Rights Directive in 2011. What’s new is how they’re allowed to exercise it.
Directive 2023/2673 inserts a new Article 11a into the Consumer Rights Directive. Although the directive was originally written with distance financial services in mind, Article 11a applies horizontally, meaning it covers any distance contract concluded via an online interface where a right of withdrawal exists. The guiding principle, repeated throughout the legislation, is simple: withdrawing from a contract shouldn’t be any more burdensome than entering into it. If a customer can buy with a couple of clicks, they should be able to withdraw the same way.
In practice, that means:
The withdrawal function has to be clearly labelled (something like “withdraw from contract here”, not a vague “Cancel” link buried in the footer), prominently displayed, and accessible from every subpage of your site. It needs to work for guest checkouts too, customers shouldn’t have to register or log in just to exercise a right they already have. The process is two-step: the customer first identifies the contract and provides their details, then confirms the withdrawal separately. And once that’s submitted, you’re required to send an automatic acknowledgement on a durable medium, usually email, confirming the date, time and details of the request.
Member states had to transpose the directive into national law by 19 December 2025, with the rules applying from 19 June 2026. Several, including Germany, France and Italy, have already done so. Crucially, this applies regardless of where your business is based. If you’re a Yorkshire trader selling to customers in Germany or France, this affects you just as much as it affects a business headquartered in the EU.
What happens if you don’t comply
Penalties vary by member state but they’re not trivial. Fines can reach up to 4% of annual turnover in some countries, and non-compliant withdrawal periods can be extended automatically from 14 days to 12 months and 14 days. On top of that, there’s the reputational side: a clunky, hidden, or non-existent withdrawal process is exactly the kind of friction that damages customer trust and conversion.
Shopify
Shopify has rolled out some native support for this, but it comes with conditions. The native withdrawal functionality is tied to Shopify’s New Customer Accounts and self-serve returns setup, so if your store is still running legacy customer accounts, you won’t have access to it until you migrate. Even where it’s available, native support is generally built around logged-in customers, so if you allow guest checkout (most stores do), you’ll likely need an additional public-facing entry point, such as a footer-linked form, so guests can withdraw without creating an account.
For stores not yet on New Customer Accounts, or wanting a more complete solution out of the box, there are dedicated Shopify apps built specifically for this directive that handle the two-step flow, order matching and confirmation emails for you.
WooCommerce
WooCommerce doesn’t have this built in natively, so you’ll be relying on a plugin. There are several solid options now available, ranging from free withdrawal-button plugins that add a request form and confirmation emails, through to fuller toolkits that also generate the Annex I-B model withdrawal form and handle product exclusions (think made-to-order goods, perishables, or digital content the customer’s already consented to receive immediately). If you’re using Germanized for WooCommerce, the withdrawal button is included as standard from version 4.0, which is worth checking before installing anything extra.
Whichever route you take, the same checks apply: test the flow as both a guest and a logged-in customer, make sure your confirmation emails are firing correctly, and double-check the wording on your button is unambiguous.
What we’d recommend doing now
Review your current withdrawal and returns process honestly, not just what your terms and conditions say, but what a customer would actually experience trying to use it. If there’s no clear, findable, guest-accessible withdrawal function on your site, that’s your starting point. We can review your setup, advise on the right plugin or app for your platform, and make sure the wording, placement and confirmation flow all stack up.