Od 19 czerwca 2026 r. sklepy internetowe w Unii mają dawać konsumentowi przycisk, którym odstąpi od umowy tak łatwo, jak ją zawarł. Wymóg pochodzi z art. 11a dyrektywy 2011/83/UE, dodanego dyrektywą (UE) 2023/2673. Polska tego artykułu do dziś nie wdrożyła: 24 października 2026 r. ani tekst jednolity ustawy o prawach konsumenta, ani lista jej nowelizacji w ISAP nie zawierają funkcji odstąpienia. Ten tekst pokazuje, co dokładnie mówi przepis, jak sprawdziliśmy stan polskiego prawa, kiedy polski sklep i tak musi mieć przycisk, i jak go zbudować w WooCommerce, Shopify albo we własnym systemie.
Artykuł opisuje treść przepisów i stan prac legislacyjnych na dzień publikacji, nie jest indywidualną poradą prawną dla twojego sklepu.
Od kiedy obowiązuje przycisk odstąpienia od umowy
Dyrektywa (UE) 2023/2673 z 22 listopada 2023 r. (EUR-Lex) dotyczy głównie usług finansowych zawieranych na odległość, ale jej art. 1 pkt 3 dopisuje do ogólnej dyrektywy o prawach konsumentów nowy art. 11a. Ten artykuł obejmuje każdą umowę zawieraną na odległość przez interfejs internetowy, nie tylko finansową. Motyw 37 mówi to wprost: obowiązek ma dotyczyć także umów o inne towary i usługi, przy których prawo Unii daje prawo odstąpienia.
Daty są w art. 2 ust. 1 dyrektywy:
| Etap | Data | Podstawa |
|---|---|---|
| Przyjęcie i publikacja przepisów krajowych | do 19 grudnia 2025 r. | art. 2 ust. 1 akapit pierwszy |
| Stosowanie przepisów krajowych | od 19 czerwca 2026 r. | art. 2 ust. 1 akapit pierwszy |
| Raport Komisji o funkcjonowaniu przycisku | do 31 lipca 2030 r. | art. 2 ust. 3 |
Dyrektywa nie działa bezpośrednio wobec sklepu. Obowiązek powstaje dopiero w prawie krajowym, które ją przenosi. Stąd różnica między “przepis obowiązuje w UE od 19 czerwca” a “przepis obowiązuje mój sklep”, i stąd sekcja niżej.
Czy Polska wdrożyła przycisk odstąpienia od umowy
Nie. Sprawdziliśmy to w trzech miejscach.
Pierwsze to tekst jednolity ustawy z 30 maja 2014 r. o prawach konsumenta, ogłoszony obwieszczeniem Marszałka Sejmu z 4 września 2026 r. (Dz.U. 2026 poz. 1244). Zwrot “odstąpienia od umowy” pada w nim kilkadziesiąt razy, ale nie ma ani funkcji odstąpienia, ani etykiety “odstąp od umowy tutaj”, ani odesłania do dyrektywy 2023/2673.
Drugie to karta ustawy w ISAP (Dz.U. 2014 poz. 827) i jej lista aktów zmieniających. Najnowszy z nich to ustawa z 4 września 2026 r. o zmianie ustawy o przeciwdziałaniu nieuczciwym praktykom rynkowym oraz ustawy o prawach konsumenta (Dz.U. 2026 poz. 1353). Ona wdraża inną dyrektywę, 2024/825 o ekologicznych twierdzeniach i aktualizacjach oprogramowania, i wchodzi w życie 27 września 2027 r. O funkcji odstąpienia nie ma w niej ani słowa.
Trzecie to lista druków Sejmu X kadencji, pobrana 24 października 2026 r. z API Sejmu (ostatni druk z 22 października). Wśród druków, których tytuł wymienia ustawę o prawach konsumenta albo umowy zawierane na odległość, jedynym rządowym projektem jest druk 2799, czyli ten sam projekt, który stał się ustawą z poz. 1353. Projekt zmieniający kilka ustaw pod innym tytułem mógłby to wyszukiwanie ominąć. Nie sprawdzaliśmy też etapu rządowego w Rządowym Centrum Legislacji, więc nie wykluczamy, że projekt istnieje przed skierowaniem do Sejmu.
Polskie prawo zna już coś podobnego, tylko dobrowolnego. Art. 30 ust. 3 ustawy o prawach konsumenta pozwala przedsiębiorcy dać możliwość złożenia oświadczenia o odstąpieniu na swojej stronie internetowej, a art. 30 ust. 4 każe wtedy niezwłocznie przesłać konsumentowi potwierdzenie na trwałym nośniku. Art. 11a idzie dalej w trzech punktach: funkcja staje się obowiązkowa, ma określoną etykietę i osobny przycisk potwierdzenia, a potwierdzenie musi zawierać treść oświadczenia oraz datę i godzinę złożenia.
Co dokładnie musi robić funkcja odstąpienia od umowy
Art. 11a ma pięć ustępów. Poniżej każdy z nich przełożony na zachowanie sklepu, z oficjalnym polskim brzmieniem etykiet z Dziennika Urzędowego UE.
| Ustęp | Wymóg | Co to znaczy w sklepie |
|---|---|---|
| ust. 1 | Funkcja oznaczona słowami „odstąp od umowy tutaj” lub odpowiadającym im jednoznacznym sformułowaniem, w czytelnej formie | przycisk albo link z tym napisem, nie “Zwroty” ani “Pomoc” |
| ust. 1 | Stale dostępna przez cały okres na odstąpienie, umieszczona w wyróżniony sposób i łatwo dostępna | widoczna od złożenia zamówienia do końca terminu, nie schowana w regulaminie |
| ust. 2 | Internetowe oświadczenie pozwala łatwo podać lub potwierdzić imię i nazwisko, dane identyfikujące umowę i dane środka elektronicznego do potwierdzenia | formularz z numerem zamówienia i adresem e-mail, wstępnie wypełniony u zalogowanego klienta |
| ust. 3 | Wysłanie przez funkcję potwierdzenia oznaczoną słowami „potwierdź odstąpienie od umowy” lub jednoznacznym odpowiednikiem | drugi krok z osobnym przyciskiem, dopiero on wysyła oświadczenie |
| ust. 4 | Po potwierdzeniu: bez zbędnej zwłoki potwierdzenie otrzymania na trwałym nośniku, z treścią oraz datą i godziną złożenia | automatyczny e-mail z pełną treścią i znacznikiem czasu |
| ust. 5 | Termin jest zachowany, jeśli oświadczenie złożono przed jego upływem | liczy się chwila kliknięcia, nie chwila, w której ktoś w sklepie przeczyta zgłoszenie |
Motyw 37 dodaje kilka wskazówek do interpretacji. Konsument nie powinien musieć wykonywać czynności, żeby znaleźć funkcję, na przykład pobierać aplikacji, jeśli umowy nie zawarł w tej aplikacji. Przedsiębiorca może prowadzić do funkcji hiperłączami. Klient zalogowany nie powinien drugi raz podawać danych identyfikacyjnych. Przy zamówieniu kilku towarów sklep może pozwolić odstąpić od części umowy. Krok potwierdzenia ma chronić przed przypadkowym odstąpieniem.
Dwie rzeczy z tej tabeli najczęściej giną przy wdrożeniu. Pierwsza to etykieta: “Zwróć produkt” opisuje coś innego, bo zwrot towaru to skutek odstąpienia, nie samo oświadczenie. Druga to ust. 5: jeśli formularz zapisuje zgłoszenie w kolejce, a e-mail wychodzi godzinę później, liczy się czas złożenia, więc ten czas trzeba zapisać po stronie serwera w chwili kliknięcia.
Kogo dotyczy obowiązek przycisku odstąpienia
Art. 11a dotyczy umów zawieranych na odległość “za pośrednictwem interfejsu internetowego”, czyli strony, sklepu, aplikacji. Nie ma znaczenia platforma: WooCommerce, Shopify, PrestaShop, sklep headless na Astro albo Next.js, aplikacja mobilna. Zakres wyznacza prawo odstąpienia, więc obowiązek odpada tam, gdzie tego prawa nie ma.
- Sprzedaż firmom (B2B) nie jest objęta, bo dyrektywa 2011/83 chroni konsumentów. Sklep mieszany potrzebuje przycisku dla zamówień konsumenckich.
- Wyjątki z art. 16 dyrektywy 2011/83 (EUR-Lex), w Polsce art. 38 ustawy o prawach konsumenta: towary wykonane według specyfikacji konsumenta, szybko psujące się, zapieczętowane towary otwarte po dostarczeniu ze względów higienicznych, treści cyfrowe po rozpoczęciu dostarczania za zgodą konsumenta, usługi w pełni wykonane za jego zgodą i inne.
- Sklep z personalizowanymi i zwykłymi towarami potrzebuje przycisku, ale może wyłączyć z formularza pozycje objęte wyjątkiem.
- Subskrypcje i usługi cyfrowe zawierane online są objęte w okresie odstąpienia. Wypowiedzenie umowy po tym okresie to osobny temat, którego art. 11a nie reguluje.
Polski sklep sprzedaje do Niemiec: czy musi mieć przycisk już teraz
Brak polskiej ustawy nie chroni sklepu, który sprzedaje konsumentom w państwie, które art. 11a wdrożyło. Decyduje o tym art. 6 rozporządzenia Rzym I (WE) nr 593/2008 (EUR-Lex). Jeśli przedsiębiorca kieruje działalność do państwa, w którym konsument ma miejsce zwykłego pobytu, umowa podlega prawu tego państwa (ust. 1 lit. b). Strony mogą wybrać inne prawo, ale ten wybór nie może pozbawić konsumenta ochrony przepisów, których nie da się wyłączyć umową (ust. 2). Klauzula “prawem właściwym jest prawo polskie” w regulaminie nie usuwa więc obowiązków z prawa kraju klienta.
Kierowanie działalności to kwestia oceny konkretnego sklepu: wersja językowa, waluta, dostawa do danego kraju, domena krajowa, reklama skierowana na ten rynek. Sklep, który ma niemiecką wersję i wysyła do Niemiec, trudno uznać za niekierujący oferty do Niemiec.
Niemcy mają przepis gotowy. § 356a BGB “Elektronische Widerrufsfunktion bei Fernabsatzverträgen” (gesetze-im-internet.de) przenosi art. 11a niemal słowo w słowo: etykieta “Vertrag widerrufen”, przycisk potwierdzenia “Widerruf bestätigen”, potwierdzenie na trwałym nośniku z treścią oraz datą i godziną. Art. 246e § 1 ust. 2 pkt 14a EGBGB (gesetze-im-internet.de) wymienia brak takiej funkcji wśród zakazanych naruszeń interesów konsumentów, gdy naruszenie jest powszechne w rozumieniu rozporządzenia (UE) 2017/2394, a § 2 tego artykułu przewiduje za nie grzywnę. Wzór pouczenia o odstąpieniu w załączniku 1 do EGBGB ma też nowe zdanie o tym, gdzie konsument znajdzie funkcję online.
Praktyczna reguła dla polskiego sklepu: sprawdź prawo każdego kraju, do którego kierujesz ofertę konsumentom. Tam, gdzie art. 11a jest wdrożony, przycisk jest obowiązkowy już teraz. Dla rynku polskiego obowiązek zacznie się z dniem wejścia w życie polskiej nowelizacji. Najprościej wdrożyć jedną funkcję dla wszystkich rynków: działa tak samo, a po polskiej nowelizacji nie trzeba niczego przebudowywać.
Co grozi sklepowi za brak przycisku odstąpienia
Sankcje ustala prawo krajowe, więc odpowiedź zależy od kraju klienta. Dla Niemiec podstawę daje wspomniany art. 246e EGBGB. Dla Polski dziś nie ma przepisu, który można naruszyć, bo art. 11a nie został przeniesiony.
Jedna konsekwencja wynika z samej dyrektywy. Art. 6 ust. 1 lit. h dyrektywy 2011/83 po zmianie wymaga podania przed zawarciem umowy także “w stosownych przypadkach” informacji o istnieniu i umiejscowieniu funkcji odstąpienia. Art. 10 tej dyrektywy wydłuża termin na odstąpienie o 12 miesięcy, jeśli przedsiębiorca nie przekazał informacji z art. 6 ust. 1 lit. h. W Polsce odpowiednikiem art. 10 jest art. 29 ustawy o prawach konsumenta. Czy sąd w danym kraju zastosuje wydłużenie terminu do sklepu, który nie podał informacji o funkcji odstąpienia, przepisy nie przesądzają, ale sklep, który podaje tę informację i ma działający przycisk, nie musi tego sprawdzać w sądzie.
Dlatego regulamin i pouczenie o odstąpieniu warto zaktualizować razem z przyciskiem: jedno zdanie o tym, że konsument może odstąpić online, i link do funkcji.
Przycisk odstąpienia od umowy w WooCommerce: gdzie go umieścić
W WooCommerce masz dziś trzy drogi: funkcję wbudowaną od wersji 11.1, wtyczkę albo własny kod. Wszystkie muszą odpowiedzieć na te same pytania: gdzie klient zobaczy przycisk, czy gość bez konta też go znajdzie, co trafia do bazy i jaki mail wychodzi.
Funkcja wbudowana. WooCommerce 11.1, wydany 3 września 2026 r. (GitHub), dodał funkcję Order withdrawal. Według dokumentacji WooCommerce i kodu wersji 11.2.1, którą sprawdziliśmy:
- jest domyślnie wyłączona, włączasz ją w panelu w WooCommerce > Settings > Advanced > Features (ścieżka z angielskiej wersji panelu),
- formularz działa bez logowania pod adresem /my-account/withdraw-order/ (końcówkę adresu zmienisz w Advanced > Page setup),
- pyta o imię, nazwisko, e-mail podany dwa razy i numer zamówienia, potem o to, czy odstąpienie dotyczy całego zamówienia czy wybranych pozycji (pozycje klient opisuje tekstem),
- ma krok przeglądu z przyciskiem “Confirm withdrawal” i wysyła klientowi potwierdzenie z danymi oraz datą i godziną złożenia,
- dopasowane zgłoszenie dodaje notatkę do zamówienia i powiadomienie w skrzynce WooCommerce, jedno zamówienie przyjmuje jedno zgłoszenie, a kolejne próby z tego samego adresu e-mail i IP blokuje na 30 sekund,
- ostrzeżenie o upływie 14 dni liczy od daty utworzenia zamówienia, bo WooCommerce nie zna daty dostawy, i jest tylko informacją dla sprzedawcy.
Czego funkcja nie robi: nie umieszcza nigdzie linku. W kodzie 11.2.1 nie ma pozycji w menu konta klienta, przycisku przy zamówieniu, linku w mailach ani w stopce. Bez tego formularz istnieje, ale klient go nie znajdzie, a art. 11a ust. 1 wymaga funkcji umieszczonej w wyróżniony sposób. Etykieta “odstąp od umowy tutaj” w polskiej wersji sklepu i miejsca jej wyświetlania to twoja praca.
Wtyczka. Jedną z opcji jest Withdraw, wtyczka do WooCommerce, którą rozwijamy w WPPoland i publikujemy w katalogu WordPress.org (wersja 1.7.0). Według jej opisu dodaje przycisk Withdraw from contract here pod szczegółami zamówienia i na liście zamówień w Moim koncie, wstawia link do maili o zamówieniu w realizacji i zrealizowanym, pozwala odstąpić od wybranych sztuk każdej pozycji, liczy okres od realizacji zamówienia i prowadzi rejestr zgłoszeń ze statusami. Odrzucenie zgłoszenia wymaga podania powodu. Wtyczka niczego nie zwraca sama, zwrot pieniędzy robisz w zamówieniu jak zwykle. Zrzut z jej widoku zamówień jest grafiką tego artykułu.
Własny kod ma sens, gdy sklep ma niestandardowy proces zwrotów, integrację z ERP albo działa headless. Wtedy wymagania z tabeli wyżej są specyfikacją.
Niezależnie od drogi, przycisk powinien być w czterech miejscach:
| Miejsce | Dla kogo | Uwagi |
|---|---|---|
| Lista zamówień i szczegóły zamówienia w Moim koncie | klienci z kontem | ukryj po upływie terminu |
| Mail z potwierdzeniem i mail o wysyłce lub realizacji | wszyscy, także goście | link z numerem zamówienia, bez zmuszania do logowania |
| Stopka sklepu | goście, którzy zgubili maila | link do formularza z wyszukiwaniem po numerze i e-mailu |
| Pouczenie o odstąpieniu i regulamin | wszyscy | informacja o istnieniu i miejscu funkcji |
Goście to najsłabszy punkt. Funkcja wbudowana i wtyczka Withdraw obsługują ich przez numer zamówienia i adres e-mail. Jeśli twój formularz wymaga konta, klient, który kupił bez rejestracji, musiałby je zakładać, a motyw 37 mówi o braku dodatkowych procedur przy dostępie do funkcji.
Przycisk odstąpienia w Shopify
Shopify opisuje temat na dwóch stronach pomocy. Strona o prawie odstąpienia w UE streszcza wymogi dyrektywy: łatwy do znalezienia przycisk lub link, na przykład z konta klienta albo strony statusu zamówienia, dwuetapowe potwierdzenie i automatyczne potwierdzenie na trwałym nośniku. Strona o regułach zwrotów podaje konfigurację:
- włącz samoobsługowe zwroty i anulowania, z opcją zgłaszania zarówno zwrotów, jak i anulowań,
- ustaw okno anulowania na Until item is fulfilled, żeby klient mógł zrezygnować przed wysyłką,
- ustaw okno zwrotu na co najmniej 14 dni liczone od dostawy ostatniej pozycji i zaznacz wydłużenie na weekendy i święta,
- dodaj widoczny link do kont klientów albo pozycję menu prowadzącą do zamówień, osobno dla rynku UE, jeśli masz osobne menu per rynek.
Shopify sam zaznacza, że te narzędzia nie oznaczają automatycznie zgodności. Dwie rzeczy warto sprawdzić względem art. 11a. Pozycja menu może mieć dowolną nazwę, więc nazwij ją “odstąp od umowy tutaj”, a nie “Moje zamówienia”. Konta klientów w Shopify wymagają zalogowania kodem z e-maila, więc oceń, czy dla gościa to nie jest dodatkowa procedura, i rozważ osobną stronę z formularzem bez logowania.
Sklep headless lub własny system: co musi zapisać backend
W sklepie na Astro, Next.js albo własnym frameworku wszystko powyżej trzeba zbudować samodzielnie. Minimalny zapis zgłoszenia, który pozwoli wykazać spełnienie ust. 4 i 5:
- identyfikator zamówienia i, przy odstąpieniu częściowym, lista pozycji z ilościami,
- imię i nazwisko oraz adres e-mail, na który poszło potwierdzenie,
- dokładny tekst oświadczenia, który klient zobaczył w kroku potwierdzenia, zapisany w chwili wysłania, a nie odtwarzany później z szablonu,
- znacznik czasu z serwera w UTC, z wyświetleniem w strefie sklepu w mailu,
- identyfikator wysłanego maila i status doręczenia z dostawcy poczty.
Ostatni punkt łączy się z dostarczalnością. Potwierdzenie na trwałym nośniku to zwykle e-mail, a sklep, którego maile trafiają do spamu albo w ogóle nie wychodzą, nie spełnia ust. 4, choć formularz działa. Jak to sprawdzić w WordPressie, opisaliśmy w poradniku o SMTP, SPF i DKIM.
Formularz bez logowania to też powierzchnia ataku: ktoś znający numer zamówienia i e-mail może złożyć odstąpienie w cudzym imieniu albo podejrzeć zawartość zamówienia. Ograniczenie liczby prób, brak różnicy w odpowiedzi dla istniejącego i nieistniejącego zamówienia oraz pokazywanie pozycji dopiero po weryfikacji to rozsądne minimum. Wtyczka Withdraw ma do tego opcjonalny jednorazowy link wysyłany na adres z zamówienia, domyślnie wyłączony, bo uzależnia odstąpienie od działającej poczty.
Jak przetestować przycisk odstąpienia przed wdrożeniem
Testuj na stagingu, na fikcyjnym zamówieniu i skrzynce, którą kontrolujesz. Dokumentacja WooCommerce proponuje podobną procedurę dla funkcji wbudowanej. Lista kontrolna:
- Otwórz sklep w oknie prywatnym, bez logowania. Znajdź przycisk ze strony głównej w nie więcej niż dwóch kliknięciach.
- Złóż zamówienie jako gość. Sprawdź, czy mail z potwierdzeniem zamówienia zawiera link do funkcji.
- Wypełnij formularz. Sprawdź, czy krok drugi ma osobny przycisk z etykietą “potwierdź odstąpienie od umowy” i czy przed jego kliknięciem nic nie zostało wysłane.
- Potwierdź. Sprawdź, czy mail przyszedł od razu, zawiera pełną treść oświadczenia, datę i godzinę, i czy nie trafił do spamu.
- Sprawdź w panelu, czy zgłoszenie jest przypisane do zamówienia i czy status płatności się nie zmienił.
- Złóż zgłoszenie dla zamówienia z nieistniejącym numerem. Sprawdź, czy sklep i tak je przyjął i powiadomił obsługę do ręcznego sprawdzenia.
- Zmień datę realizacji testowego zamówienia na starszą niż termin. Sprawdź, czy przycisk zniknął z konta klienta.
- Przejdź formularz samą klawiaturą i czytnikiem ekranu. Funkcja, której nie da się obsłużyć bez myszy, nie jest “łatwo dostępna”; wymagania dostępności sklepu opisaliśmy w artykule o WCAG 2.2 i EAA.
Po wdrożeniu sprawdź jeszcze, czy narzędzia analityczne nie ładują się na stronie formularza bez zgody: formularz odstąpienia to strona z danymi osobowymi, a typowe błędy banerów zgód opisaliśmy w tekście o skryptach ładujących się mimo odrzucenia.
Od czego zacząć w swoim sklepie
Najpierw lista rynków: do jakich krajów kierujesz ofertę konsumentom i które z nich wdrożyły art. 11a. Potem wybór drogi technicznej i miejsca przycisku według tabeli wyżej, aktualizacja pouczenia o odstąpieniu i test z listy. Kolejność ma znaczenie, bo od listy rynków zależy, czy przycisk jest pilny już dziś, czy dopiero po polskiej nowelizacji.
Jeśli chcesz, żeby ktoś przejrzał sklep pod kątem tego i innych wymogów unijnych (dostępność, zgody, GPSR, Omnibus), opisujemy to w audycie zgodności EU dla WordPressa. Wdrożenie w WooCommerce, od funkcji wbudowanej po integrację zwrotów z ERP, robimy w ramach usług programisty WooCommerce.







