Articles on: Settings

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.


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 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:

  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 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: RequestedOpenClosed (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.


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.


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.



  • 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

Was this article helpful?

Share your feedback

Cancel

Thank you!