Notice: Information only, not legal advice.
TL;DR
- Withdrawal = customer's declaration of no longer sticking to the contract
- Return = physical act of sending goods back
- Two separate deadlines: 14 days withdrawal, 14 days return after withdrawal
- Merchant must refund within 14 days of withdrawal (§ 357 BGB) — not only after receiving goods
- Coupling withdrawal → return → refund is warnable
The most common misconception
Many stores phrase roughly: "Send back the goods, then we refund." This is legally wrong and complicates communication.
Correct:
- Step 1: Customer declares withdrawal — contract is terminated
- Step 2: Customer returns goods (optionally via DHL label)
- Step 3: Merchant refunds the purchase price — within 14 days of withdrawal receipt
Two deadlines, two clocks
Withdrawal deadline (customer → merchant): 14 days from goods receipt (§ 355 BGB). The customer must declare withdrawal in these 14 days. The return does NOT have to be complete.
Return deadline (customer → merchant, after withdrawal): 14 days from withdrawal (§ 357 (1) BGB). Timely sending suffices.
Refund deadline (merchant → customer): 14 days from withdrawal declaration (§ 357 (1) BGB). Note: not from goods return receipt!
The big exception: right of retention
The merchant can withhold refund until either:
- goods have been received, or
- customer provides proof of shipment
That's in § 357 (4) BGB. Both options — so a DHL tracking number suffices for the refund claim.
Why this matters to Shopify merchants
Scenario 1: Coupling "goods first, then money" without option 2 Warnable per UWG. Typical warning costs: €500–€1,500 per case.
Scenario 2: Refund only after 3 weeks If customer withdraws day 1, you must refund by day 14. Delaying to day 21 can trigger interest or damage claims.
Scenario 3: Wrong return address The instructions must state the correct return address. Deviation = warnable.
How to model this cleanly in Shopify
- Implement withdrawal flow separately — don't label as "return button". Withdrawal is the legal act (Revoka solves this).
- Return flow via returns app — e.g. PackFlow generates DHL label on demand after withdrawal.
- Refund automation in Shopify Flow after withdrawal (not only after goods receipt, if you don't need the retention right).
The perfect combo
Revoka (withdrawal) + PackFlow (return) + Shopify Flow (refund trigger) = fully automated:
- Customer clicks withdrawal button → Revoka creates PDF and DB entry
- Revoka trigger fires Shopify Flow → PackFlow generates DHL label
- After goods receipt → Shopify Flow → Refund automatic
No manual processing. No legal risk. No frustrated customers from delayed refunds.
Checklist
- Withdrawal instructions state 14-day deadline from receipt
- Return address correct and complete
- Refund deadline 14 days from withdrawal clearly communicated
- Retention right made transparent
- Internal processes set up so refund isn't time-coupled to goods receipt
Further reading: 14-Day Withdrawal Deadline · § 356a BGB Explained · PackFlow DHL Returns