Withdrawal button check sheet for EU web shops: "withdraw from contract here" since 19 June 2026 (Consumer Rights Directive Article 11a, Directive (EU) 2023/2673) for accountants, bookkeepers and web agencies
Partner programme opening soon: join the free waitlist. Planned terms are 50% of each referred sale (75% once you have 5+ paying customers), single level, paid through Gumroad only from revenue received.
What you get: a finished withdrawal button check sheet in three tabs: a shops tab (one row per client web shop; a contact scraper fills the email and phone counts, you tick the withdrawal function checks by hand, and one formula lists every gap with its article); a products tab (a product scraper fills the titles, a formula flags products that may fall under a withdrawal exception); and a clock tab for the 14-day withdrawal, refund and return dates. Plus an acknowledgement email template. Made-up example rows show how it fills in.
Short answer: Directive (EU) 2023/2673 inserted Article 11a into the Consumer Rights Directive 2011/83/EU. Member States had to adopt the rules by 19 December 2025 and apply them from 19 June 2026 (Article 2(1) of Directive 2023/2673). Since then, for distance contracts concluded through an online interface such as a website or app, the trader must let the consumer withdraw through a withdrawal function labelled "withdraw from contract here" (or an unambiguous corresponding wording), continuously available during the withdrawal period, prominently displayed and easily accessible. It leads to an online statement and a "confirm withdrawal" button, and the trader must send an acknowledgement on a durable medium with the content, date and time without undue delay. Recital 37 says this applies to all distance contracts with a right of withdrawal, not only financial services.
Why accountants, bookkeepers and web agencies should look at this now
- It is new and easy to miss. The amending directive is titled "financial services contracts concluded at a distance", so many shop owners never read it. Article 11a still reaches an ordinary clothes or furniture shop.
- A missing withdrawal notice is expensive. If the shop does not give the withdrawal information required by Article 6(1)(h), the 14-day period is extended by 12 months (Article 10(1)), and the consumer is not liable for diminished value of the goods (Article 14(2)).
- Phone and email are both required. Since Directive (EU) 2019/2161, Article 6(1)(c) asks for the geographical address, the telephone number and the email address. A shop with only a contact form fails this line.
- It is a quick, billable check. One hour per client shop, with a clear fix list for the shop builder.
Step 1: get the data (two scrapers, both free during launch)
- Put your client shop homepages in a list. Run the Contact Details Scraper with
maxPagesPerSite: 4. It reads the homepage first, then contact-like pages (contact, about, impressum, support), and returns one row per site withstatus,emails,phonesandcounts. By default it returns only role mailboxes such as info@ or support@; personal addresses are dropped and only counted inpersonalEmailsDropped. - Run the E-commerce Product Data Scraper on the same shops (Shopify, WooCommerce, any shop with structured product data). You get one row per product with
url,shop,titleand, withincludeDescription: true, the description. - Both Actors check robots.txt and scan each site's terms of service first; sites that forbid crawling are skipped for free and reported with a status such as
blocked-by-terms. Neither Actor logs in, so neither can test the withdrawal function inside a customer account. Those checks are done by hand (Step 2, columns F to L).
Step 2: tab 1, shops (one row per client shop)
| Column | What to write | Source |
|---|---|---|
| A. Shop | Domain | |
| B. Scraper status | status from the contact scraper (ok, blocked-by-robots, blocked-by-terms ...) | Actor output |
| C. Emails found | counts.emails. If 0 but personalEmailsDropped is above 0, look at the site: a named person's address still counts as an email address for the consumer | Art. 6(1)(c) |
| D. Phones found | counts.phones | Art. 6(1)(c) |
| E. Address shown | Yes/No: geographical address where the trader is established (by hand) | Art. 6(1)(c) |
| F. Withdrawal function exists | Yes/No: a test order lets you withdraw online through a function, not only by email or post | Art. 11a(1) |
| G. Label | Yes/No: labelled "withdraw from contract here" or an unambiguous corresponding wording, easily legible (in the shop's language: check the wording in your national transposition) | Art. 11a(1) |
| H. Always there, easy to find | Yes/No: continuously available during the withdrawal period, prominently displayed, easily accessible. Recital 37: no extra steps such as downloading an app when the order was not placed in that app; a logged-in customer should not have to identify themself again | Art. 11a(1), Recital 37 |
| I. Statement fields | Yes/No: the online statement lets the consumer easily give or confirm (a) name, (b) details identifying the contract, (c) the electronic means for the confirmation | Art. 11a(2) |
| J. Confirm button | Yes/No: submitted through a confirmation function labelled only "confirm withdrawal" or an unambiguous corresponding wording | Art. 11a(3) |
| K. Acknowledgement | Yes/No: after the test, an email (durable medium) arrived without undue delay with the content and the date and time of submission | Art. 11a(4) |
| L. Withdrawal information | Yes/No: conditions, time limit and procedure, the model withdrawal form (Annex I(B)) and, where applicable, the existence and placement of the withdrawal function | Art. 6(1)(h) as amended |
| M. Order button | Yes/No: the final order button says only "order with obligation to pay" or a corresponding unambiguous wording | Art. 8(2) |
| N. Result | Formula below |
Result formula for row 2 (Google Sheets or Excel 365). The formula and the order of the gaps are our working rule, not wording from the Directive:
=IF(B2<>"ok","CHECK BY HAND: SITE NOT READ ("&B2&")",IF(TEXTJOIN("; ",TRUE,IF(C2=0,"NO EMAIL FOUND 6(1)(c)",""),IF(D2=0,"NO PHONE FOUND 6(1)(c)",""),IF(E2<>"Yes","ADDRESS 6(1)(c)",""),IF(F2<>"Yes","NO WITHDRAWAL FUNCTION 11a(1)",""),IF(G2<>"Yes","LABEL 11a(1)",""),IF(H2<>"Yes","NOT ALWAYS THERE 11a(1)",""),IF(I2<>"Yes","STATEMENT FIELDS 11a(2)",""),IF(J2<>"Yes","CONFIRM BUTTON 11a(3)",""),IF(K2<>"Yes","ACKNOWLEDGEMENT 11a(4)",""),IF(L2<>"Yes","WITHDRAWAL INFO 6(1)(h)",""),IF(M2<>"Yes","ORDER BUTTON 8(2)",""))="","OK",TEXTJOIN("; ",TRUE,IF(C2=0,"NO EMAIL FOUND 6(1)(c)",""),IF(D2=0,"NO PHONE FOUND 6(1)(c)",""),IF(E2<>"Yes","ADDRESS 6(1)(c)",""),IF(F2<>"Yes","NO WITHDRAWAL FUNCTION 11a(1)",""),IF(G2<>"Yes","LABEL 11a(1)",""),IF(H2<>"Yes","NOT ALWAYS THERE 11a(1)",""),IF(I2<>"Yes","STATEMENT FIELDS 11a(2)",""),IF(J2<>"Yes","CONFIRM BUTTON 11a(3)",""),IF(K2<>"Yes","ACKNOWLEDGEMENT 11a(4)",""),IF(L2<>"Yes","WITHDRAWAL INFO 6(1)(h)",""),IF(M2<>"Yes","ORDER BUTTON 8(2)",""))))
Made-up example rows (not real shops)
| A | B | C | D | E | F | G | H | I | J | K | L | M | N. Result |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Made-up: linen-shop.example | ok | 2 | 1 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | OK |
| Made-up: bike-parts.example | ok | 1 | 0 | Yes | No | No | No | No | No | No | Yes | Yes | NO PHONE FOUND 6(1)(c); NO WITHDRAWAL FUNCTION 11a(1); LABEL 11a(1); NOT ALWAYS THERE 11a(1); STATEMENT FIELDS 11a(2); CONFIRM BUTTON 11a(3); ACKNOWLEDGEMENT 11a(4) |
| Made-up: tea-house.example | ok | 1 | 1 | Yes | Yes | No | No | Yes | Yes | Yes | No | Yes | LABEL 11a(1); NOT ALWAYS THERE 11a(1); WITHDRAWAL INFO 6(1)(h) |
| Made-up: candles.example | blocked-by-terms | – | – | – | – | – | – | – | – | – | – | – | CHECK BY HAND: SITE NOT READ (blocked-by-terms) |
In the made-up tea-house row the button says "Returns" and is only visible in the footer of the app, so we marked G and H "No". Whether a given wording is "unambiguous" is a judgement for the shop owner and, if needed, a lawyer.
Step 3: tab 2, products (one row per product from the product scraper)
Article 16 lists contracts with no right of withdrawal, for example goods made to the consumer's specifications or clearly personalised (16(c)), goods liable to deteriorate or expire rapidly (16(d)), and sealed goods not suitable for return for health protection or hygiene reasons that were unsealed after delivery (16(e)). If an exception applies, the shop must say so before the order (Article 6(1)(k)). This tab finds products worth a second look; the word lists are ours, English only, and you should add words in the shop's language.
| Column | Content |
|---|---|
| A. url, B. title | From the scraper |
| C. Flag | =IF(REGEXMATCH(LOWER(B2),"personali[sz]ed|custom|engraved|made to measure|monogram"),"CHECK 16(c) PERSONALISED",IF(REGEXMATCH(LOWER(B2),"fresh|bouquet|flowers|cake|bread"),"CHECK 16(d) PERISHABLE",IF(REGEXMATCH(LOWER(B2),"earring|underwear|lingerie|swimwear|toothbrush|razor|cosmetic"),"CHECK 16(e) SEALED HYGIENE GOODS","WITHDRAWAL APPLIES: 14 DAYS"))) (Google Sheets; in Excel use REGEXTEST where your version has it, or a SEARCH-based version) |
| D. Shop says so | Yes/No by hand for every CHECK row: does the product page or checkout tell the consumer there is no right of withdrawal, or when it is lost? (Art. 6(1)(k)) |
Made-up example rows (not real products): "Engraved oak chopping board" → CHECK 16(c) PERSONALISED; "Fresh tulip bouquet" → CHECK 16(d) PERISHABLE; "Silver hoop earrings" → CHECK 16(e) SEALED HYGIENE GOODS (only if sold sealed for hygiene reasons); "Linen bed sheet" → WITHDRAWAL APPLIES: 14 DAYS.
Step 4: tab 3, clock (one row per withdrawal)
| Column | Formula or content | Source |
|---|---|---|
| A. Order | Order number | |
| B. Last item received | Date the consumer (or a person they named, not the carrier) got physical possession of the goods; for one order delivered in parts, the last item | Art. 9(2)(b) |
| C. Withdrawal info given | Yes/No | Art. 6(1)(h) |
| D. Withdrawal period ends | =IF(C2="Yes",B2+14,EDATE(B2+14,12)) | Art. 9(1), 9(2)(b), 10(1) |
| E. Withdrawal received | Date of the withdrawal statement (a statement submitted through the function before the period ends is in time) | Art. 11(2), 11a(5) |
| F. Refund due by | =E2+14, same means of payment unless the consumer expressly agreed otherwise; the shop may wait until it gets the goods back or proof they were sent, whichever is earlier, unless it offered to collect them | Art. 13(1), 13(3) |
| G. Consumer sends goods back by | =E2+14 | Art. 14(1) |
The sheet counts plain calendar days, which is our working rule. Check how your national law counts the first day, weekends and public holidays. If the withdrawal information is given late but within the 12 months, the period ends 14 days after the consumer receives it (Art. 10(2)); write that date over D by hand.
Acknowledgement email template (wording is ours)
Subject: We received your withdrawal - order [number] Hello [name], we received your withdrawal from contract [order number, items] on [date] at [time, time zone]. Your statement as submitted: "[copy of the full statement]" We will refund [amount] to [payment method] by [date: no later than 14 days after we received your withdrawal]. Please send the goods back to [address] by [date: within 14 days of your withdrawal]. [Shop name] · [geographical address] · [phone] · [email]
Article 11a(4) asks for the content and the date and time of submission. The rest is our suggestion.
Text for the shop's withdrawal instructions
Annex I(A) of Directive 2011/83/EU, instruction 3 as replaced by Directive (EU) 2023/2673, gives this sentence for traders that must provide the function: "You can also exercise your right of withdrawal online at [insert internet address or another appropriate explanation of where the withdrawal function is available]. If you use this online feature, we will send you an acknowledgement of receipt of the withdrawal on a durable medium (e.g. by email), including its content and the date and time of its submission, without undue delay." Use your national language version of the model instructions.
National law and penalties
Member States set the penalties (Article 24 of Directive 2011/83/EU as replaced by Directive (EU) 2019/2161). They must be effective, proportionate and dissuasive. For widespread infringements handled in coordinated action under Regulation (EU) 2017/2394, the maximum fine must be at least 4% of the trader's annual turnover in the Member States concerned, or at least EUR 2 million where turnover information is not available. National rules, the exact national button wording and whether your country transposed on time all differ: check your national law.
Try it on one client shop first
Run both scrapers on one shop, place a small test order, use the withdrawal function and time the acknowledgement email. Then run the rest of your client list. Related free sheets: website legal notice check · GPSR product page check · unit price check · green claims check.
Frequently asked questions
Does the withdrawal button apply to ordinary web shops, not only banks?
Yes. Article 11a covers distance contracts concluded by means of an online interface, and Recital 37 of Directive (EU) 2023/2673 says the obligation should apply not only to distance contracts for financial services but to all distance contracts subject to the right of withdrawal under Directive 2011/83/EU.
From when does it apply?
Member States had to adopt and publish the measures by 19 December 2025 and apply them from 19 June 2026 (Article 2(1) of Directive (EU) 2023/2673).
Is an email address for withdrawals enough?
Not for contracts concluded through an online interface. The consumer can still use the model form or any other unequivocal statement (Article 11(1)), but Article 11a(1) says the trader must ensure the consumer can also withdraw by using a withdrawal function.
Can the shop let customers withdraw from only part of an order?
Recital 37 says that where several goods or services are ordered in the same distance contract, the trader can offer the possibility to withdraw from a part rather than the whole contract.
Not legal advice. The sheet only helps a person check a shop; it does not decide whether a wording is unambiguous, whether an exception applies, sector rules or national penalties. When in doubt, ask your consumer authority or a lawyer. Spotted an error? Write to mininglife7@gmail.com and we correct it.
Sources
- Directive (EU) 2023/2673 of 22 November 2023 amending Directive 2011/83/EU as regards financial services contracts concluded at a distance (OJ L, 2023/2673, 28.11.2023): Recital 37; Article 1 points (2) and (3) (Article 6(1)(h) and new Article 11a); Article 2(1); Annex I — eur-lex.europa.eu, CELEX 32023L2673 (read 28 Oct 2026)
- Directive 2011/83/EU on consumer rights: Articles 6(1)(h), 6(1)(k), 8(2), 9, 10, 11, 13, 14, 16(c)-(e); Annex I — eur-lex.europa.eu, CELEX 32011L0083 (read 28 Oct 2026)
- Directive (EU) 2019/2161: Article 4 points (4) (new Article 6(1)(c) of Directive 2011/83/EU) and the new Article 24 — eur-lex.europa.eu, CELEX 32019L2161 (read 28 Oct 2026)
- Unadhi Actors on Apify Store: Contact Details Scraper and E-commerce Product Data Scraper (READMEs read through the Apify API on 28 Oct 2026)
Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.