The EU Withdrawal Button on Shopify: Why Legacy Customer Accounts Can't Use the Native Version
Author
Uncover Commerce
Date Published
Since 19 June 2026, any store selling to consumers in the EU has needed a withdrawal button under EU Directive 2023/2673. Shopify shipped a native EU withdrawal button for this. If your store is still on legacy customer accounts, you have probably noticed that the setting is not there for you. Shopify's withdrawal function only works with new customer accounts.
So you have two routes. Migrate to new customer accounts and switch the native feature on, or install a third-party app that works on legacy accounts. Most of the guides online stop there. They do not weigh what the migration actually changes on a store that was not otherwise planning to touch its login flow. That is what this article covers.
What the EU right of withdrawal button actually requires
Directive (EU) 2023/2673 added a new Article 11a to the Consumer Rights Directive (2011/83/EU). Member states had until 19 December 2025 to write it into national law, and the obligation applies to contracts concluded from 19 June 2026. It covers distance contracts concluded through an online interface, so a website or an app, where the consumer has a statutory right of withdrawal. You can read the full directive text on EUR-Lex.
The mechanics are specific, and this is where many implementations fall short:
- A clearly visible function, labelled "withdraw from the contract here" or an unambiguous equivalent, available continuously throughout the withdrawal period. Burying it three clicks into an account area is not the intent.
- A first step where the consumer gives their name, details that identify the contract (typically the order number), and how they want to receive the acknowledgement.
- A second step with a confirmation control labelled "confirm withdrawal" or equivalent wording. This two-step structure is explicit in the rule, not a best practice.
- An acknowledgement on a durable medium, such as email, sent without undue delay, containing the content of the withdrawal and the date and time it was submitted. Submission time is what counts for the deadline, not when you process it.
Two things matter for a Glasgow or wider UK brand. The UK did not adopt this directive, so purely domestic sales are not in scope. But if you sell to consumers in Ireland, Germany, France or anywhere else in the EU, the rule applies to those contracts. And national versions vary slightly. Germany implemented it as section 356a of the civil code, while the Netherlands only requires unambiguous wording rather than the exact labels. If you sell heavily into one market, check that market's wording.
Why Shopify's native withdrawal function needs new customer accounts
Shopify built its withdrawal function on top of self-serve returns inside new customer accounts. You turn it on under Settings, then Customer accounts, and customers submit a withdrawal request from their order. Shopify's own documentation is clear that the feature does not work with legacy customer accounts, and that switching it on does not automatically make your store compliant. The button, the pre-purchase disclosures and the acknowledgement flow still need checking against the rule.
There is a second wrinkle. To reach the request, the customer signs in with their email address and a six-digit code. Several commentators argue the directive expects the function to be usable without logging in. Others take the view that a one-time code is identification rather than account creation, which is exactly what the first step asks for anyway. We are not lawyers and this is not legal advice. If a large share of your orders are EU consumer orders, get a short written opinion before you rely on the native version alone.
What actually changes when you migrate from legacy accounts for this feature
Shopify deprecated legacy customer accounts on 26 February 2026, so a migration is coming for everyone. A final sunset date is due to be announced later in 2026. That is a reason to plan the migration. It is not a reason to rush it through in a week because a compliance toggle lives on the other side of it. We covered the full migration in our legacy customer accounts migration playbook. The short version of what changes:
- Login becomes passwordless. Customers get a one-time code by email. Password resets go away, and so does Multipass, which breaks any middleware that was logging customers in on their behalf.
- Accounts are created on first code entry. If you vet or approve accounts before granting access, that onboarding step has to be rebuilt.
- Apps that inject Liquid into account pages stop rendering. Loyalty points balances, wishlists and subscription portals that relied on the old account templates need a vendor that supports customer account UI extensions, or they disappear from the account area.
- Segments and Flow automations tied to legacy account status stop working. Segments built on customer_account_status are legacy-only, and any Flow triggers that depend on them need redoing.
- B2B is the exception. Company accounts need new customer accounts to work properly, so if you run native Shopify B2B you were migrating regardless.
None of these are blockers. All of them are work, and all of them touch the part of the store your repeat customers use most. Most Shopify brands don't have a traffic problem, they have a conversion problem, and the login flow is a conversion surface. A loyalty widget that silently vanishes from the account page costs you repeat orders long before anyone notices it is missing. We wrote about this pattern in why most stores get customer accounts and loyalty wrong.
A compliance button is a poor reason to change how every returning customer logs in. Migrate because you have planned it, not because a toggle is on the other side.
The third-party app route for stores not ready to migrate
The Shopify App Store now has a cluster of withdrawal button apps built for this rule, with Revoq, Withdrawly and EU Withdrawal Button among the more established. The good ones work on both legacy and new customer accounts, do not require a login, cover guest checkout orders, keep an audit record of each request, and send the acknowledgement automatically. Some have been reviewed for compliance by German consumer law specialists, which is a useful signal if Germany is one of your markets.
When you evaluate one, check it against the rule rather than the listing. Specifically: does it enforce the two-step flow with the right labels in each language you sell in, does it collect name and order details on step one, does it send the durable-medium acknowledgement with date and time, does it place the function on every page (a footer link is the common pattern) rather than only inside an account, and does it keep a log you could produce if challenged. The trade-off is familiar: another app, another monthly fee, another vendor to vet, and a theme block that has to survive your next theme update. That is still cheaper than a rushed account migration on a store with a loyalty programme and custom account templates.
Which route to take
- Already planning the migration, or running native B2B: migrate to new customer accounts, switch on the native function, and test the withdrawal flow as part of the same QA pass. Then decide whether you still want an app on top for logged-out access.
- Loyalty, subscriptions or custom account templates, and no migration scheduled: install a compliant app now. Plan the migration on your own timeline, well before Shopify's sunset date, and keep the app if your legal advice says logged-out access matters.
- New store on new customer accounts already: switch on the native function, then verify the labels, the two-step flow and the acknowledgement email yourself. Do not assume the toggle is the whole job.
Whichever route you choose, do it outside peak trading. Changing a login flow in November is how stores lose a quarter's worth of repeat revenue to an avoidable problem.
The takeaway
The native Shopify EU withdrawal button is a reasonable feature for stores that are already on new customer accounts. It is not a reason to migrate on its own. If you are on legacy accounts, an app gets you compliant this week, and the migration can happen when you have audited the loyalty, subscription and automation dependencies properly.
If you want a senior team to handle both the account migration and the compliance work without juniors or outsourcing, our Shopify website development service covers it, and ongoing work of this kind sits inside our Conversion Growth Retainer. We are based in Glasgow, work with brands across the UK and Europe, and are happy to look at your store's setup. Get in touch and tell us which accounts you are on.