Note: This article is for information only and does not constitute legal advice. For a legally binding assessment, please consult a licensed attorney.
TL;DR
- Cancellation button (§ 312k BGB): mandatory since 1 July 2022, applies to continuing obligations (subscriptions, ongoing contracts).
- Withdrawal button (§ 356a BGB): mandatory from 19 June 2026, applies to distance contracts (one-time B2C purchases and financial services).
- A combined button for both functions is legally not permitted — depending on your model you need both.
- Key difference: § 312k requires a path without login; § 356a allows a login solution only exceptionally, when the contract can only be concluded with an account.
Two buttons that get constantly confused
Online merchants have known the cancellation button (§ 312k BGB) since 1 July 2022. From 19 June 2026 the withdrawal button under the new § 356a BGB is added — introduced by the act implementing EU Directive 2023/2673 (BGBl. 2026 I No. 28). Both look superficially similar: a prominent button, a two-step confirmation flow. But they govern completely different rights — and must not be merged.
The core difference: withdrawal vs. cancellation
| Criterion | Cancellation button § 312k BGB | Withdrawal button § 356a BGB |
|---|---|---|
| In force from | 01/07/2022 | 19/06/2026 |
| Covered contracts | Continuing obligations (subscriptions, memberships) | Distance contracts (one-time purchases) |
| Legal effect | Ends a running contract for the future | Unwinds a concluded contract retroactively |
| Deadline | Contractual/statutory notice period | Usually a 14-day withdrawal period |
| Login allowed? | No — cancellation without login | Exceptionally yes, if the contract requires an account |
| Financial services | Exempt | Covered (no exception) |
| Label | "Verträge hier kündigen" | "Vertrag widerrufen" |
Withdrawal means: the consumer unwinds a freshly concluded contract within the withdrawal period, as if it never existed. Cancellation means: an ongoing contract is terminated for the future. One concerns the winter-jacket purchase, the other the streaming subscription.
Why a combined button is unlawful
Several law firms point out: a single button for cancellation and withdrawal is not permitted. The buttons have different statutory labels, different mandatory fields and trigger different legal consequences. Pressing both into a "terminate contract" button confuses consumers and risks a warning for faulty implementation of both obligations.
Practical consequence: a store offering both subscriptions and one-time purchases needs two separate buttons — a cancellation button and a withdrawal button.
The login trap
A frequently overlooked difference concerns access:
- § 312k BGB (cancellation): per established case law, cancellation must be possible without prior login.
- § 356a BGB (withdrawal): a login solution is only exceptionally permitted — namely when the contract itself can only be concluded with a customer account (relevant e.g. for some financial-service providers). In a standard Shopify store with guest checkout: the withdrawal button must work without login and for guests too.
Hiding the withdrawal button behind a mandatory login repeats the mistake many stores made early on with the cancellation button — a perfect target for warning letters.
What is the same for both
- Two-step flow: trigger button → confirmation page with a second button.
- Prominent placement: easy to find, reachable from every subpage, visually highlighted.
- No mandatory hurdles: no forced extra data (for withdrawal, the reason must never be mandatory).
- Confirmation: documented receipt (for withdrawal on a durable medium per § 356a (4) BGB).
Implementation in Shopify
For the withdrawal button, our step-by-step guide shows how to implement the five building blocks correctly. Retractly delivers exactly the § 356a withdrawal flow out of the box — login-free, statutorily labelled, with an automatic acknowledgment as a durable medium. The § 312k cancellation button is covered separately (many themes/apps already offer it).
FAQ
I only have one-time purchases — do I need both? Then you need the withdrawal button (§ 356a). The cancellation button only if you offer continuing obligations.
Does my existing cancellation button cover withdrawal? No. Different label, different mandatory fields, different legal effect. Two separate functions.
Does the withdrawal button apply to my SaaS/subscription product? For the contract-conclusion withdrawal yes (distance contract). For ongoing termination § 312k applies additionally.
What if I merge them? High warning risk for faulty implementation of both obligations. Keep the buttons separate.
Further reading:
- Retractly — EU withdrawal button for Shopify
- Setting up the withdrawal button in Shopify: guide
- § 356a BGB: the withdrawal button from 19 June 2026
- Withdrawal button checklist 2026
Primary legal sources: § 312k BGB · § 355 BGB · § 356 BGB · EU Directive 2023/2673