arrow_back_ios Blog EU Withdrawal Button for Magento 2: Article 11a Compliance Guide

EU Withdrawal Button for Magento 2: Article 11a Compliance Guide

calendar_today June 24, 2026 visibility 4 views folder_open Magento 2 Tutorials, eCommerce Solutions label EU Compliance person By Vladimir Popov

The EU withdrawal button is a mandatory electronic withdrawal function that online shops must offer EU consumers since 19 June 2026, under Article 11a of the Consumer Rights Directive (added by Directive (EU) 2023/2673). It applies to distance contracts concluded through websites and apps whenever a statutory right of withdrawal exists, including for non-EU stores selling to EU consumers.

Magento 2 ships no such withdrawal function out of the box; the free MageMe EU Withdrawal Button module implements the required two-step flow.

Most compliance deadlines arrive with years of noise. This one arrived quietly, and it changes the storefront itself. Since 19 June 2026, “we accept withdrawals by email” is no longer enough: the law prescribes a visible button, fixed wording, a two-step confirmation, and an automatic receipt. Stores that ignore it hand every customer a withdrawal window of twelve months and fourteen days instead of fourteen days.

This guide explains what Article 11a actually requires, who is in scope (the answer surprises most non-EU merchants), what the penalties look like, when you are exempt, and how to implement a compliant withdrawal button in Magento 2 in under an hour.

Legal summary last reviewed on 24 June 2026. This article is implementation guidance, not legal advice.


What’s in this guide

What is the EU withdrawal button?

EU consumers have had a 14-day right of withdrawal from distance contracts since 2014. What changes now is how they exercise it. Directive (EU) 2023/2673 inserts a new Article 11a “Withdrawal function” into the Consumer Rights Directive 2011/83/EU: if a contract can be concluded through an online interface, it must be possible to withdraw from it through that same interface, with a clearly labelled, always-available electronic function. In plain terms: leaving a contract must be as easy as entering it.

Two dates matter:

  • 19 December 2025: deadline for EU member states to transpose the directive into national law (Germany, for example, did so with the new § 356a BGB).
  • 19 June 2026: the date the national rules began applying to every trader. There is no grace period.

The concept follows a tested pattern: Germany’s “cancellation button” for subscription contracts (§ 312k BGB, mandatory since 2022) proved that a prescribed button with prescribed wording is enforceable, and heavily enforced. The withdrawal button takes the same mechanism EU-wide and extends it from subscriptions to ordinary purchases.

Who must comply, and who gets surprised

The obligation attaches to the contract, not to the company’s registered address. If a distance contract with an EU consumer is concluded through an online interface and a statutory right of withdrawal exists, the function must be there.

EU online stores

Every B2C shop selling goods, services, or digital content to consumers in the EU. This is the obvious case, and the bulk of affected merchants.

Non-EU stores selling into the EU

A US, UK, or Swiss store that directs its activity at EU consumers (EU shipping, EUR prices, EU marketing) is in scope. This is the group most likely to be caught out.

Apps and online interfaces

The rule speaks of online interfaces, not websites: mobile apps and app-based storefronts that conclude consumer contracts need the function too.

The rule is strictly B2C: it protects consumers, so pure B2B stores are out of scope. Contracts concluded offline (by phone, by email exchange, in person) do not trigger the button requirement either, even if the trader also runs a website.

What Article 11a actually requires

The directive prescribes a two-step mechanism with fixed wording at both ends, plus rules on placement and confirmation. Here is the complete flow:

Step 1
The withdrawal function

A button or function labelled “withdraw from contract here”, or an equally unambiguous formulation in the contract language. Vague labels like “Cancel” or “Service inquiry” are unlikely to qualify.

Step 2
The withdrawal form

The consumer identifies themselves and the contract: name, order identification, contact channel. The trader may ask for only the necessary information: no forced account creation, no login walls, no app downloads.

Step 3
Confirmation and receipt

A confirmation control labelled “confirm withdrawal” submits the declaration. The trader must then send an acknowledgment of receipt (including its content, date, and time) on a durable medium, typically email, without undue delay.

On top of the mechanism itself, the directive sets display rules:

  • Prominent. The function must stand out visually and be easy to find. Burying it in the terms and conditions, footer link farms, or nested menus does not satisfy the requirement.
  • Continuously available. It must remain accessible during the entire withdrawal period, not only on order confirmation pages or in the checkout.
  • Barrier-free. Reachable without registration, authentication, or installing an app. Guest purchasers must be able to use it as easily as account holders. Accessibility rules (such as the European Accessibility Act, in Germany the BFSG) apply to the function as to the rest of the storefront.

Important nuance: the button is an additional mandatory channel, not a replacement. Consumers can still withdraw by email or with the model withdrawal form, and those declarations remain valid.

What non-compliance costs

