TLDR
- From June 19, 2026, any online store that offers distance contracts to consumers in Germany must provide an electronic withdrawal function, commonly called the "withdrawal button" or Widerrufsbutton.
- This requirement comes from EU Directive 2023/2673 and is implemented in Germany through a revised Section 356a of the German Civil Code (BGB).
- The button must be permanently visible throughout the entire cooling-off period, follow a two-step submission flow, and trigger an automatic confirmation email to the consumer.
- Non-compliance can result in fines of up to €2 million or 4% of annual EU turnover, plus cease-and-desist action.
What Is the Withdrawal Button?
A withdrawal button is an electronic feature on a website or app that allows consumers to withdraw from distance selling contracts entered into online. There is no single rigid legal definition - the relevant regulations refer more broadly to a "withdrawal function." Because this function is typically triggered by a clearly marked button, the term "withdrawal button" (or in German: Widerrufsbutton) has become standard shorthand.
The underlying logic is straightforward: if consumers can enter into a contract online in a few clicks, they should be able to exit that contract with equal ease. The withdrawal button provides an additional, direct channel for contract withdrawal, through the online store itself, without replacing existing options such as withdrawal by email, post, or a downloadable withdrawal form.
This requirement sits alongside two other existing "button obligations" in German law: the order button (Bestellbutton), which makes the payment obligation explicit at checkout, and the cancellation button (Kündigungsbutton), which applies to subscription contracts. Businesses must clearly differentiate all three in their labeling and user flows.

