EU Withdrawal Button
Summary
From 19 June 2026, EU consumer law requires online traders to offer a digital withdrawal function for eligible B2C distance contracts concluded through an online interface. In Germany, this is known as the Widerrufsbutton (withdrawal button).
Pandectes helps you publish a storefront withdrawal form, collect structured requests, send confirmation emails, and manage submissions from your Shopify admin, without building a custom solution from scratch.
What is changing?
The EU Consumer Rights Directive was amended by Directive (EU) 2023/2673, adding Article 11a. Germany implemented this through Section 356a of the German Civil Code (BGB).
The core obligation: if you sell to consumers online and a statutory right of withdrawal applies, customers must be able to withdraw using a withdrawal function on your online interface, not only by email or post.
Key dates:
Date | What happens |
|---|---|
19 June 2026 | Withdrawal function must be available for in-scope online B2C contracts |
Ongoing | Function must remain accessible throughout the applicable withdrawal period |
Who must comply?
The obligation applies if all of the following are true:
- You are a trader selling to consumers (B2C)
- The contract is a distance contract (concluded remotely)
- It is concluded via an online interface (website, app checkout flow, etc.)
- A statutory withdrawal right exists for that product or service
Not in scope:
- Contracts concluded by phone, email, or post only
- Products/services with no statutory withdrawal right (e.g. bespoke goods, certain perishables, some financial services)
- Pure B2B sales
Applies outside Germany too: If your online B2C contracts are governed by German law, you must comply even if your business is not established in Germany.
If your shop sells a mix of withdrawable and non-withdrawable items, you still need the function as long as some offerings are withdrawable.
What the law requires (practical checklist)
1. Prominent, permanent access
The withdrawal function must be:
- Prominently displayed and easily accessible
- Continuously available during the withdrawal period
- Reachable from every page of your online shop (typically via footer or global navigation)
- Visually distinct from ordinary links, not buried in menus or hidden behind pop-ups
A clearly labelled link is sufficient; it does not have to be a literal HTML <button>.
Recommended label (German): Vertrag widerrufen
Equivalent unambiguous wording is acceptable in other languages.
2. Two-step withdrawal process
Withdrawal must happen in two distinct steps:
Step | What the customer does |
|---|---|
Step 1 | Enters name, contract identification (e.g. order number), and an electronic address for confirmation (email). No additional mandatory fields are permitted. |
Step 2 | Confirms the withdrawal via a separate confirmation action labelled |
3. Timely acknowledgement
After submission, you must send an acknowledgement through email. The acknowledgement must:
- Reproduce the declaration’s content, date, and time
- Confirm receipt only, not that the withdrawal is legally effective
4. No unnecessary barriers
You cannot require account registration to withdraw unless the contract itself requires a customer account.
Avoid dark patterns: hiding the link, overlaying it with retention pop-ups, or coupling withdrawal with upsell flows.
5. Withdrawal periods are unchanged
The function does not extend statutory withdrawal periods. The standard 14-day period still applies (from delivery or contract conclusion, depending on product type), with possible extensions only where required pre-contractual information was not provided.
How Pandectes Withdrawal helps
Legal requirement | Pandectes feature |
|---|---|
Online withdrawal function | Storefront withdrawal form (theme app block on a dedicated page) |
Contract identification | Order number field with optional Shopify order validation |
Customer contact details | Name and email fields |
Confirmation step | Submit action with configurable label (German default: Widerruf bestätigen) |
On-screen confirmation | Success screen after submission with request ID |
Durable-medium acknowledgement | Customer confirmation email (customizable in Email editor) |
Merchant awareness | Merchant notification email and Dashboard |
Audit trail | Activity timeline per request with timestamps |
Multilingual stores | Translations for form and success copy |
Brand alignment | Style tab for colors, typography, and custom CSS |
Pandectes handles the collection, confirmation, and notification workflow. You remain responsible for legal labelling, link placement, processing valid withdrawals in your order/returns flow, and aligning pre-contractual information with the new standards.
Getting started
Step 1: Open Withdrawal in Pandectes
In the Pandectes app, go to Settings -> EU Withdrawal button. Use the release banner or sidebar to access:
- Dashboard: view and manage requests
- Settings: limits, validation, policies, notifications
- Style: form appearance
- Email editor: customer email templates
Step 2: Publish the storefront page
Use Storefront page setup (onboarding guide) to complete three steps:
- Theme template: Create an Online Store 2.0 page template (suffix:
withdrawal-requests) and add the Pandectes withdrawal app block. - Store page: Create a published page (default title: Withdrawal Requests) using that template.
- Review: Open the live page and confirm the form renders correctly.
Step 3: Make the page discoverable from every page
Add a link to your withdrawal page in your theme’s footer menu (or another global navigation area):
- Recommended link text (DE):
Vertrag widerrufen - English example:
Withdraw rightorCancel contract
This is the most common way to satisfy the “reachable from every sub-page” requirement on Shopify.
Step 4: Set visibility to Live
On the Withdrawal screen, ensure the form status is Live (not hidden or admin-only).
Step 5: Configure settings
Under Settings, review:
Setting | Recommendation |
|---|---|
Withdrawal period | Match your statutory period (default: 14 days from delivery) |
Validation, order number | Enable to verify the order exists in Shopify |
Validation, email | Enable to verify email matches the order |
Return policy link | Link to your store’s return/withdrawal policy page |
Merchant notification | Enable so your team is alerted on new submissions |
Reply-to address | Set if customers should be able to reply to confirmation emails |
Step 6: Customize copy for German compliance
Go to Language & translations (or the Withdrawal localization section) and review German (de) strings:
Field | Suggested value |
|---|---|
Page / form title |
|
Submit button |
|
Success title | Acknowledgement of receipt (not legal acceptance) |
Step 7: Test end-to-end
- Submit a test withdrawal on your live storefront.
- Confirm the success screen appears with a request ID.
- Confirm the customer email arrives with date, time, and submitted details.
- Confirm the request appears in Dashboard with the correct status.
Managing withdrawal requests
Dashboard
The Dashboard shows all withdrawal requests with:
- Request ID, customer, order number, status, and request date
- Filters and search by ID, customer, order, or status
- Export to CSV (emailed as attachment)
Request detail
Open any request to see:
- Submitted customer details and optional note
- Order matched / not found and email matched / mismatch warnings
- Activity timeline (submission, emails sent, status changes)
- Internal notes visible only to staff
Status workflow
Typical statuses: Requested → Open → Closed (or Declined / Cancelled).
Update status as you process the return, refund, or rejection according to your policies and applicable law.
Email acknowledgements
Customer email
Sent automatically after a successful submission. Customize in Email editor.
The email should:
- Confirm receipt of the withdrawal declaration
- Include date and time of submission
- Reproduce the submitted information (name, order number, etc.)
- Not state that the withdrawal is legally effective (unless your counsel advises otherwise for your product category)
Merchant email
Optional notification to your team when a new request arrives. Configure recipient addresses under Settings.
Compliance checklist
,
- Withdrawal page published and form is Live
- Footer (or global) link labelled clearly — e.g. Vertrag widerrufen
- Link visible on all storefront pages, not only the withdrawal page
- Form collects only name, order/contract ID, and email as required fields
- Submit button labelled Widerruf bestätigen (DE) or equivalent
- Customer receives confirmation email promptly after submission
- Pre-contractual withdrawal information reviewed with counsel
- Internal process defined for validating and fulfilling withdrawals
- Withdrawal function distinguished from order and cancellation buttons in checkout
Frequently asked questions
Does Pandectes add a button to every page automatically?
Pandectes provides the withdrawal form page and app block. You add a navigation link (typically in the footer) via Shopify Navigation settings so customers can reach it from every page.
Is a link enough, or do I need a button?
The law does not require an HTML button. A clearly labelled, prominent link is sufficient.
What if I already have a returns portal?
A returns portal may not satisfy the withdrawal function requirement if it does not follow the two-step process, mandatory labelling, and acknowledgement rules. Review both systems with counsel; many merchants use Pandectes Withdrawal specifically for the statutory withdrawal path.
Does this replace my return policy?
No. You should still maintain a return/withdrawal policy and link to it from the form. Pandectes adds a configurable policy link in Settings.
What about marketplace sales (Amazon, etc.)?
The contracting trader — not the marketplace operator — bears the obligation. If you sell on your own Shopify store, you are responsible for your storefront.
What are the risks of non-compliance?
Non-compliance can be treated as an infringement of consumer interests under German law, with fines up to €50,000 (or up to 4% of EU turnover for larger traders). You may also face extended withdrawal periods, cease-and-desist letters, and injunctive actions.
Does Pandectes guarantee legal compliance?
No. Pandectes provides tools to implement a withdrawal workflow. Compliance depends on how you configure, label, place, and operate the function — and on your product mix and legal obligations. Always consult qualified legal counsel.
Related Pandectes features
- Cookie consent & privacy banner: separate from withdrawal; both may be required for EU stores
- DSR / data subject requests: for GDPR access/deletion requests (different from contract withdrawal)
- Language & translations: localize withdrawal translations across supported languages
Need help?
- Use Live chat in the Pandectes app for setup assistance.
- For legal interpretation, contact a consumer-law attorney familiar with EU and German B2C e-commerce.
Updated on: 18/06/2026
Thank you!