The sanctions stack, and the first one is the most expensive in practice:

  • The withdrawal period extends to 12 months and 14 days. Failing to provide the function (and the related information) is treated like failing to inform the consumer about the right of withdrawal. Instead of a 14-day window, every affected order stays open for over a year: returns, refunds, and all.
  • Injunctions and cease-and-desist claims. Consumer protection associations and, in markets like Germany, competitors can demand compliance and recover costs. German merchants know this instrument as the Abmahnung, and a missing legally required button is an easy target.
  • Fines. Penalty levels are set by each member state. In Germany, fines run up to €50,000 for smaller traders and up to 4% of annual turnover for businesses above €1.25M; for widespread infringements pursued under the EU consumer-protection cooperation framework, the 4% ceiling applies EU-wide.
  • The withdrawal counts anyway. A consumer who declares withdrawal by any other valid means is withdrawn, with or without your button. Non-compliance buys no protection, only exposure.

When you do not need the button

The function is only required where a statutory right of withdrawal exists. The Consumer Rights Directive’s existing exceptions (Article 16) carry over, so no button is needed for transactions such as:

  • Custom-made or clearly personalized goods (engraved products, made-to-measure furniture);
  • Perishable goods and sealed hygiene-sensitive products once unsealed;
  • Accommodation, transport, car rental, catering, and leisure services booked for a specific date;
  • Digital content delivered immediately, where the consumer expressly consented to immediate performance and acknowledged losing the withdrawal right.

Two practical caveats. First, the exemption applies per transaction, not per store: a shop selling both personalized and standard products needs the function for the standard ones. Second, the digital-content waiver must actually be collected at checkout. A line in the terms is not consent. If your store relies on this exemption, the waiver flow is part of your compliance, not a substitute for it.

Germany: § 356a BGB, the strictest reading

Germany has already published its implementation act: the new § 356a BGB (official text) took effect on 19 June 2026. The German label is prescribed as “Vertrag widerrufen” (or equally unambiguous wording), the function must be reachable without registration, authentication, or an app download, and the accessibility requirements of the BFSG apply. Consumer associations such as the Verbraucherzentrale are already publishing consumer-facing guidance. Expect German customers to know their rights from day one.

Given Germany’s active Abmahnung practice, stores selling into the German market must comply now: the rule has been in force since 19 June 2026. German-speaking merchants can read our dedicated guide: Widerrufsbutton für Magento 2.

How to add the withdrawal button to Magento 2

Magento 2 and Adobe Commerce ship no withdrawal function: not in the customer account, not in checkout. Returns (RMA) are a different mechanism: an RMA manages the logistics of sending goods back, while Article 11a regulates the legal declaration of withdrawal, its wording, placement, and receipt. You need a dedicated implementation, and you do not need to build it yourself.

The MageMe EU Withdrawal Button is a free, open-source module (source on GitHub) built directly against the directive’s requirements. Installation takes a few minutes:

Step 1
Install via Composer
composer require mageme/module-eu-withdrawal

The package is published on Packagist; no authentication keys are needed for the free edition.

Step 2
Enable the module and run setup
bin/magento module:enable MageMe_Core MageMe_EUWithdrawal
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
Step 3
Configure placement and emails

In the Magento admin, open Stores → Configuration and find the EU Withdrawal section. Enable the function, choose where the button appears (footer, customer account, order pages), and review the acknowledgment email template. The storefront flow lives at /withdraw-contract and ships translated into 22 EU languages.

Step 4
Test the customer flow

Place a test order, then walk through the flow as a customer: click Start withdrawal, locate the order (works for guest orders too, no login required), select the items to withdraw, hit the confirmation control, and check that the receipt email arrives with a timestamp. The two-step structure and both prescribed labels are built in.

Step 5
Verify against the checklist

Run through the compliance checklist below. Incoming withdrawals land in an admin queue with CSV export, so your support team can process them like any other sales document. Full setup details are in the documentation.

The free edition is the complete legal implementation: two-step flow with the prescribed wording, guest and account support, item-level withdrawal, automatic receipts, editable email templates, the digital-content waiver flow, and the admin queue. The Pro edition (from €249) exists for stores that want proof, not just the mechanism: a tamper-evident activity log, cryptographically verifiable receipts, evidence that withdrawal terms were displayed before checkout, one-click withdrawal links in transactional emails, and a signed export you can hand to a regulator or court as one file.

Compliance checklist

