Effective June 19, 2026

THE WITHDRAWAL BUTTON
AS REQUIRED BY LAW

Starting June 19, 2026, every e-commerce business that sells to EU consumers must offer a online cancellation button (Art. 54-bis of the Consumer Code, EU Directive 2023/2673). This free plugin brings WooCommerce, FluentCart, and Easy Digital Downloads into compliance—with a button, a two-step form, a receipt on a durable medium, and an unalterable log—in just a few minutes.

WWU Withdrawal Button - The EU withdrawal button for WooCommerce, FluentCart, and EDD | Product Hunt

Open source · GPLv3 · WooCommerce (HPOS) + FluentCart + EDD · IT / EN / DE / FR / ES

This isn't just a recommendation. It's a requirement, and failure to comply can result in severe penalties.

The deadline of June 19, 2026, is not merely a guideline. Those who fail to comply face serious consequences.

€10 million

Penalty of up to 10 million euros or to the 41% of revenue annually (Art. 27 of the Consumer Code). The AGCM may take action on its own initiative.

NONE

The clauses that prevent withdrawal become void. The exposure may also be retroactive.

EVERYONE

This applies to everyone Online B2C sellers—including small and medium-sized enterprises (SMEs) and micro-enterprises, regardless of turnover. This also includes non-EU sellers who sell within the EU.

It meets all 6 mandatory technical requirements

The plugin does what the law requires—so you don't have to.

1

Button always visible

«Cancel the contract here» in the orders section, with the exact legal wording for each language (IT/EN/DE/FR/ES) — and a Direct link in order emails (automatic on WooCommerce and EDD), so it's easy to comply with the law.

2

Two-step form

Data entry → «Confirm cancellation.» No reason is required. No dark patterns.

3

Receipt on a durable medium

Instant email + attached PDF + verifiable permanent link, including the exact content and date/time of transmission.

4

Read-only log

Append-only archive with tamper-proof hash chain + free anchoring to OpenTimestamps (certified date). Date, time, IP address, contract data.

5

Prohibition of dark patterns

Canceling is as easy as making a purchase: no hidden buttons, no need to call, no pop-up traps.

6

Updated documents

Generate the standard form (Annex I-B) and the pre-drafted clauses for Privacy, Terms and Conditions, and pre-contractual information.

7

Partial Return by Product

EU law also allows you to withdraw from part of the items in an order (Annex I-B: «of the following goods»). The form displays an optional checklist: the consumer selects the products to be returned; if left blank, the consumer cancels the entire order. The selection appears on the receipt in a durable medium and in the requests dashboard. The withdrawal is never blocked.

8

APIs & Webhooks for Automations

