Free tool · EU withdrawal function
Withdrawal button checker
Since 19 June 2026, EU online shops must offer an electronic “withdraw from contract” function. Enter a shop's address and the checker looks at its public pages the way a customer would: it reports whether a withdrawal function was or was not found within 1 or 2 clicks of the home page, where the link was, and whether an online form sits behind it. It checks labels in Dutch, French, Italian, Spanish, Polish, German and English. It is a measurement of public pages, not legal advice.
Checker
Coming soon. The online check is not switched on yet. Until it is, use the manual check below: it covers the same steps.
What the check looks for
- The home page. Every link and button in the header, the page and the footer is read. A link with a withdrawal-function label counts as 1 click.
- One click further. If there is none, it opens up to five likely pages: anything labelled with withdrawal information, then returns, terms and conditions, account, help and contact. A function link found there counts as 2 clicks.
- The form behind the link. It opens the link and checks for an online form with fields to fill in (not a search, newsletter or login box). It never submits the form.
- Information is not the function. A page about the right of withdrawal, or the model withdrawal form, was already required before June 2026. Finding only those is reported as “a withdrawal function was not found”.
Labels it recognises
| Language | Counts as the withdrawal function | Information only (not the function) |
|---|---|---|
| Dutch | Overeenkomst herroepen · Herroepen · Herroeping indienen | Herroepingsrecht · Herroepingsformulier (model form) |
| French | Se rétracter du contrat · Exercer mon droit de rétractation · Rétractation en ligne | Droit de rétractation · Formulaire de rétractation |
| Italian | Recedi dal contratto · Esercita il diritto di recesso · Richiedi il recesso | Diritto di recesso · Modulo di recesso |
| Spanish | Desistir del contrato · Ejercer el desistimiento · Solicitar el desistimiento | Derecho de desistimiento · Formulario de desistimiento |
| Polish | Odstąp od umowy · Zgłoś odstąpienie · Odstąpienie od umowy online | Prawo odstąpienia · Formularz odstąpienia |
| German | Vertrag hier widerrufen · Widerrufsbutton · Widerruf erklären | Widerrufsrecht · Widerrufsbelehrung · Widerrufsformular |
| English | Withdraw from contract · Withdraw from your order · Submit a withdrawal | Right of withdrawal · Withdrawal form · Withdrawal policy |
Check a shop by hand
- Open the shop's home page on a phone and on a computer, without logging in.
- Look in the footer and the menu for a link worded as an action, such as “withdraw from contract here” or the shop language's equivalent from the table above. A link called only “right of withdrawal” or “returns” is information, not the function.
- Count the clicks from the home page until you reach a page where you can fill in the withdrawal (name, order number, e-mail).
- Check the button at the end is clearly a confirmation, such as “confirm withdrawal”.
- Note whether you had to log in first. Whether a login may be required is a disputed legal question, and the checker cannot see past one.
What the result means
- “A withdrawal function was found within N clicks”: a link labelled as the function, with an online form behind it, N clicks from the home page.
- A labelled link but no form seen: the form may need a login or JavaScript, or the link opens e-mail.
- An online form with another label: there is a form, but the link to it is worded as information (for example “withdrawal form”).
- “A withdrawal function was not found within 2 clicks”: nothing labelled as the function was visible on the pages checked.
None of these is a legal assessment. For a WooCommerce shop, EasyWithdraw adds a labelled withdrawal button, a confirmation step, a timestamped acknowledgement e-mail and a log, free on WordPress.org. It is a tool, not legal advice.
About our crawler
This checker, and a study of withdrawal functions at online shops in the Netherlands, France, Italy, Spain and Poland, read public shop pages with this user agent:
TidewellWithdrawalStudy/1.0 (+https://tidewellsoftware.com/tools/withdrawal-button-checker/#crawler)
It reads robots.txt first and follows it, sends at most one request per second to a shop, reads at most six pages per shop, never submits forms, never logs in, and stores no page content or personal data: the study keeps only the shop's address and the yes/no flags described above, and publishes country totals only, never shop names. To opt out, add this to your robots.txt:
User-agent: TidewellWithdrawalStudy
Disallow: /
Questions or a removal request: [email protected].
Frequently asked questions
What is the withdrawal function?
Directive (EU) 2023/2673 added Article 11a to the Consumer Rights Directive. Since 19 June 2026, EU online shops that sell to consumers must offer an electronic way to withdraw from a contract, labelled “withdraw from contract here” or an equally clear wording in the shop's language, easy to find and available for the whole withdrawal period. The consumer then confirms, and the shop sends an acknowledgement on a durable medium such as e-mail.
What does the checker look at?
Only public pages: the shop's home page (header, body and footer), then up to five pages one or two clicks away, such as returns, terms, account and help pages. It looks for a link or button with a withdrawal-function label in Dutch, French, Italian, Spanish, Polish, German or English, and for an online form behind it. It never submits a form and never logs in.
Does a “found” result mean my shop meets the law?
No. The checker reports what it could see: whether a withdrawal function was or was not found within a number of clicks. Whether a shop meets its legal duties depends on things a crawler cannot judge, such as the confirmation step, the acknowledgement e-mail and the full customer journey. It is a measurement, not legal advice.
Why might it miss a withdrawal function that exists?
Functions that only appear after logging in, that are loaded by JavaScript after the page opens, that sit behind a cookie wall, or that use a label it does not know are invisible to it. If the shop's robots.txt asks automated tools to stay away, it does not look at all.
Is the shop address I enter stored?
The Worker keeps each result in Cloudflare's cache for up to an hour so repeat checks do not load the shop again, and Cloudflare keeps standard request logs. Tidewell does not keep a list of checked shops, and this page sets no cookies and has no analytics.
How do I add the function to a WooCommerce shop?
Plugins can add it. Ours is EasyWithdraw, a free WooCommerce plugin with a withdrawal button, a confirmation step, a timestamped acknowledgement e-mail and a log. Germanized and German Market include one too, and vendidero publishes a free standalone button plugin.
Last updated 8 November 2026. Questions or corrections: [email protected].