Withdrawal Button for Magento 2

View Demo

From 19 June 2026, EU law requires every online store selling to consumers to show a withdrawal button - a simple way for shoppers to cancel a purchase contract online.

The Withdrawal Button extension adds that function to Magento 2: a compliant two-step cancellation flow, an automatic email receipt, and an admin queue to handle every request.

  • Show the withdrawal button required by EU law from 19 June 2026
  • Ship the compliant two-step withdrawal flow out of the box
  • Send an automatic, timestamped durable-medium receipt
  • Let guests withdraw with an order number and email, no account needed
  • Let customers withdraw a whole order or single items by quantity
  • Process requests from an admin queue with filters and CSV export
  • Route approved withdrawals into Magento credit memos and refunds
Hyvä
Magento Cloud
Mage-OS
Compatible with:
Community:
2.3.* - 2.4.9
Enterprise:
2.3.* - 2.4.9

Business Value

The Magento 2 Withdrawal Button extension adds the EU withdrawal function your store needs before the deadline. From 19 June 2026, Article 11a of the amended Consumer Rights Directive (2011/83/EU) requires a clearly visible withdrawal function in any online shop that sells to EU consumers. Miss it, and a customer's withdrawal window can stretch from 14 days to 12 months and 14 days.

Built as a Magento 2 EU withdrawal button, it gives your store the Magento 2 right of withdrawal flow that Article 11a describes, without custom development.

  • The clock is managed for you: The cancel option appears only while an order is inside its legal withdrawal period and disappears the moment that period ends. You don't track dates by hand, and an order past its deadline can't be cancelled through your store.

  • No queue of cancellation emails: Customers and guests submit and confirm cancellations themselves, and you act on them from one screen. A spike after a holiday sale or a faulty batch doesn't turn into messages your team answers one by one.

  • Keep refunds under control: Customers cancel only the items they want to send back, not the whole order by default, so a cancellation costs your store only what it should.

  • Be able to prove it: Every cancellation is recorded and confirmed to the customer in writing. If a shopper or a regulator ever questions one, you can show it was received and handled properly.

How the Two-Step Withdrawal Flow Works

The compliant flow, out of the box

A Withdraw from contract button appears on the order while the withdrawal period is still open. The customer opens the order from their account or, as a guest, enters the order number and email address. They choose which items to withdraw, review the summary, and confirm.

The request is placed in your admin queue, and the customer immediately receives a confirmation email. The email is time-stamped and saved, so you have dated proof that the request was received.

Whole Order or Single Items

Customers choose what to withdraw

On the item selection step, the customer chooses which items to withdraw and how many of each, up to the quantity they ordered.

Quantities already covered by a pending or approved request are taken out of what is available, which stops the same item being withdrawn twice. A request that you reject frees its items again, so the customer can submit a corrected one. Shipping is offered for refund only when the whole order is withdrawn.

Receipts and an Audit Trail You Can Show

Compliance is easier to defend when you can produce a record

Every cancellation is stored right in Magento. The full record stays in your store, with nothing sent to an outside service, so you can always show exactly what was requested and when.

Each request keeps its own reference number, the related order, the items and quantities, the refund amount, the submit time, and the customer's IP address. As its status moves from pending to approved or rejected, that history stays with the request, and the customer receives a confirmation email with the same details as their proof of cancellation.

You can open any request or export the full list whenever you need it.

Process Requests From One Admin Queue

Withdrawal requests sit next to the rest of your order work

The extension adds a dedicated grid under Sales in the Magento admin. From the queue you can open a request, see the order alongside the items being withdrawn, and approve or reject it with an optional note. The customer gets an automatic email about the decision. The same requests also show up on the customer and order pages in the admin, so you can see a customer's withdrawal history in context.

You can narrow the grid down to what you need:

  • Filter by status, so open requests stay separate from closed ones.
  • Filter by date, customer, or order number to find a specific request.
  • Export the current view to CSV when accounting needs the records.

Each new request can trigger an alert email to the recipients you set per store view, so nothing waits unseen.

Refunds That Finish the Job

From an approved request to a completed refund

After you approve a request, you refund it straight from the request page using Magento's standard credit memo.

You choose how the money goes back. With standard Magento, it returns to the original payment method. If you also run our Store Credit & Refund extension, the same credit memo can return the amount as store credit, keeping the money in your store for the customer to spend again.

Each credit memo is linked back to its withdrawal request and listed on the request's Credit Memos tab, so you can see what was refunded against each one. Shipping is refunded only when the whole order is withdrawn.

Languages and Multi-Store Setup

Configure each store view on its own

Settings apply at the store-view level, so a multi-store setup can run different values per storefront.

Per store view you can set the withdrawal window in days, the return address shown to customers, the email sender, the admin notification recipients, and which template each of the customer and admin emails uses. The interface text uses Magento's standard translation system, so you can translate it for each locale the same way you translate other modules.

Themes and Technical Fit

Drops into a standard Magento store

The withdrawal button is added to order emails, the order view, the customer account, and the footer without editing templates, so there is nothing to wire up by hand.