Legal Basis: EU Directive 2023/2673 and Section 356a BGB
The obligation originates from Directive (EU) 2023/2673, which amends the existing Consumer Rights Directive (2011/83/EU) and introduces a new Article 11a. This article requires traders to ensure that consumers can withdraw from contracts using a dedicated withdrawal function on the online interface.
EU member states were required to pass the necessary national legislation by December 19, 2025. The rules take effect on June 19, 2026. Importantly, the obligation applies to any business whose online B2C contracts are governed by German law, including businesses established outside Germany.
Scope: Which Online Stores Are Affected?
The requirement applies where a B2C distance contract (a) carries a statutory withdrawal right under Sections 355 et seq. BGB, and (b) is concluded through an online interface. Distance contracts concluded by telephone, email, or post fall outside the scope.
No withdrawal button is required for:
- Bespoke or custom-made goods
- Perishable goods
- Sealed hygiene products once opened
- Certain financial services and digital content where the consumer has explicitly consented to immediate delivery
However, a mixed-portfolio online store that sells both withdrawable and non-withdrawable products still needs to provide the withdrawal function because at least some offerings carry the statutory right.
What Requirements Must the Withdrawal Button Meet?
General Visual Requirements
- The button must be clearly legible and labeled with "Withdraw from contract" (Vertrag widerrufen) or suitable equivalent.
- It must be permanently available throughout the entire withdrawal period (the cooling-off period, typically 14 days).
- It must be prominently displayed and easily accessible — visually distinguished from standard navigation links, reachable from every sub-page of the store.
- Requiring consumers to register before accessing the withdrawal function is not permitted. Hidden or hard-to-access implementations - not permitted
A clearly labeled link also satisfies the requirement - not just a standard button, ex. footer link.
_converted.avif)
Functional Requirements
- The withdrawal function must enable direct electronic submission of a notice/message of withdrawal.
- It must allow users to provide or confirm their name, the information needed to identify the contract, and a method of communication for confirmation (for example, an email address).
- Where a consumer holds multiple simultaneous contracts, they must be able to clearly identify which contract the withdrawal relates to. An order overview with a selection option meets this need (dropdown).
The Two-Step Withdrawal Process Explained
The law mandates a two-step flow - not a single click.
Step 1: Enter or Confirm Relevant Data
The consumer provides their name, the contract details, and a contact address for the confirmation (typically an email address). Where multiple contracts exist, the consumer selects the relevant one.
Step 2: Confirm and Submit
A second, clearly labeled confirmation function - "Confirm withdrawal" (Widerruf bestätigen) or an unambiguous equivalent must be presented. This is the step that submits the declaration. A withdrawal is deemed timely if the consumer submits it via this function before the withdrawal period expires.
Confirmation of Receipt
Once the consumer activates the confirmation function, the trader must send an acknowledgement of receipt without undue delay, on a durable medium (for example, by email). This confirmation must include:
- The content of the withdrawal declaration
- The date and time of receipt
_converted.avif)
Impact on Online Store Design
The withdrawal button extends legal obligations well beyond the moment of purchase. Businesses need to think about the full contract lifecycle, not just checkout.
Integration into User Areas
In practice, the withdrawal function fits most naturally inside customer accounts, order overviews, or individual order detail pages.
Confirmation pages and post-purchase emails can also direct consumers to the function. Contract withdrawal must be easy to access - not requiring additional registration.
User Navigation and Information Architecture
Consumers must be able to find their contract details and clearly match a withdrawal to a specific order. Order numbers or explicit contract references within order overviews are practical solutions (email confirmations).
Dark patterns - burying the function in menus, overlaying it with pop-ups, or pairing it with retention offers is perceived as unfair commercial practices law.
Coexistence with Order and Cancellation Buttons
Three button obligations now coexist in German e-commerce law: the order button, the cancellation button (for subscriptions), and the new withdrawal button. Each must carry its own name. Confusingly similar wording or placement that blurs the distinction between them creates compliance risk.
Common Compliance Mistakes to Avoid
Several failure patterns are already predictable based on how businesses have handled prior button obligations.
Unclear or Incorrect Labels
Vague wording - "Cancel," "Return," or "Undo order" - does not meet the requirement. Both the withdrawal button and the confirmation step require specific, unambiguous language.
Hard-to-Find Placement
A withdrawal function buried deep in a help section, requiring multiple navigation steps, or visible only after the consumer contacts support contradicts the statutory aim of easy access.
Missing or Incomplete Process Design
Businesses frequently overlook the structured two-step flow. A single "I withdraw" link without a data-entry step and a separate confirmation button does not comply.
Inadequate Backend Integration
Withdrawal notices that do not reach order management, billing, or CRM systems create operational failures and legal exposure. Confirmations must send automatically and reliably.
Insufficient Documentation and Traceability
Every withdrawal must be traceable - date, time, content, and the consumer who submitted it. GDPR-compliant timestamping and archiving of this data is not optional. A lack of traceability creates serious compliance risk.
How to Integrate the Withdrawal Button
Complying with the new rules requires changes to both the visible frontend and the backend systems that process withdrawals.
Frontend
The withdrawal function is typically integrated into customer accounts or order overview pages. The interface must capture the consumer's name, contract identifier, and contact address, then present a labeled confirmation button. The design must make the function prominent and reachable from any page of the store during the cooling-off period.
Backend
- Validate and record the submission data (including timestamp)
- Match the withdrawal to the correct order or contract in the order management system
- Trigger a GDPR-compliant confirmation email automatically
- Store the withdrawal record with full traceability for audit purposes
Fines and Legal Consequences for Non-Compliance
Failure to provide a compliant withdrawal function constitutes an infringement of consumer interests under Article 246e of the German Introductory Act to the Civil Code (EGBGB).
- Default fine: Up to €50,000
- For traders with EU turnover above €1.25 million: Up to 4% of turnover in the affected member states, or €2 million if turnover cannot be estimated
Enforcement is expected to begin after June 19, 2026. The combination of relatively low technical barriers to compliance and high potential fines makes early action the better path.
Practical Steps for Shopify Stores
- Check every place you sell online. Look at your Shopify store, any apps you use to take orders, and any third-party marketplaces where you sell. If a German consumer can buy from you through that channel, the withdrawal button applies to you there too.
- Identify which products need it. Most physical and digital products sold on Shopify carry a statutory withdrawal right. Exceptions include custom-made items, perishable goods, and sealed hygiene products once opened. If even one product in your store is withdrawable, you need the button.
- Check what you tell customers about their right to withdraw. Review your product pages, checkout flow, and order confirmation emails. If this information is missing or outdated, the 14-day withdrawal clock never starts — meaning customers could withdraw weeks or months later.
- Add the two-step withdrawal flow to your store. You need a clearly labeled "Withdraw from contract" button or link, visible throughout the cooling-off period, ideally in the customer account area or order detail pages. A second "Confirm withdrawal" button must follow before the withdrawal is submitted.
- Connect it to your backend. The withdrawal needs to flow through to your order management, fulfilment, and any billing systems. Your Shopify store must automatically send the customer a confirmation email the moment they complete the withdrawal — including what they withdrew from and the exact date and time.
- Get ready for more withdrawal requests. Once the button is visible at all times, expect more customers to use it — including some right at the edge of the deadline. Build in a clear check so that out-of-period requests are flagged rather than silently processed.
- Test it and keep a record. Before June 19, run the full withdrawal flow on desktop and mobile. Save a record of when you implemented it and what you tested — this documentation protects you if a complaint or fine is ever issued.
The June 19, 2026 deadline is four weeks away.
For Shopify merchants already managing GDPR, CCPA, and global privacy compliance through Consentmo, this is the moment to extend that compliance-first approach to contract law as well. The same principle applies: make it easy for consumers to exercise their rights, and make it easy for your business to prove it.
This article is for informational purposes only and does not constitute legal advice. Consult a qualified legal professional for guidance specific to your business.



