Product page & documentation:
https://solucom.si/solucom-recesso-eu/
From 19 June 2026, EU law (Directive (EU) 2023/2673, new Art. 11a of the Consumer Rights Directive; Italy: Art. 54-bis Codice del Consumo, D.Lgs. 209/2025) requires online stores to provide a
withdrawal function that lets consumers withdraw from a distance contract as easily as they concluded it. Solucom Recesso EU adds that function — and everything around it you need to run it and to prove you did it right — to WooCommerce and WooCommerce stores running FunnelKit.
How it works (in plain terms)
- An eligible customer opens their order and clicks the statutory "Withdraw from contract here" button — in their account, from a link in the order e-mail, or on a public page (no account needed: they look the order up with its number + e-mail).
- A simple two-step form appears: they review what they are withdrawing from (optionally ticking only some items — partial withdrawal is allowed), then confirm. No reason required, no hoops.
- The instant they confirm, the customer receives an acknowledgement of receipt on a durable medium — an e-mail, a PDF copy and a permanent verifiable link — showing exactly what was withdrawn and the precise date and time. The order is flagged "withdrawal requested".
- Every step is written to a tamper-evident, append-only log (hash-chained and timestamped) so you can prove what happened and when. You then handle the refund as usual — the plugin records that too.
That is the whole customer experience. Everything below exists to make it correct, easy to run, and defensible.
For your customers
- A prominently displayed, legible button with the exact statutory wording per language (IT, EN, DE, FR, ES, SV — extensible).
- The button appears where customers actually look: the account area (order list, order detail, a dedicated "Right of withdrawal" tab), a link inside order e-mails, a public self-service page with guest lookup, and anywhere via shortcodes or the Gutenberg block.
- On stores using FunnelKit, the withdrawal link also appears on the FunnelKit thank-you page and can be placed in FunnelKit Automations e-mails via the
{{recesso_url}} merge tag.
- A short, reassuring step-by-step guide during the flow (timing, refund, returns); the wording and the withdrawal window (≥14 days — you may grant more) are editable.
- When an order is genuinely exempt, a clear "why is the button not here" note explains the specific legal exception, instead of leaving the customer confused.
- A human-readable verification certificate for the receipt (integrity, order, date, hash) — not raw code.
For you (the merchant)
- An onboarding Dashboard with a setup checklist (one-click fixes), a plain "how it works" walkthrough, and a "where the button appears / why it might not" explainer.
- A one-click e-mail delivery test that detects your SMTP plugin and proves the receipt actually reaches the inbox — the #1 cause of "nothing happened".
- A Requests dashboard to manage every withdrawal: status (open / processed / refunded), a chain-integrity badge, and one-click mark processed, resend receipt and open the order to refund (the refund is logged as proof you met the 14 days). Subscription and partial-withdrawal requests are flagged.
- A Compliance page: a go-live countdown, the statutory labels in use, the document checklist with ready-to-paste clauses, and environment warnings (Complianz / cache / multilingual) to fix.
- Receipts are real WooCommerce e-mails (your logo, colours, header) with a preview; the front-end is styleable through documented CSS variables and class names from your theme or the Customizer's Additional CSS.
Smart legal handling (so you don't have to think about it)
- Subscriptions — the law gives one 14-day right per contract, so the button shows on the initial order only and is hidden on renewals (WooCommerce Subscriptions). Fail-safe, with opt-in overrides.
- Partial withdrawal — customers can withdraw from only some items of an order.
- Art. 59 exemptions — tag products or categories by the specific statutory reason (events on a fixed date, digital content with immediate access, a service fully performed…). For the conditional reasons the plugin captures the customer's express consent at checkout (WooCommerce classic + block checkout and FunnelKit Aero checkout), stores it as evidence, sends the required durable-medium confirmation, and only then hides the button. Physical products always keep the right — never hidden by mistake.
- Applicability by country — EU/EEA consumers only (default) or always; B2B (VAT) orders can be treated as out of scope.
FunnelKit integration
The FunnelKit integration works on top of standard WooCommerce orders — no separate order store, no data duplication. Specifically:
- The withdrawal link appears on the FunnelKit thank-you page (Funnel Builder / Aero Checkout) so customers can act immediately after purchase.
- The Art. 59 exemption consent checkboxes are rendered on the FunnelKit Aero checkout, using the same validation as the WooCommerce checkout.
- A
{{recesso_url}} merge tag is registered for FunnelKit Automations emails, resolving to the per-order withdrawal link so you can include it in any follow-up sequence.
- Fail-open / fail-safe: all FunnelKit surfaces are additive. The withdrawal is always reachable via the WooCommerce My Account area and the public standalone page (guest lookup by order number + e-mail) regardless of FunnelKit configuration.
Evidence, timestamps & integrity
- The immutable log is append-only and hash-chained (HMAC-keyed with your site secret), so tampering is detectable.
- Optional, opt-in timestamping (off by default — no external call is made until you enable a provider): free, independently-verifiable OpenTimestamps (Bitcoin) anchoring, or a qualified eIDAS RFC 3161 timestamp (Sectigo, or your national authority — Aruba, InfoCert, D-Trust, Universign, FNMT, SwissSign) for stronger "data certa". Failed stamps retry automatically and any not-yet-anchored records are surfaced in the admin.
Privacy & GDPR
- The log commits to an anonymised IP; the full IP lives separately and is erased after a configurable retention (10 years by default).
- A Consent records screen lists and exports the exemption consents (CSV). Two ready-to-paste privacy clauses are generated (withdrawal log + exemption-consent), on a legitimate-interest basis. The uninstaller keeps the evidence log by default (legal hold) unless you opt to erase it.
Documents & compliance
- Generates the Annex I-B model withdrawal form and ready clauses for pre-contractual information, Terms & Conditions and Privacy — and reminds you, clearly, that installing the button is not enough: your Terms and pre-contractual withdrawal article must be updated to describe the new button modality (the plugin gives you the exact text to paste).
Integrations & automation
- A read-only REST API (authenticated with a standard Application Password) to list requests and check an order's withdrawal status, plus an optional signed webhook (HMAC-SHA256) fired the moment a withdrawal is confirmed — for Zapier, Make, n8n, a CRM or a helpdesk. Privacy-first: the consumer's IP is never exposed. 33 documented hooks/filters for developers.
- Plays nicely with Complianz, TranslatePress and page-cache plugins (WP Rocket / LiteSpeed / W3TC).
Platforms & licence
- WooCommerce (HPOS + legacy) and WooCommerce + FunnelKit (Funnel Builder / Aero Checkout / FunnelKit Automations). The WooCommerce My Account area and public standalone page are always available regardless of FunnelKit configuration.
- Free and open source (GPLv3) — no upsell, no tracking, no remote scripts or fonts loaded on your site. Passed a full multi-dimension security audit (0 critical / 0 high).
This plugin is a technical aid to compliance and is
not legal advice. Have your own counsel review your store's documents.