help1
eu-withdrawal-buttonshopifycomplianceeu-directive

Seven Questions About the Shopify EU Withdrawal Button

Shopify's native cancellation feature does not satisfy the EU withdrawal button directive. Here are the questions merchants keep asking us.

help1 Team
Seven Questions About the Shopify EU Withdrawal Button

A post on r/shopify a couple of weeks back showed a merchant who had followed Shopify's own June 17 announcement, installed the new cancellation flow, tested it once, and only then realised that a customer had to be logged in before the flow even started. They deleted it and installed Revoq that same afternoon. That thread was not the first about the EU withdrawal button, and it will not be the last.

We get some version of this question every week now, from EU merchants and from UK sellers who forgot they still ship to Ireland. Some of it is compliance panic. Some of it is honest confusion because the rule is stricter than the surface reading suggests. The seven questions below are the ones that come up in chat most often, with the answers we give.

Does Shopify's new cancellation feature actually count?

No, in most people's reading, and probably not in a German consumer-protection association's reading either.

Shopify shipped "cancellation rules and self-serve flow" as part of Summer Edition 2026 on June 17, two days before the June 19 directive deadline. On the surface it looks like a compliance feature. In practice it lives inside the customer account portal, which requires the buyer to log in. Directive 2023/2673 is explicit that the withdrawal function must be accessible without an account.

That single point is what merchants keep tripping on. Multiple community threads settled on the same verdict inside 48 hours of the deadline. A commenter on the June 21 Starter-plan thread said it plainly: you can restyle the buttons, add checkout blocks, change wording, but the login gate is baked into the flow, and the law is explicit that no login can be required.

If a merchant asked us to sign off on their compliance today and they were relying only on the native feature, we would say no. This is Shopify's most confidently-shipped non-solution of the year.

Which app do you actually recommend?

Revoq's free tier, for most B2C stores selling into the EU. The community consensus in the June 15 to 21 window converged on it faster than any other post-deadline recommendation we can remember, and we have not seen anyone come back to walk it back. The install takes about fifteen minutes and the guest-checkout path works without an account.

Two caveats. First, one merchant we chatted with had installed a well-known consent app whose product page markets a withdrawal button feature; on inspection, that feature also required login, so it did not solve their problem. Do not assume that because an app you already pay for has a checkbox called "EU withdrawal button", the feature is compliant. Test it as a guest, in an incognito window, with an email address that is not tied to any customer account.

Second, Revoq's free tier covers the button, the two-step confirmation, and the durable-medium email. If you need multi-language email routing for a French store selling into Germany, or a queryable audit trail for a lawyer, look at the paid tiers or the alternatives (EU Withdrawal Button by Final Apps is the second most-cited).

If you want a second pair of eyes on your setup before you switch it on, the first 15 minutes with a help1 expert is free and that is usually enough to walk the guest-checkout path together and confirm the button lands where it should.

I'm on Shopify Starter. What are my options?

Three, and none of them are painless.

You cannot install apps on Starter, and you cannot modify the theme. That means Revoq, Final Apps, and every other third-party solution is off the table on the plan itself. A Starter store selling to EU consumers today has no path to compliance without moving somewhere.

The three real options are: upgrade to Basic and install Revoq (this is what most Starter merchants who chatted with us ended up doing); move EU sales to a different platform such as WooCommerce or an EU-native cart, and keep Shopify for the rest of the market; or geo-block EU consumers entirely. The third is more common than a Shopify sales pitch would let on. We saw several June threads where merchants documented turning off EU shipping because the compliance cost, not just this rule but the EPR and GPSR and omnibus stack around it, no longer penciled out. If you sell twenty EU orders a month, that decision is easier than merchants think.

If a Shopify support agent told you Starter "is not made to be compliant", that phrasing is misleading. Shopify's login-gated flow does not comply on any plan; Starter just has no workaround.

What about digital downloads?

The exemption exists, but it is narrower than the summary "digital goods are exempt" suggests.

