
EU Withdrawal Rights for Shopify Merchants — The Complete 2026 Guide
What Shopify merchants need to know in 2026 about the EU right of withdrawal — from the statutory basis through deadlines and exceptions to concrete implementation in your store. With templates, checklists, and Shopify-specific tips.
TL;DR — the five rules that matter most
If you sell to consumers in Germany via Shopify, five rules are non-negotiable. Everything else is detail.
- 14-day withdrawal period starting the day the consumer receives the goods (§ 355 (2) BGB). Multi-package orders → the period begins when the last package arrives.
- Withdrawal instruction must be fully accessible before contract conclusion (Art. 246a § 1 EGBGB) — not just as a footer link, but as a prominent notice in the checkout flow.
- Model withdrawal form must be provided (Annex 2 to Art. 246a EGBGB) — as a download or as an HTML form on your storefront.
- Return shipping costs are paid by the consumer only if the merchant has explicitly stated so in the instruction (§ 357 (6) BGB). Missing instruction means the merchant pays.
- Exceptions to the right of withdrawal are listed exhaustively in § 312g (2) BGB — you can’t expand the list. Blanket clauses like “custom orders are excluded” are unenforceable and grounds for a warning notice (Abmahnung).
Get one of these five wrong and the withdrawal period extends to 12 months plus 14 days (§ 356 (3) BGB) — plus exposure to UWG-based warning notices from competitors or consumer-protection associations.
Who is affected — and who isn’t?
The statutory right of withdrawal applies to consumer distance contracts under § 312c BGB. In Shopify terms: it applies if you sell goods or services through your online store to private individuals (B2C).
You are not affected if:
- You sell exclusively to business customers (B2B) and that’s clearly indicated in your terms and the order flow.
- Your contracts are concluded in a physical location (classic in-store sale — not distance selling).
- A § 312g (2) BGB exception applies (see further down).
Distinguishing consumer vs. business sales in Shopify
If your store serves both B2C and B2B customers, you need to keep the journeys clean. Three workable patterns:
- Shopify B2B: separate storefront with login required, separate prices and tax rates. Cleanest solution — the right of withdrawal simply doesn’t apply since the buyer self-identifies as a business.
- Customer Tags + theme flag: B2B customers are tagged, the theme shows B2B-specific content (no withdrawal instruction, different terms) only after login.
- Markets: if the B2B audience sits in a different market, you can split the entire flow regionally.
Mixed-storefront warning: if you serve both groups through the same storefront, full withdrawal rights apply to every B2C order. A blanket clause like “this order is being placed in the course of commercial activity” is not sufficient — the burden of proof sits with the merchant.
Special cases: Austria and Switzerland
If you also sell to AT or CH, different rules apply:
- Austria: withdrawal rights are in the Konsumentenschutzgesetz (KSchG, §§ 3 and 5e ff.) and the Fern- und Auswärtsgeschäfte-Gesetz (FAGG). Largely aligned with the German BGB, but not identical.
- Switzerland: there is no statutory right of withdrawal for distance sales. Many Swiss merchants offer a 14-day return policy voluntarily, but it’s not legally required. If you ship from Germany to Swiss customers, German law continues to apply to your Swiss customers.
We handle AT- and CH-specific details in separate articles. This guide focuses on German law — the starting point for any DACH merchant headquartered in Germany.
The 14-day period in detail
The deadline looks simple: 14 days from receipt. In practice it’s worth walking through.
When the period starts (§ 356 (2) BGB):
- Single item per order: starts the day of receipt.
- Multiple items in one order delivered separately: starts when the last package arrives.
- Recurring deliveries over a period (e.g. subscriptions): starts when the first delivery arrives.
- Services: starts on the day the contract is concluded.
When the period ends: 14 calendar days after start, at midnight. If the deadline falls on a Sunday or public holiday, the period does not extend — unlike many other German civil-law deadlines.
What counts as a withdrawal: an unambiguous declaration — by email, postal mail, fax, or via the form on your website. The consumer does not need to use the word “withdrawal” — a clear statement is enough. A return without any communication is not a valid withdrawal on its own, though depending on the circumstances it can be interpreted as an implied one.
A worked example with a timeline
A customer places an order on Wednesday, 1 May. You ship on Friday, 3 May. The package arrives on Monday, 5 May.
| Day | Event |
|---|---|
| 1 May | Order placed. Period not yet running. |
| 3 May | Shipped. Period not yet running. |
| 5 May | Goods received → period starts. |
| 19 May, midnight | Period ends. |
| 20 May | Withdrawal would be too late — assuming the instruction was correct. |
If the instruction had been faulty — for example, not visible during checkout, or stating the wrong deadline — the 14-day clock would never have started. Instead, the maximum 12 months and 14 days rule kicks in. The customer could still validly withdraw in May of the following year.
Costs and risk of a faulty instruction
A faulty withdrawal instruction is the single most common warning-notice trigger in German e-commerce. The typical fallout:
- Extended withdrawal period of up to 12 months and 14 days (§ 356 (3) BGB). Returns suddenly come in months later, often after the season is over.
- Warning notice (Abmahnung) by competitors, consumer-protection associations, or trade groups under the UWG. Typical cost: €800–1,500 in legal fees plus a cease-and-desist agreement.
- Repeat-offence: contractual penalties from prior cease-and-desist agreements come due — often €5,000 per breach.
Bottom line: a clean instruction takes two hours of research or one app installation. A faulty one costs roughly ten times that on average.
The withdrawal instruction — what exactly must it contain?
The mandatory contents come from Art. 246a § 1 EGBGB. A model text (Annex 1) is offered there; using it gives you legal safe-harbour protection. You can use your own wording, but you take on the interpretation risk — most merchants use the model text verbatim.
Model text (Annex 1 EGBGB)
Six required elements:
- Identification of the contract subject — what is being withdrawn from.
- Start and length of the withdrawal period — 14 days from receipt of the goods (§ 355 (2) BGB).
- Address for withdrawal declarations — postal AND electronic (email). Phone number is optional but recommended.
- Reference to the model withdrawal form and its availability on the website.
- Notice of the consequences of withdrawal — merchant’s 14-day refund obligation, consumer’s return obligation, who-pays-what cost rule.
- Notice of exceptions if applicable (§ 312g (2) — see next section).
The customisation slots in the model text are clearly marked: company name, address, phone, email, and (optionally) fax. Everything else stays word-for-word. If you get creative — say, paraphrasing “the 14-day period” as “two weeks” — you’ve left the model-text safe-harbour and are now interpreting the law on your own. Not recommended.
A pre-filled template and an auto-generated model text are in our template library.
Common mistakes in Shopify stores
Four patterns we see repeatedly in DACH Shopify audits:
- Instruction only as a footer link. The legal duty is “clear and comprehensible before contract conclusion” — and several appellate court rulings have held that a footer link alone isn’t enough. At minimum, a notice in the cart drawer or directly above the checkout button is required.
- “Slimmed-down” versions. Custom short-forms (“You can withdraw within 14 days, write to info@…”) feel practical but are legally vulnerable. Drop a single one of the six required elements and the instruction counts as incomplete — period extends to 12 months and 14 days.
- Missing translations. If your storefront offers DE/EN/FR, the instruction must be available in each language. An English-only instruction served to German customers is not sufficient.
- Instruction text rendered as an image. SEO classic: instruction is rendered as a graphic so the text isn’t copyable from the PDF. Legally problematic — the model text needs to be searchable and copyable so consumers can print it or forward it.
The model withdrawal form (Annex 2 EGBGB)
In addition to the instruction, you must provide the model withdrawal form under Annex 2 to Art. 246a § 1 EGBGB. Required fields: merchant name and address, date, order number, contract subject, signature.
In practice we recommend a dual approach:
- PDF download with a pre-filled letterhead — for customers who prefer to withdraw in writing.
- HTML form on the storefront — for customers who prefer to withdraw online directly. This is also how WithdrawButton operates: a GDPR-compliant form on your storefront that links the withdrawal directly to the order.
Important: providing the form does not replace the instruction. Both are required.
A ready-made template in both formats is on our template page.
The 13 exceptions — and which ones apply to Shopify merchants
§ 312g (2) BGB lists 13 exceptions to the right of withdrawal. The list is exhaustive — you cannot expand it via your terms and conditions. Four of them cover most DACH Shopify cases; the other nine are for niche scenarios.
Important upfront: an exception only applies if you’ve informed the consumer before contract conclusion that the withdrawal right doesn’t apply or expires. Without that notice, the right of withdrawal stands even if an exception objectively applies.
Sealed hygiene and health goods (§ 312g (2) no. 3)
Covers goods that “are not suitable for return for reasons of health protection or hygiene if their seal has been removed after delivery.” Classic cases: cosmetics with a tamper-evident seal, underwear with a hygiene strip, contact lenses, toothbrushes.
Shopify tip: the seal must be clearly visible (shrink wrap, sticker seal, hygiene tag) and documented in the product description and packaging. No visible seal — no exception, even if the item is obviously hygiene-sensitive.
Perishable goods or short shelf-life items (§ 312g (2) no. 2)
Food with short best-before dates, fresh baked goods, cut flowers, fresh and frozen products. The exception is intuitive and uncontroversial here.
Edge cases: convenience products with artificially short shelf life (e.g. packaged salads with MBD < 5 days), food subscriptions. Rule of thumb: if the shelf life is shorter than the 14-day withdrawal period and the product would be spoiled by the time it’s returned, the exception applies.
Customised and made-to-order goods (§ 312g (2) no. 1)
“Goods that are not pre-fabricated and for whose production an individual selection or specification by the consumer is decisive.” Classics: printed T-shirts with custom designs, engraved jewellery, made-to-measure curtains.
Watch out: a mere selection from existing options (e.g. a size-L T-shirt with the existing “Berlin” print) does not count as customisation under BGH case law. The consumer must actually intervene — upload an image, type a custom text, give measurements. So if you offer print-on-demand with template designs, check per variant whether real customisation is taking place.
Digital content without a physical medium (§ 312g (2) no. 13)
Streaming, e-books, software downloads, digital licence keys. The law requires three steps here:
- Consumer’s express consent to early commencement of contract performance.
- Acknowledgement that with the start of performance the right of withdrawal expires.
- Confirmation by the merchant on a durable medium (typically email) after contract conclusion.
In Shopify: an explicit checkbox in the checkout (not pre-checked!) and an order confirmation email that records the expiration. WithdrawButton writes this automatically into the audit trail; manually you have to track it yourself.
Other exceptions (compact)
The remaining nine exceptions are industry-specific — we summarise them compactly:
| No. | Exception | Typical Shopify case |
|---|---|---|
| 4 | Mixed goods | Heating-oil delivery merged with existing stock |
| 5 | Alcoholic beverages with long lead time (≥ 30 days) and price-tied to spot-market fluctuations | Wine subscriptions tied to spot pricing — very rare |
| 6 | Newspapers, magazines, periodicals (except subscriptions) | Single issues — rarely relevant |
| 7 | Sealed audio/video media or software | DVDs, CDs, shrink-wrapped console games |
| 8 | Auctions | Not applicable on Shopify |
| 9 | Urgent repair/maintenance work | B2C services, rare |
| 10 | Accommodation, transport, car rental, food delivery, leisure events with a specific date | Event tickets, hotel bookings, restaurant reservations |
| 11 | Contracts requiring a notarised deed | Practically not relevant |
| 12 | Lotteries and gambling | Practically not relevant |
All 13 in the original text at gesetze-im-internet.de.
Legal consequences of a withdrawal
A valid withdrawal triggers reciprocal unwinding obligations. §§ 355, 357 BGB regulate the details, and most disputes don’t actually concern the right of withdrawal itself but the consequences.
Merchant’s refund obligation
You must refund the consumer all payments received, including standard delivery costs, within 14 days of receiving the withdrawal declaration (§ 357 (1) BGB). Two details worth a closer look:
- Refund channel: the refund goes back via the same method the consumer used for the original payment — credit card → credit card, PayPal → PayPal, SEPA → SEPA. Exception: with the consumer’s explicit consent a different method is allowed, “as long as no costs arise for them.”
- Right to withhold: you may withhold the refund “until you have received the goods back or until you have received proof that the goods have been returned, whichever is the earlier” (§ 357 (4) BGB). In practice: wait for receipt or for tracking proof of dispatch, then refund.
Only standard delivery costs: don’t refund premium delivery if the customer chose that option. Only the cheapest standard option.
Consumer’s return obligation
The consumer must return the goods “without undue delay, and in any case no later than 14 days after the day on which they communicate the withdrawal” (§ 357 (1) BGB). Sending in time (date of dispatch counts) is sufficient.
Who bears return shipping costs? By default the consumer — but only if you’ve expressly stated so in the withdrawal instruction (§ 357 (6) BGB). Without the explicit notice, the merchant bears the costs. This is the most common instruction error in the DACH market.
Compensation for loss of value
This is where it gets tricky: the consumer owes compensation for any loss of value if that loss results from “handling not necessary for examining the nature, properties and functioning of the goods” (§ 357 (7) BGB).
The yardstick is “examination as in a brick-and-mortar shop”:
- ✅ Unpack, look at, try on, switch on — all permitted, no compensation.
- ❌ Wear over multiple days, remove tags, throw away packaging, install software permanently, configure devices — compensation is possible.
Concrete examples:
- Shoes with visible wear marks on the soles: compensation typically 20–40 % of the purchase price.
- Clothing with makeup stains or perfume smell: often full-value compensation (unsellable).
- Console removed from box and used: compensation for resale-as-B-stock.
Prerequisite for any compensation claim: you’ve properly informed the consumer about the right of withdrawal (§ 357 (7) no. 2 BGB). If the instruction is wrong, no compensation — even with objectively massive loss of value.
Implementation in Shopify — the practical bit
Theory is good, implementation is better. Two paths: with an app (faster, lower error risk) or manual (more control, more maintenance).
With WithdrawButton (recommended)
Full disclosure: we build WithdrawButton precisely for this use case. Installation takes ~2 minutes and gives you:
- Pre-filled instruction + model withdrawal form in BGB-compliant form. You fill in only company, address, email — the rest is verified model text.
- App block for your theme. You decide via drag-and-drop where the withdrawal button appears on storefront pages (footer, cart drawer, account area). No theme code editing.
- Embedded form that links the withdrawal directly to the order (order-ID lookup), creates an audit-trail entry with timestamp, and auto-tags the order in Shopify with
withdrawal-received. - Multilingual support for DE and EN out of the box; further EU languages on request.
- Save-the-Sale logic as an optional layer: before the withdrawal is submitted, the customer can optionally accept a 10 % discount voucher to keep the contract. In our pilot installations, ~12–18 % of cancellation attempts convert into kept sales this way.
Manual (without an app)
If you want to build it yourself, four steps:
- Withdrawal instruction as a mandatory page in Shopify (
/policies/refund-policyor a dedicated page under/pages/widerruf). Link it from the footer and from the cart drawer. - Model withdrawal form as a second page. PDF download additionally, uploaded in the Files area.
- Pre-checkout notice in the cart drawer or directly above the checkout button. Theme edit or a generic app block.
- Order workflow: incoming withdrawal emails handled manually — tag the order in Shopify, refund via Shopify Payments (or your payment provider), document the audit trail.
Effort for steps 1–3: about 4–6 hours of theme work. Step 4 is ongoing per withdrawal.
Multilingual storefront
If your storefront offers multiple languages (Shopify Markets or a translation app), the instruction must be available in each of them. The contract is offered in the storefront’s language — and the instruction has to follow that language.
A practical hurdle: the model text from Annex 1 EGBGB exists with binding force in German. The English translation isn’t formally codified; most DACH merchants use the established standard translation (available from e-recht24.de or directly from us).
Mobile optimisation
More than 60 % of DACH Shopify orders come from mobile devices. Instruction and form must be fully usable on 360px viewports. Common mistakes in manual setups:
- Touch targets under 44×44 px (iOS standard) — click targets get missed.
- Horizontal scrolling because tables or long words don’t wrap.
- Model texts rendered as images — not zoomable, not copyable on mobile.
- PDF downloads that open in the mobile browser instead of downloading — confusing.
All WithdrawButton components are mobile-first and tested down to 320×480 viewports.
Common warning-notice traps
The DACH warning-notice landscape in 2025 / 2026 is well documented: IT-Recht-Kanzlei and IDO publish quarterly reports on the most common reasons for warning notices in e-commerce. Five classics around withdrawal hit almost every week:
- Missing or hidden instruction link in the order flow. A footer-only link isn’t sufficient — pre-checkout notice is required.
- Return-cost instruction missing or wrongly worded. “You bear the return shipping costs” without the full model-text wording is regularly warning-noticed — and at the end of the day, the merchant pays.
- Model withdrawal form missing entirely or only as flowing text rather than a usable form / PDF. Pure instruction without form is warning-noticeable.
- Instruction only in one language on a multilingual storefront. EN-only or DE-only — both problems as soon as the storefront offers multiple languages.
- Forbidden restrictions like “We don’t accept returns of …” or “Custom orders are excluded” for products that don’t fall under § 312g (2). The list is exhaustive; your own additions are unenforceable and warning-noticeable.
Typical warning-notice costs in 2026 in the DACH region: €800–1,500 in legal fees plus a cease-and-desist agreement. In repeat cases, contractual penalties from previous agreements kick in (often €5,000 per breach). Once you’ve been warning-noticed by an active body (e.g. IDO, Wettbewerbszentrale), you usually stay on their list for the following year.
Checklist: are you compliance-ready?
Quick run-through — if you can tick all nine, you’re warning-notice-safe:
- [ ] Instruction complete: withdrawal instruction contains all six required elements from Annex 1 EGBGB.
- [ ] Form provided: model withdrawal form available as a download AND an HTML form (or functional equivalent).
- [ ] Accessible before contract: instruction visible in the cart drawer or pre-checkout, not just in the footer.
- [ ] Return costs clearly instructed: if the consumer is to bear return costs, the model-text wording must say so explicitly.
- [ ] Exceptions checked: § 312g (2) only used where it actually applies — no homemade extensions.
- [ ] Multilingual coverage: instruction available in each language the storefront offers.
- [ ] Digital content: for streaming, e-books, software — express consent and notice of expiration before contract conclusion.
- [ ] Order workflow documented: internally clear who receives, tags, refunds, and documents withdrawals.
- [ ] Refund within 14 days: process is automated or guaranteed via SLA.
Wrap-up
The right of withdrawal isn’t complicated — it’s just detailed. Six required elements in the instruction, a model-text form, three follow-up obligations, thirteen exceptions. Set it up cleanly once and have a clear internal workflow for incoming withdrawals, and you’re warning-notice-safe.
Worth reading next: our template library for instruction and form, the guide on withdrawal vs. return, and — if you sell subscriptions — the separate article on the cancellation button under § 312k BGB.
If you want to skip all the setup work, install WithdrawButton — instruction, form, audit trail, and order tagging in one block. More on the WithdrawButton team.