For developers: a'Read-Only REST API (authenticated with a WordPress app password) and a signed webhook (HMAC) that notifies your endpoint when a cancellation is confirmed — ready for Zapier, Make, n8n, CRM, or helpdesk. Privacy-first: the customer's IP address is never exposed. No way to create a withdrawal via API (this is the consumer's legal action).

Live in 3 steps

Install, activate, configure. The rest happens automatically.

01

Install & activate

Install the plugin. Create the withdrawal page and log tables yourself, and declare HPOS compatibility.

02

Select the category

EU/EEA consumers only (default) or always. Exclusions under Article 59 are automatically detected, with the option to override.

03

You are in compliance

The button appears in the orders section and in emails. Every return is recorded, dated, and notified—and you can manage it (processed, resend receipt, refund) from a single page.

Built by engineers, not from a template

Safety and performance are our top priorities. We passed the safety audit with zero findings.

WooCommerceFluentCartEasy Digital Downloads

Three platforms

WooCommerce (HPOS + legacy), FluentCart e Easy Digital Downloads (3.0+), via a common adapter layer. One plugin for all. On FluentCart, the plugin automatically detects any native cancellation add-on and steps aside—no duplicate buttons for the customer.

Compliant Subscriptions

A single 14-day right of withdrawal by contract: the button appears on the initial order and is hidden on the renewals. Works with WooCommerce Subscriptions, FluentCart, and EDD Recurring; detection fail-safe (If you're unsure, the button stays.).

Robust legal evidence

Immutable log with verifiable hash chain + timestamp free (OpenTimestamps, Bitcoin) or Qualified eIDAS via RFC 3161 — Free Sectigo certificates, or national certification authorities (Aruba, InfoCert, D-Trust, Universign, FNMT, SwissSign). Refunds are also recorded.

Multilingual & Jurisdictions

Correct statutory wording for IT, EN, DE (§356a), FR (D.221-5), and ES. Applicability based on the consumer’s country (Rome I).

Compatible with your stack

Complianz (consent), TranslatePress, caching (WP Rocket / LiteSpeed). Shortcodes and hooks to customize everything.

Automation & APIs

Connect Recessi to Zapier, Make, n8n, a CRM, or a help desk: Read-Only REST API (authenticated with the app password) + HMAC-signed webhook upon confirmation of cancellation + 33 documented hooks. Privacy-first: The customer's IP address is never exposed.

Privacy & GDPR by Design

IP anonymized In the hash, the full IP address is deleted after a configurable retention period (default: 10 years), consent register Exportable to CSV and two ready-made privacy clauses (legitimate interest). No trackers, no scripts, and no remote fonts.

Easy even for those without a technical background

No command line, no code. The plugin walks you through the process and lets you know right away if something goes wrong.

Guided dashboard

A setup checklist lets you know what's missing with just one click so you can fix it, where it appears the button and because may not appear on an order.

Email integrated with WooCommerce

The receipt is a genuine WooCommerce email: it features your store’s logo, colors, and header, is customizable, and has a'preview in the settings.

Email delivery test

It checks if you have an active SMTP plugin and lets you send a test email with a single click — so you can immediately tell if the receipts are actually being sent (the root cause of the problems).

Customer self-service

The customer sees the its eligible orders and initiate the return yourself — through your account area, the dedicated page, or the link in the order email. A step-by-step guide He reassures him about delivery times, refunds, and returns as he goes along.

Legible verification

The receipt verification link shows a clear certificate (integrity, order, date/time, hash) — not raw code. JSON is available for those who want it.

Block, shortcode & CSS

Insert it anywhere using the block «Self-service withdrawal» or using shortcodes, and customize each element via CSS (class references included).

Manage Requests in One Place

A dashboard Requests with status (open / processed / refunded), chain integrity badge, and one-click actions: mark as processed, Resend the receipt e Open the order to request a refund (The refund is recorded as proof.) Subscriptions and partial cancellations are flagged.

Do you sell tickets, courses, or digital content?

The right of withdrawal applies by default. For cases exempted by law (Art. 59 of the Consumer Code), the plugin handles it correctly—and where consent is required, it pick up at checkout and retains its evidence in a durable medium.

Tickets for scheduled events

No right of withdrawal (Art. 59, letter n). Tag the product or category and the The button is hidden, without a mailbox or email address. This also applies to archived live sessions (e.g., a webinar on June 20).

Recordings and digital content

Immediate access = exemption air-conditioned (Section 59, subparagraph o). At checkout, the consent checkbox and off it goes'confirmation email on a durable medium; only then will the button disappear. If the box is not checked, the customer retains their 14-day period.

Immediate Zoom services and sessions

A service performed immediately → «service fully performed» (Art. 59, subpar. a, conditional): consent at checkout + email; exemption valid only once the service is completed.

Fail-safe: If a condition is missing or the configuration is incomplete, the button remains visible — for consumer protection. The plugin never hides the «blind» right of withdrawal. And if an order is truly exempt, we explain to the customer why—with a specific legal reference (e.g., «Art. 59(1)(o) of the Consumer Code»)—in a text field that can be edited in the settings.

Frequently Asked Questions

Who needs to comply?

All online B2C sellers targeting EU/EEA consumers, regardless of turnover — including SMEs, micro-enterprises, and freelancers with online stores. Non-EU sellers (e.g., Swiss sellers) who sell to EU consumers must also comply with these requirements for those customers.

Is it enough to just install the button, or do I also need to update the terms of sale?

They need to be updated including the documents. The law (Article 6 of the Consumer Rights Directive) requires that consumers be informed about how exercise your right of withdrawal — and this now includes the new button. Your Terms and Conditions of Sale and the Pre-contractual information The section on unsubscribing needs to be modified to include the button option. Installing the plugin adds the button but does not change your published documents; that's why the plugin gives you the ready-to-paste clauses (Dashboard → Compliance). This is not legal advice: always have your legal counsel review the texts.

Does the button replace the standard withdrawal form?

No. The button is added to the standard form (Annex I-B), which remains mandatory in the pre-contractual information. The plugin generates both.

Does the timestamp have legal validity?

The choice is yours: OpenTimestamps (free, pegged to Bitcoin, verifiable by anyone) or a eIDAS-qualified time stamp via RFC 3161 — There is a free, account-free Sectigo-qualified endpoint available, or you can connect your national TSA (Aruba, InfoCert, D-Trust, Universign, FNMT, SwissSign) for maximum evidential strength.

Is it really free?

Yes. Open source under the GPLv3 license, given to the community for free. No upsells, no tracking.

Is this legal advice?

No. It is a technical tool designed to assist with compliance. Always have your legal counsel review your documents.

Get compliant by June 19, 2026

Free, open source, and ready to use. Download it, activate it, and you're all set.