> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.pandectes.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# EU Withdrawal

### 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.

| Important: This article explains the regulation in plain language and how Pandectes supports compliance workflows. It is not legal advice. Requirements depend on your products, markets, and contract terms. Consult qualified counsel for your specific situation.

### 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 \*\*`Widerruf bestätigen`\*\* (or unambiguous equivalent). |

###### 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**. 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:
1. **Theme template:** Create an Online Store 2.0 page template (suffix: `withdrawal-requests`) and add the **Pandectes withdrawal** app block.
2. **Store page:** Create a published page (default title: **Withdrawal Requests**) using that template.
3. **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 right` or `Cancel 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 | `Vertrag widerrufen` |
| Submit button | `Widerruf bestätigen` |
| Success title | Acknowledgement of receipt (not legal acceptance) |

###### Step 7: Test end-to-end

1. Submit a test withdrawal on your live storefront.
2. Confirm the **success screen** appears with a request ID.
3. Confirm the **customer email** arrives with date, time, and submitted details.
4. Confirm the request appears in **Dashboard** with the correct status.

### Managing withdrawal requests

###### Dashboard

The **Dashboard** (Withdrawal home) now includes a **Widgets** card, stats, and the requests table.

**Widgets**

* **Storefront (withdrawal page):** path to the form (default `/pages/return-requests`). Use **Edit** if the form lives on another page. Badge: **Active** or **Pending**.
* **Customer Accounts (order status page):** checkout editor path. **Enterprise** shops add **Pandectes Withdrawal** here. Badge: **Active** or **Pending**. Use **Check again** after you save the editor.

![](https://storage.crisp.chat/users/helpdesk/website/-/1/a/5/a/1a5af239e847cf00/image_f9n5c4.png =900x395)

**Stats**

* **Open** (Active)
* **Ending soon** (In 5 days)
* **Closed**
* **Cancelled**
* **Total** (All Time)

**Requests table**

* Customer, ID, Order, Status, Requested (with expiry), Actions
* Search by ID, customer, order, or status
* Filter by status
* Export to CSV (emailed as an attachment)

Warning icons on a row mean the submitted **email** or **order number** did not match Shopify, or email verification is still pending.

###### 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.
---