Ten checks, covering the storefront, the process, and the paperwork:

  1. A withdrawal function is live on the storefront, labelled “withdraw from contract here” (or an unambiguous equivalent in each store language).
  2. The confirmation control is labelled “confirm withdrawal” (or equivalent).
  3. The function is prominent: findable without digging through menus or terms pages.
  4. It works without login, registration, or app download, including for guest orders.
  5. It stays available during the entire withdrawal period, not just at checkout.
  6. The form asks only for necessary data: name, order identification, contact channel.
  7. An acknowledgment of receipt (with content, date, and time) is sent automatically on a durable medium (email).
  8. Your withdrawal information texts (withdrawal policy, instructions) mention the function and how to find it.
  9. Your team has a process for the incoming withdrawal queue: who reviews, who refunds, in what timeframe.
  10. Every storefront targeting EU consumers is covered, including non-EU stores and store views in other languages.

This checklist is implementation guidance based on Directive (EU) 2023/2673 and published national implementations as of 24 June 2026. It is not legal advice. For your specific obligations, consult your counsel. A solid legal overview is available from William Fry.

Key takeaways

  • 19 June 2026 is the effective date. Article 11a of the Consumer Rights Directive has applied in every EU member state since then, with no transition period for traders.
  • Scope is wider than most expect. Any store concluding online contracts with EU consumers is covered (goods, services, digital content), including non-EU merchants directing sales into the EU.
  • The mechanics are prescribed, not suggested. Two steps, fixed wording at both ends, no login walls, continuous availability, and an automatic timestamped receipt on a durable medium.
  • Non-compliance is expensive by default. The withdrawal window stretches to 12 months and 14 days on every affected order, before any fine or injunction enters the picture.
  • Magento 2 has no native function. The free MageMe EU Withdrawal Button implements the full required flow; the Pro edition adds tamper-evident evidence for stores that want audit-grade proof.

Frequently asked questions

Is the EU withdrawal button mandatory for every online shop?
It is mandatory for every trader who concludes distance contracts with EU consumers through an online interface (a website or an app) whenever a statutory right of withdrawal exists. It applies to goods, services, and digital content. Pure B2B stores and contracts concluded offline (phone, email, in person) are not covered.
Does the withdrawal button requirement apply to non-EU stores?
Yes. The obligation follows the consumer, not the company address. A store based in the US, UK, or anywhere else that directs its activity at EU consumers (EU shipping options, euro pricing, EU-targeted marketing) must provide the withdrawal function for those contracts since 19 June 2026.
What exactly must the withdrawal button say?
The first control must be labelled “withdraw from contract here” or an equally unambiguous formulation in the contract language; in Germany the prescribed wording is “Vertrag widerrufen”. The confirmation control must be labelled “confirm withdrawal”. Ambiguous labels such as “Cancel” or “Contact us” are unlikely to satisfy the requirement.
Where does the withdrawal button have to be placed?
The directive does not prescribe a pixel position; it requires the function to be prominent, easily accessible, and continuously available throughout the withdrawal period. In practice that means a clearly visible entry point (for example in the footer and the customer account) on the same online interface where the contract was concluded. Hiding it in terms and conditions or deep menus does not qualify.
Can I require customers to log in before withdrawing?
No. The function must be reachable without registration, authentication, or downloading an app. Guest purchasers must be able to withdraw as easily as account holders. The form may only ask for the information necessary to identify the customer and the contract, such as name, order number, and email.
What happens if my store has no withdrawal button after 19 June 2026?
Three things. The withdrawal period for affected orders extends from 14 days to 12 months and 14 days. Consumer protection associations (and in some markets competitors) can pursue injunctions and cease-and-desist claims. And national authorities can impose fines, up to 4% of annual turnover for widespread infringements under the EU consumer-protection cooperation framework. Withdrawals declared by email or model form remain valid regardless.
Does Magento 2 include a withdrawal button out of the box?
No. Neither Magento Open Source nor Adobe Commerce ships an Article 11a withdrawal function, and the RMA/returns mechanism does not satisfy the requirement: it manages return logistics, not the legal declaration of withdrawal. The free MageMe EU Withdrawal Button module adds the compliant two-step flow, guest support, automatic receipts, and an admin queue.
Do digital products need the button if customers waive their withdrawal right?
The waiver works per transaction, not per store. Digital content delivered immediately is exempt only when the consumer expressly consented to immediate delivery and acknowledged losing the withdrawal right at checkout. Orders without a valid waiver keep their withdrawal right, so a digital store still needs both a compliant waiver flow and the withdrawal function for everything the waiver does not cover.

What our customers say

Vladimir Popov
About the Author
Vladimir Popov
verified Founder & Lead Developer, MageMe

Vladimir Popov is the founder and lead developer of MageMe (ACTEK d.o.o., Ljubljana, Slovenia). He has been building on Magento since 2011, starting with Magento 1 and moving to Magento 2 at its 2.0 beta. He wrote the first versions of every MageMe extension himself and still reviews every release.

His focus is clean, performance-first PHP code that plays nicely with Hyvä, Breeze, and stock Luma themes. He writes most of the technical content on the MageMe blog and answers support tickets personally for complex issues.