Skip to content

Cookie settings

Choose which kinds of cookies you allow. You can change your choice at any time via Cookie settings at the bottom of every page. Privacy statement

Necessary

Always on

Needed to log in, keep your cart and remember your choices. These are always on.

Which cookies?
  • weboke_sessie, weboke_klant, weboke_remember: your session and staying logged in
  • weboke_basket: your cart
  • wkBtwIncl: showing prices with or without VAT
  • wok_cookies: your cookie choice, 12 months

Measures which ad leads to a visit or order, so we do not pay for ads that do nothing.

Which cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), up to 90 days
  • OpenAI Ads, ads in ChatGPT
  • wok_aff: which partner referred you to us (affiliate programme), 60 days

4.6

Country and language

Each country has its own site, with prices and VAT for that country.

View

Module 5 · 5.3

English

The withdrawal button

Module 5: Obligations and terms · Reading time: 10 minutes

Learning objective: After this lesson you can explain what the European withdrawal button requires, since when it is mandatory in each country, and how to set it up and test it in a WooCommerce shop.

Key concepts: withdrawal function (withdrawal button, termination function, "Widerrufsbutton"), online interface, text on the button, always available, no account required, statement, confirmation function, acknowledgement of receipt on a durable medium, pre-contractual information

This lesson explains the rules as they apply on 9 November 2026. It is not legal or tax advice. If you are unsure about your situation, ask a lawyer, your trade association or your accountant.

As easy to get out as to get in

Ordering online takes a few clicks. Until recently, withdrawing often meant sending an email, printing a form or tracking down customer service. The EU found that unbalanced. Directive (EU) 2023/2673 added a new Article 11a to Consumer Rights Directive 2011/83/EU: anyone who concludes a distance contract via a website or app must also be able to withdraw from it via a withdrawal function on that website or app. In everyday language this is called the withdrawal button.

The right of withdrawal itself does not change: still 14 days, the same exceptions (lesson 5.2). The button is an extra way to use it. The customer may still send an email or the model withdrawal form.

What the button must do

The rule is almost identical in all EU countries. Summarised from Article 11a and the Dutch text (Article 6:230oa of the Dutch Civil Code, BW):

  1. A clearly visible and easily accessible function on your website (or app), with an unambiguous text showing that it is used to withdraw from the contract.
  2. After clicking, the customer can fill in or confirm a statement with: their name, details that identify the contract (for example the order number), and the electronic address (usually email) where they want to receive the confirmation.
  3. Then a second function, a confirmation button, also with an unambiguous text, which actually submits the withdrawal.
  4. You send an acknowledgement of receipt without delay on a durable medium (an email is enough) with the content of the statement and the date and time it was received.
  5. The function is available throughout the entire withdrawal period. A customer who uses the confirmation button on the last day has withdrawn in time.

Your pre-contractual information (lesson 5.1) must now also state that the button exists and where it is (EU Article 6(1)(h); NL Article 6:230m(1)(h) BW; BE Article VI.45 WER).

The ACM (Netherlands Authority for Consumers and Markets) adds practical points to the Dutch rule:

  • Example texts: "Hier de overeenkomst ontbinden" (terminate the contract here) or "Koop ongedaan maken" (undo purchase).
  • The button appears everywhere you sell, on the website and in the app; a link in an email is useful, but not enough.
  • Logging in may be offered as an option, but an account must not be required.
  • Only ask for what is needed to find the purchase, and do not make the customer re-enter details they already gave when ordering (so for a logged-in customer you can prefill them).
  • After submission, a confirmation stating which purchase and when: date and time.

According to the legal literature, a button that only says "Cancel", buried deep in a menu, is too vague: make it clear that it is about withdrawing from or terminating the contract.

Per country: text and date

CountryWhereText on the button (example from the law or regulator)Since
EUArticle 11a of Directive 2011/83/EU (inserted by 2023/2673)"withdraw from contract here" or equivalentApplies from 19 June 2026
NetherlandsArticle 6:230oa BW (Dutch Civil Code)ACM: "Hier de overeenkomst ontbinden" (terminate the contract here), "Koop ongedaan maken" (undo purchase)Mandatory from 25 June 2026, according to the ACM
BelgiumArticle VI.61/2 WER (Code of Economic Law)"hier de overeenkomst herroepen" (withdraw from the contract here) or equivalentIncluded in Book VI of the WER; check the start date with the FPS Economy (FOD Economie)
Germany§ 356a BGBButton "Vertrag widerrufen", confirmation "Widerruf bestätigen"Since 19 June 2026

Two dates for the Netherlands? The directive gives 19 June 2026 as the date from which the rules must apply. The ACM gives 25 June 2026 as the date from which the Dutch button is mandatory. In November 2026 that no longer matters to you: the button is required in all three example countries. Selling from the Netherlands, your shop must follow Article 6:230oa BW and the ACM guidance in the Dutch row. If you sell in several languages, use a text for each language that is clear in that country.

How to set it up in WooCommerce