The extension ships both Luma and Hyvä storefront templates, and it runs on Magento Open Source and Commerce.

How It Compares to Other Options

A few extensions and free modules address Article 11a. They differ mostly in how far they go past the button itself.

Capability Mirasvit Withdrawal Button Free / open-source modules Generic "cancel order" modules
Compliant two-step flow with confirmation step Yes, the directive's intent-then-confirm flow ships by default Usually yes, though wording and durable-medium proof vary Often no; many use a single click with no confirmation summary
Durable-medium receipt email Yes, timestamped and stored automatically for each request Sometimes a generic email with no stored copy Rarely; cancellation rarely produces a compliant receipt
Stored request record with CSV export Yes, included in the base product, with submit time, status, items, refund amount, and IP Usually a basic list, or only in a paid tier Not part of the design
Admin queue with filters and CSV export Yes, filter by status, date, customer, or order, and export Basic list at best Limited; tied to order cancellation rather than withdrawal records
Refund handling Yes, starts a native Magento credit memo and links it back to the request Credit memo only, if any Cancels the order without a structured refund record
Guest withdrawal without an account Yes, via order number and email lookup Often yes Varies

Who It Is For

The requirement is broad, so the extension fits several kinds of merchant. A few common cases:

  • B2C retailers selling physical goods to EU consumers, including sellers based outside the EU who ship into it.
  • Service and subscription sellers whose contracts carry a right of withdrawal.
  • Stores that need partial withdrawals, where customers return single items by quantity rather than the whole order.
  • Multi-store operators that need per-store-view windows, return addresses, and email settings.
Install the Withdrawal Button for Magento 2 and meet the EU withdrawal requirement before 19 June 2026.
No hidden fees
Lifetime access to source code
Access to free support and updates for 1 year
Updates and support prolongation - $90

Pay today $149 for the first year.

Then $90 for updates and support services per year.

Cancel anytime.

30 days money back guarantee
See it in action!
Pick a quick tutorial to learn about various aspects of this extension
Customer Reviews 0
Earn points for your review about this extension modules. $1 = 10 points
Write Your Own Review

check-circle You submitted your review for moderation.

Manual & Support
Need more help?

Save time by starting your support request online and we'll connect you to an expert.

Frequently asked questions
chevron-down chevron-right

Is the withdrawal button mandatory for my store?

If you sell to consumers in the EU and the products carry a right of withdrawal, then in most cases yes, from 19 June 2026. This includes many sellers based outside the EU who ship into it. Check your exact obligations with legal counsel, since national rules can differ in detail.
chevron-down chevron-right

What makes the flow compliant rather than just a cancel button?

Article 11a asks for a two-step flow: the customer states the intent to withdraw and identifies the order, then confirms on a summary page, and receives an acknowledgement on a durable medium. A single-click cancel with no confirmation step usually does not meet that standard. The extension ships the two-step flow and the confirmation email by default.
chevron-down chevron-right

Can guests withdraw, or only registered customers?

Both. Logged-in customers select the order from their account history, and guests look up an order with the order number and email, so no account is required.
chevron-down chevron-right

Does this handle the refund as well?

Yes. After you approve a request, you refund it from the request page using Magento's standard credit memo, and the credit memo is linked back to the request. With standard Magento the money returns to the original payment method. If you also run our Store Credit & Refund, the same credit memo can return it as store credit instead.
chevron-down chevron-right

What happens if I do nothing before the deadline?

For affected orders, the withdrawal window can extend from 14 days to 12 months and 14 days, and national consumer authorities can act on complaints. The exposure grows with every order placed while the function is missing.
chevron-down chevron-right

Which languages are included?

The interface text uses Magento's standard translation system, so you can translate it for each store view the same way you translate other modules. The extension does not ship fixed language packs.
chevron-down chevron-right

Will it work with my Hyva storefront?

Yes. The extension ships both Luma and Hyva storefront templates. It does not currently provide a GraphQL API for fully headless setups.
chevron-down chevron-right

Does buying this give me legal advice?

No. The extension provides the technical withdrawal function the directive describes. Whether your overall setup, disclosures, and timing meet your obligations is a question for your legal team.
Reasons to choose Mirasvit
Client focusing and satisfaction

These are our primary. A major portion of our new clients come from referrals from our existing clients. Our professional team of developers, marketers and support staff have invested the best knowledge and experience in the field into our work, so you know you can come back to us again and again.

Remarkable support

One year free and high quality support. We go to great lengths to provide maximum satisfaction with every module you have purchased in our store. By helping you with installation, configuration, answering your every question, we do all our best to eliminate any possible problems.

Risk-free Investment

30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.

Constant improvements and upgrades

We constantly add new features to all our modules, and are always interested in hearing your opinion and implementing your suggested features in our future developments.

Comprehensive Documentation

We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.

Unencrypted source code of our products

You can customize extension according to your needs and requirements.

Usability and Performance

The Module is easy to install and upgrade, just follow our step-by-step user guide. Additionally, the extension is ready to use with the Hyvä theme.

Ready for Magento Cloud

No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.

Loading...