EU withdrawal
This is a tool, not legal advice. ReturnKit gives you a withdrawal function built to the wording of the law, and a record of every withdrawal. Whether your store is compliant also depends on your terms, your withdrawal policy and how you handle each request. If in doubt, ask a lawyer in the countries you sell to.
What changed on 19 June 2026
EU consumers have long had a 14-day right to withdraw from most online purchases without giving a reason (Consumer Rights Directive 2011/83/EU, the "CRD"). Until now they could use it by email, letter or any clear statement.
Directive (EU) 2023/2673 added Article 11a to the CRD. EU countries apply it from 19 June 2026. For contracts concluded through an online interface, such as a WooCommerce store, the trader must now offer a withdrawal function on that interface. In short, Article 11a asks for:
- A clearly labeled function. It must be labeled "withdraw from contract here" or an equally unambiguous wording, be prominently displayed and easy to access, and stay available for the whole withdrawal period.
- An online withdrawal statement. Through the function the consumer gives or confirms:
- their name;
- details identifying the contract (the order);
- the email address (or other electronic means) where the confirmation should go.
- A confirmation step. The statement is sent with a separate function labeled "confirm withdrawal" or an equally unambiguous wording.
- An acknowledgement of receipt. Without undue delay, on a durable medium (an email qualifies), including the content of the statement and the date and time it was submitted.
The right of withdrawal itself is unchanged: at least 14 days, for goods normally counted from delivery, with the same exceptions as before (Article 16 CRD, for example sealed hygiene goods unsealed after delivery, made-to-order or quickly perishing goods). A withdrawal counts as in time if the consumer sends it before the period ends, which is why the submission time matters.
How ReturnKit meets each point
| The law asks for | ReturnKit |
|---|---|
| A function labeled "withdraw from contract here" | The Withdraw from contract page ([returnkit_withdrawal]) and its submit button. The default label is Withdraw from contract here; change it under Settings → EU withdrawal function → Button label. |
| Prominently displayed and easy to access | The optional Link in the site footer, the [returnkit_withdrawal_button] shortcode for menus, footers and legal pages, a button on each order in My Account, and a link in WooCommerce's processing, on-hold, completed and invoice emails. |
| Available for the whole withdrawal period | The link shows on every eligible order until the period ends. The general form on the withdrawal page is always available. |
| Name, contract details and email for the confirmation | For a known order, the name and billing email come from the order and are shown before sending. The general form asks for Full name, Email address for the acknowledgement and Order number. |
| A "confirm withdrawal" step | Nothing is sent from the first screen. A review screen shows the statement and a separate Confirm withdrawal button (label editable). |
| An acknowledgement on a durable medium, with the content and the date and time | The Withdrawal acknowledgement email, sent the moment the customer confirms. It contains the statement as submitted and the time to the second with the time zone, for example 15 October 2026, 14:03:27 CEST. For a known order, the same acknowledgement also shows on screen. |
| (Evidence) | The statement is frozen when submitted and can't be edited. The request's history records when it arrived, the IP address (shortened by default), and whether the acknowledgement email was sent or failed. Withdrawals linked to an order can't be deleted. |
The customer's side
Ways in
- The footer link or
[returnkit_withdrawal_button]opens the withdrawal page. - The withdrawal page:
- logged-in customers with eligible orders see a list of their orders to choose from, plus Order not listed? Use the general withdrawal form.;
- guests, and customers without eligible orders, see the general form.
- The button on an order in My Account, and the link in order emails, open the form for that order directly. Email links carry the order key, so they work logged out.
- The return form shows Prefer to withdraw from the purchase under your statutory right of withdrawal? with a link, when the order can be withdrawn from.
The form
- For a known order: the customer's name and the email the acknowledgement goes to are shown. They choose The whole order or Only some items; with Withdraw from single items on, they pick items and quantities. Optional comments.
- The general form: name, email, order number, then The whole order or Only some items, where they describe the items in words. Optional comments.
No reason is asked for. A withdrawal never needs one.
Review and confirm
The review screen shows the name, the email for the acknowledgement, the order and what's being withdrawn from, with Confirm withdrawal and Go back and change. Only the confirm button sends anything.
The acknowledgement email goes out the moment the customer confirms, to the email given in the statement. What the browser shows next depends on how they came in:
- For a known order (an order link, My Account or the logged-in order picker), the customer lands on the request page, which starts with Acknowledgement of receipt: We received your withdrawal on 15 October 2026, 14:03:27 CEST, followed by the statement.
- From the general form, the customer sees the same neutral message whether or not the order number and email matched: Your withdrawal has been received. We've emailed the acknowledgement, with the date and time and a link to follow it, to the address you gave. No order details are shown on screen, so the form can't be used to find out whether an order exists. The link to the request is in the email.
The withdrawal period
Set it under Settings → EU withdrawal function:
- Withdrawal period: 14 days by default, and never less. Use more if your terms offer more.
- Extra days for delivery: the legal period runs from delivery, but WooCommerce only knows when an order was completed. If you complete orders when they ship, add your usual delivery time here (0–90 days). Only used when the period starts at completion.
- The period starts:
- When the order is completed (default), plus the extra days. Before completion the period hasn't started, so customers can always withdraw while the order is processing or on hold.
- When the order is placed. Generous: the deadline is never too early. Extra days aren't added.
- After the period:
- Accept and flag it (default). The store can't know the real delivery date, so a late withdrawal is still recorded and acknowledged, flagged Outside the period, and you decide. The customer sees Our records suggest the withdrawal period for this order may have ended. You can still send your withdrawal; we'll review it.
- Don't accept. The form says the period has ended.
- Order statuses that can be withdrawn from: Processing, On hold and Completed by default.
The deadline is the end of the last day (23:59:59) in your site's time zone.
What can be withdrawn from
Only items you mark as a legal exception are left out:
- products ticked No right of withdrawal (Product data → Advanced);
- products in Categories without a right of withdrawal.
Your returns exclusions (sale items, virtual products, non-returnable products and categories) never apply to withdrawals. Items already refunded, or already in another open or completed request, can't be withdrawn from twice. Once a withdrawal from the whole order exists, the order can't get another one.
Handling a withdrawal
Withdrawals appear in Returns → Requests next to returns, with the type Withdrawal and these status names:
| Status | Shown as |
|---|---|
pending |
Received |
approved |
Accepted |
rejected |
Not eligible |
The request screen shows the Withdrawal statement exactly as submitted, with the time it was received. The steps are the same as for a return:
- Accept and send return instructions. The customer gets your instructions and return address.
- Mark items received when the goods arrive.
- Refund and complete. The law asks you to refund without undue delay, and at the latest 14 days after you were told of the withdrawal. You may wait until you have the goods back, or proof they were sent. Refund to the original payment method unless the customer expressly agreed otherwise. That's why, with Pro, Issue store credit is only offered on a withdrawal when the customer chose credit.
Mark as not eligible needs a reason, which is emailed to the customer. A withdrawal made in time needs no reason and can't be refused, so only use it when the right doesn't apply: an excluded product, a business customer, or a period that really has ended.
Withdrawals are never approved automatically, even with Pro's automatic approval on.
Delivery costs after a full withdrawal
After a withdrawal from the whole contract, the trader must also refund the original delivery costs, up to the cheapest standard delivery offered. When a withdrawal covers the whole order, Refund and complete ticks Include delivery costs and adds any shipping that hasn't been refunded yet to the suggested amount. The screen notes: After a withdrawal from the whole order, standard delivery costs must be refunded too.
You can lower the amount before refunding, for example if the customer chose a more expensive delivery than your standard one. For partial withdrawals, delivery costs aren't added by default; tick the box if you want to include them.
Unmatched withdrawals
A withdrawal is valid whether or not the customer typed their order number correctly. A statement from the general form is recorded as unmatched when:
- the order number and email don't match an order; or
- they match an order that can't be withdrawn from online: its status isn't one you allow, its period has ended with After the period set to Don't accept, or it already has a withdrawal for the whole order. The statement is still kept for staff to judge, and the customer sees the same message as for any other withdrawal.
For an unmatched withdrawal:
- the statement is still recorded and the acknowledgement is still sent;
- the request is flagged No matching order, and the store email says Order number given: … (no matching order found);
- the request screen offers Link it to the right order: type the order number and click Link order. The flag is removed and an order note is added.
A linked withdrawal has no item lines (the customer described the items, or chose the whole order, without a matched order). The same goes for a matched withdrawal from the general form where the customer chose Only some items and described them in words. For these, Refund and complete asks you to enter the amount: check the order against the statement, then refund up to what's left on the order.
Unmatched withdrawals can be deleted if they're spam. Once a withdrawal is linked to an order, it can't be deleted.
Other flags
- Outside the period: accepted after the deadline (see above).
- Email differs from order: the acknowledgement email given differs from the order's billing email. Worth a look, but not a reason to refuse.
The checklist on the dashboard
Returns → Dashboard → EU withdrawal checklist checks your setup. Green means done, red means it needs fixing, and a neutral line means ReturnKit can't tell and you should check by hand. Each open line has a Fix link.
| Check | Done when |
|---|---|
| Withdrawal function switched on | Settings → EU withdrawal function → Withdrawal function is on. |
| Withdrawal page published | The page set under Settings → Pages → Withdrawal page exists and is published. Create missing pages recreates it. |
| "Withdraw from contract here" link on every page | Link in the site footer is on, or the withdrawal page is in a navigation menu (classic menus or a block theme's navigation), or a navigation block contains [returnkit_withdrawal_button]. Otherwise it's neutral: if you placed the shortcode somewhere else, check that it shows. |
| Acknowledgement email enabled | The Withdrawal acknowledgement email isn't turned off in WooCommerce → Settings → Emails. |
| Withdrawal links in My Account and order emails | Both Button on orders in My Account and Links in order emails are on. |
| Only one withdrawal form active | WooCommerce's own Order withdrawal feature is off. |
When nothing is red, the hero footnote reads EU withdrawal function set up: button, confirmation step, acknowledgement email and audit log.
The checklist is not legal advice. Also mention the withdrawal function in your terms and your withdrawal policy.
WooCommerce 11.1's own "Order withdrawal" feature
WooCommerce 11.1 added a basic withdrawal form, switched on under WooCommerce → Settings → Advanced → Features → Order withdrawal. It's a single free-text form: no order picker for logged-in customers, no item selection, no audit log, and its requests don't reach ReturnKit.
Use one of the two, so customers don't find two different forms:
- While both are on (and ReturnKit's withdrawal function is on), ReturnKit shows a warning on its own screens and on the Plugins screen, with Open WooCommerce features to switch WooCommerce's off. The checklist line Only one withdrawal form active stays red.
- Orders that WooCommerce's form flagged as "withdrawal requested" are counted on the dashboard (N withdrawals came in through WooCommerce's own form), so none are missed. Handle those from the order screen; they have no ReturnKit request.
What stays your job
- Mention the withdrawal function in your terms and withdrawal policy, and keep the pre-contract information the CRD asks for.
- Mark legal exceptions (No right of withdrawal) only where the law allows them, and say so in your terms.
- Keep the Withdrawal acknowledgement email on, and make sure your site can send email. Each send is logged on the request, so a failure is visible.
- Handle each withdrawal and refund within the legal deadlines.