Since WooCommerce 11.1 there is a feature intended for exactly this: Order withdrawal. It is off by default. You switch it on under WooCommerce > Settings > Advanced > Features. According to the WooCommerce documentation and source code, this is what it does:

  • A form appears at the address /my-account/withdraw-order/ (the first part follows your My account page; you can change the last part under Advanced > Page setup in the account endpoints, for example to withdraw-from-contract).
  • It works without an account: a guest fills in first name, last name, email address (twice), order number and "the whole order" or "only certain products", with a free text field.
  • Then a review step with the button "Confirm withdrawal" or back to make changes. Only after confirming has the withdrawal been sent.
  • The customer immediately receives an acknowledgement of receipt with the details entered and the date and time; you receive an email at the administrator address. If the order number matches the email address of an order, WooCommerce adds an order note and a notice in the admin; if the order is older than 14 days, a warning is shown.
  • It changes nothing about the order: no different status, no cancellation, no refund. You do that yourself (lesson 6.5).
  • One withdrawal can be submitted per order, and at most one per 30 seconds per email address and IP address.

There are two things the feature does not do for you, and those are exactly what the law requires:

  1. The button itself. WooCommerce does not put a link on your site. Add a link "Withdraw from contract" yourself (or "Overeenkomst herroepen", "Koop ongedaan maken" in Dutch, "Vertrag widerrufen" in German) in the footer, so it appears on every page, and mention it in your withdrawal information and confirmation email.
  2. The right texts. The default texts are in English ("Withdraw from contract"); in a Dutch installation they are translated if that translation exists. Check the text on the page and in the email in every language you sell in.

WooCommerce itself states that the feature does not guarantee you comply with the rules. If you use an older version, or want more (for example a link with return labels), there are two other routes: your own page with a form (a form plugin that automatically sends the customer a confirmation with the details and the date and time), or a returns plugin or service that handles this. Assess it like any plugin (WordPress course, lesson 5.3).

What to watch for, whichever route you choose:

  • Reachable without an account. A link to My account that only shows a login form does not comply. The WooCommerce feature sits under My account, but also shows the form to guests: test it in a private window.
  • Also for guest orders. The customer looks up the order with order number and email address.
  • The confirmation email really arrives. Test it with an address at a different provider (lesson 6.1). WooCommerce does not complete a withdrawal if an enabled email cannot be sent.
  • No extra hurdles: no tracking on this page, and no captcha that sends visitors to a third party without you mentioning it in your privacy policy.
  • Someone reads it. A withdrawal via the button starts the same 14-day period for refunding (lesson 6.5).

At Theehuis Example, the footer shows the link "Overeenkomst herroepen" (withdraw from contract) next to "Contact" and "Terms and Conditions". It opens shop.example.com/my-account/withdraw-from-contract/. After "Herroeping bevestigen" (confirm withdrawal), the customer receives an email with the details entered and "received on 12 November 2026 at 14:32".

Pre-contractual information and the confirmation email

Remember to update your information:

  • in your withdrawal information (lesson 5.2): "You can withdraw via the link Withdraw from contract at the bottom of every page, with the model withdrawal form or by email to ...";
  • in your confirmation email (lesson 5.4): the same sentence with the link.

Summary

  • Since June 2026, a consumer must be able to withdraw online from a contract concluded online, via a withdrawal function (EU Art. 11a, NL 6:230oa BW, BE VI.61/2 WER, DE § 356a BGB); for your shop in the Netherlands, the ACM guidance applies as well.
  • The button has an unambiguous text, appears everywhere you sell and is reachable throughout the period without a required account.
  • Two steps: statement (name, order, email) and confirmation; then an immediate acknowledgement of receipt with content, date and time.
  • Since 11.1, WooCommerce has the Order withdrawal feature (off by default); you arrange the footer link and the texts yourself, and you always test in a private window.
  • Mention the button in your withdrawal information and in the confirmation email.

Quiz

1. What does the withdrawal button change about the 14-day period?



2. Theehuis Example puts the button only in My account, behind the login screen. Is that correct?



3. What must the acknowledgement of receipt contain?



4. Which text matches the German rule in § 356a BGB?



5. Where does the button go, according to the ACM?



Exercise

Exercise A5.3: Your withdrawal button. First switch on the Order withdrawal feature (or your own form) and the link in your footer. Then enter your shop's address and choose your country; optionally enter the address of the page your button leads to. The program requests the homepage, fetches the first product via the Store API and requests that product page too. On both, it looks for a link or button with a text such as "overeenkomst ontbinden", "overeenkomst herroepen", "koop ongedaan maken", "hier de overeenkomst herroepen" (Dutch), "Vertrag widerrufen" (German) or "withdraw from contract". It then opens the page the button leads to, without cookies, like a guest. Green if the button is on both pages, the target returns 200 on your own address, does not redirect to a login page, and has a form with fields for name, email and order. Orange if the button is on only one of the two pages, the form has no order field, or the text is only "cancel" ("annuleren"). Red if there is no button or the target only shows a login screen. The program never submits the form.

Then do the test the program does not do: fill in the form with a test order and your own address at a different provider. Did the confirmation arrive with the content, date and time? How long did it take?

Exercise A5.3: Your withdrawal button




What you enter and what we find isn't stored. Your browser remembers your answers and whether you've passed the exercise. If you're signed in, we only save that you got the exercise (almost) right in My courses; you can delete that there too.

Further reading

One moment…

Set up your domains

For each domain, arrange the nameservers, the link to your hosting and who becomes the owner.

Loading your domains…