Under the directive, digital content with instant delivery can be exempt from the right of withdrawal, but only if the customer explicitly consents before the purchase completes and the download starts. A checkbox on the product page acknowledging that the buyer loses their withdrawal right by downloading immediately is the pattern we see most often. A post-download refusal flow does not satisfy this. The consent has to be captured before Pay is clicked.

On Shopify Basic, adding that checkbox reliably is fiddly because the checkout page is not natively editable. The workaround that keeps surfacing on threads is a line-item-property checkbox on the product page. It works, but it depends on the property surviving the cart-to-checkout hop, which is a real edge case on Basic where the cart can lose custom properties on certain payment redirects.

If your store mixes digital and physical, you need both mechanisms: the exemption pattern for the digital SKUs and the full EU withdrawal button for the physical ones. One does not remove the other.

Can I just use Shopify Flow and skip the app?

Not reliably. Two structural gaps show up as soon as you try to build it end to end.

Shopify Flow cannot send an automated email to an address a buyer typed into a public form. Flow wants a Customer record or an Order to act on. A raw email string from a public "cancel my order" form is not something Flow can hand to an email step. Multiple developers confirmed the same behavior in the June threads. The Flow route only works for buyers who are already logged in, which is exactly the population you can already reach through Shopify's own (non-compliant) native flow.

The confirmation email also has to qualify as a durable medium under EU consumer law, which means the verification event needs to be stored server-side and time-stamped, not just fired off from a form submit. Most DIY builds we have looked at generate the email but do not maintain a queryable log of who withdrew, on what timestamp, with what proof of delivery. That log is what a German consumer-protection association would ask for. Not the button design.

We are not saying you cannot build this. We are saying if you can build it, you are a developer, and you would be faster installing Revoq.

There is a minority reading that says yes. It came up on the June 17 r/shopify thread where a merchant cited legal counsel who pointed at Article 11a of the directive and argued that a link delivered via a durable medium (the email itself) satisfies the requirement without a storefront button.

We would not build against that reading. The safer interpretation, and the one most compliance-focused commenters land on, is that the withdrawal function must be reachable from the storefront, not only from an email that arrives after the sale. If a customer never opens the confirmation email, or it filed itself into a Promotions folder, or the merchant's ESP quietly dropped it, the withdrawal right cannot be blocked by that. Article 11a also references "the original online interface", which most EU lawyers we have spoken to read as the storefront, not the inbox.

If your own EU counsel signs off on email-only, that is between you and them. It is not the default position we would take.

How worried should I be about enforcement if I am behind?

Less than the deadline panic suggested. More than zero.

Through the second and third days after June 19, no Abmahnungen (the cease-and-desist letters that German consumer-protection associations are known for) surfaced in any of the threads we monitored. That does not mean none went out. It means the KAMU-precedent scenario, where a wave of letters lands inside 48 hours, did not visibly repeat here. Whether that reflects a grace period, enforcement lag, or better-than-expected compliance rates is genuinely unknown; nobody has clean data yet.

German fines can run to 4 percent of annual turnover, capped at €50,000 for smaller businesses. And the exposure window is worse than most merchants expect. If you were non-compliant on June 20 and a consumer decides to exercise their withdrawal right on that order, the withdrawal window for that purchase stretches to 12 months plus 14 days, not the standard 14. Every EU B2C sale between now and the day you turn on a compliant flow is a sale with a 12-month clock running on it.

The pragmatic move is boring. Install Revoq or an equivalent this week, document the date you switched it on, and keep that note somewhere you can find it if you ever need to prove a remediation date. If your setup has anything unusual (subscription products, digital goods, non-standard checkout blocks), our expert chat has walked several EU stores through this compliance check and can go through the guest-checkout test with you.

For merchants trying to model the full EU compliance cost against staying versus leaving, we wrote up the full stack a few weeks ago: what EU compliance actually costs a solo UK store on Shopify covers the whole set of apps, not just this one button.

One more thing

Shopify's June 17 announcement gave a lot of merchants permission to stop paying attention. The feature shipped, the compliance box in their head got ticked, and now their German lawyer is telling them the box was never actually checked.

Still stuck? Talk to an expert.

Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.