Since 2023, EU merchants must let customers exercise their right of withdrawal within 14 days and confirm the request in writing, referencing Directive 2023/2673. Handling right of withdrawal Magento 2 requests without a dedicated flow usually means messy email threads and no audit trail — but Magento's native Return (RMA) tools can structure this process properly.
- Enable and configure Magento's native RMA (Return Merchandise Authorization) module
- Create a custom return attribute to capture the legal withdrawal reason
- Set up automatic email confirmations that reference the 14-day deadline
- Track, authorize and refund withdrawal requests from a single admin grid
Step 1: Enable RMA on your store
Save the section, then clear the cache. A My Returns tab will now appear in the customer account dashboard.
Enable RMA on Product Level to Yes so customers can request withdrawal per line item rather than for the whole order — required when only part of an order is returned. Step 2: Create a "Right of Withdrawal" return attribute
Add option values such as:
Right of Withdrawal (EU Directive 2023/2673)Product DefectiveWrong Item Received
Assign the attribute to the default return attribute set so it appears on the storefront return form.
Step 3: Configure return reasons, resolutions and conditions
These values populate the dropdowns customers see when they fill in the storefront return form.
Step 4: Set up automatic email confirmations
Edit the confirmation template under Content›Design›Email Templates and add a short compliance note, for example: "Your withdrawal request has been received within the legal 14-day period as per EU Directive 2023/2673."
Step 5: Test the storefront request flow
Submit the form as a test customer and confirm the automatic email arrives with all the details captured.
Step 6: Process and refund the request
Once authorized, generate the credit memo from the linked order and issue the refund through the original payment method.
Returns grid's creation date column to monitor this deadline per request. Checklist
- ☐ RMA enabled on storefront and product level
- ☐ Custom
withdrawal_reasonattribute created and assigned - ☐ Return reasons and resolutions configured for legal withdrawal
- ☐ Confirmation email references the 14-day legal period
- ☐ Test request submitted and email verified
- ☐ Refund credit memo issued within the legal deadline
Common mistakes
Problem: Customers can't find where to request a withdrawal.
Fix: Add a direct link to My Returns in your order confirmation email and account navigation menu.
Problem: No proof of the exact request date exists for a legal dispute.
Fix: Rely on the automatic RMA confirmation email timestamp instead of manual customer service replies.
Problem: Withdrawal requests get mixed with regular defect returns in reporting.
Fix: Filter the Sales›Returns grid by the withdrawal_reason attribute value.
Problem: Refunds are issued late, breaching the legal window.
Fix: Set a recurring admin reminder or export the Returns grid weekly sorted by creation date.
FAQ
Is native RMA available on Magento Open Source?
No, the built-in Return (RMA) module is exclusive to Adobe Commerce. Open Source merchants typically rely on a Contact Us form, manual order comments, or a dedicated storefront widget to collect withdrawal requests.
Can I limit withdrawal requests to within 14 days automatically?
Magento's native RMA does not enforce a deadline by itself; you'll need to manually check the order date against the request date, or add custom validation via a developer.
Do I need a separate attribute for EU withdrawal versus normal returns?
Yes, it's strongly recommended. A dedicated reason value lets you report, prioritize and legally document withdrawal requests separately from defect-based returns.
Where do refunds appear after a withdrawal request is authorized?
Once you create a credit memo from the linked order in Sales›Returns, the refund follows the standard Magento credit memo and payment gateway refund flow.
A faster alternative
If you're on Magento Open Source, don't need full RMA logistics, or simply want a compliant, ready-made public page for EU withdrawal requests without building attributes and email templates by hand, a dedicated widget can save significant setup time.

The Withdrawal Button extension adds a storefront page where customers submit their name, email, order number and desired delivery/return date, automatically referencing EU Directive 2023/2673 — no custom attributes or email template edits required.

It's a lightweight way to stay compliant while you evaluate whether full native RMA configuration is worth the extra setup for your store.



