Nový Občanský zákoník - Odstoupení od smlouvy

Předpis č. 89/2012 Sb.

Znění od 15. 2. 2025

89/2012 Sb. Zákon občanský zákoník

Odstoupení od smlouvy

§ 1829

(1) Spotřebitel může odstoupit od smlouvy uzavřené distančním způsobem nebo od smlouvy uzavřené mimo obchodní prostory ve lhůtě čtrnácti dnů. Není-li dále stanoveno jinak, končí lhůta uplynutím čtrnácti dnů ode dne uzavření smlouvy.

(2) Je-li předmětem závazku koupě zboží, končí lhůta uplynutím čtrnácti dnů ode dne, kdy spotřebitel nebo jím určená třetí osoba odlišná od dopravce převezeme zboží, nebo

a) poslední kus zboží, objedná-li spotřebitel v rámci jedné objednávky více kusů zboží, které jsou dodávány samostatně,

b) poslední položku nebo část dodávky zboží sestávajícího z několika položek nebo částí, nebo

c) první dodávku zboží, je-li ve smlouvě ujednána pravidelná dodávka zboží po ujednanou dobu.

(3) Je-li předmětem závazku dodávka vody, plynu nebo elektřiny, které nejsou prodávány v omezeném objemu nebo v určitém množství, tepla z dálkového vytápění nebo poskytnutí digitálního obsahu, který není dodán na hmotném nosiči, končí lhůta uplynutím čtrnácti dnů ode dne uzavření smlouvy.

(4) Nebyl-li spotřebitel poučen o právu odstoupit od smlouvy podle § 1820 odst. 1 písm. i), může od smlouvy odstoupit do jednoho roku ode dne uplynutí lhůty podle odstavce 1, 2 nebo 3. V případě, že podnikatel poučil spotřebitele o právu odstoupit od smlouvy do jednoho roku ode dne uvedeného v odstavci 1, 2 nebo 3, skončí lhůta pro odstoupení uplynutím čtrnácti dnů ode dne, kdy spotřebitel obdržel poučení.

§ 1829a

Pro odstoupení od smlouvy uzavřené mimo obchodní prostory během výletu organizovaného podnikatelem za účelem nebo s účinkem propagace a prodeje zboží nebo poskytování služeb, nebo při nevyžádané návštěvě podnikatele ve spotřebitelově domácnosti platí namísto lhůty čtrnácti dnů podle § 1829 lhůta třiceti dnů.

§ 1830

(1) Spotřebitel může odstoupit od smlouvy jakýmkoli jednoznačným prohlášením učiněným vůči podnikateli.

(2) Pokud podnikatel umožňuje spotřebiteli odstoupit prostřednictvím vyplnění a odeslání vzorového formuláře pro odstoupení od smlouvy na internetových stránkách, potvrdí spotřebiteli bez zbytečného odkladu v textové podobě jeho přijetí.

§ 1831

(1) Odstoupí-li spotřebitel od smlouvy, zašle nebo předá podnikateli bez zbytečného odkladu, nejpozději do čtrnácti dnů od odstoupení od smlouvy, zboží, které od něho obdržel, ledaže mu podnikatel nabídl, že si zboží sám vyzvedne. Lhůta je zachována, pokud spotřebitel odešle zboží před jejím uplynutím.

(2) Podnikatel může po spotřebiteli požadovat pouze úhradu podle § 1832 odst. 2, § 1833 nebo 1834.

(3) Je-li předmětem smlouvy poskytnutí digitálního obsahu nebo služby digitálního obsahu, použije se ustanovení § 2389o obdobně.

§ 1832

(1) Odstoupí-li spotřebitel od smlouvy, vrátí mu podnikatel bez zbytečného odkladu, nejpozději do čtrnácti dnů od odstoupení od smlouvy, všechny peněžní prostředky včetně nákladů na dodání, které od něho na základě smlouvy přijal, stejným způsobem. Podnikatel vrátí spotřebiteli přijaté peněžení prostředky jiným způsobem jen tehdy, pokud s tím spotřebitel souhlasil a pokud mu tím nevzniknou další náklady.

(2) Jestliže spotřebitel zvolil jiný, než nejlevnější způsob dodání zboží, který podnikatel nabízí, vrátí podnikatel spotřebiteli náklady na dodání zboží ve výši odpovídající nejlevnějšímu nabízenému způsobu dodání zboží.

(3) Podnikatel uhradí spotřebiteli náklady spojené s vrácením zboží, jestliže neupozornil spotřebitele na povinnost nést tyto náklady v souladu s ustanovením § 1820 odst. 1 písm. j).

(4) Odstoupí-li spotřebitel od kupní smlouvy, podnikatel není povinen vrátit přijaté peněžní prostředky spotřebiteli dříve, než obdrží zboží, nebo než mu spotřebitel prokáže, že zboží odeslal zpět, podle toho, co nastane dříve.

(5) Je-li předmětem smlouvy poskytnutí digitálního obsahu nebo služby digitálního obsahu, použije se ustanovení § 2389n obdobně.

§ 1833

Spotřebitel odpovídá podnikateli pouze za snížení hodnoty zboží, které vzniklo v důsledku nakládání s tímto zbožím jinak, než je nutné k tomu, aby se seznámil s povahou, vlastnostmi a funkčností zboží. To neplatí, pokud podnikatel nesdělil spotřebiteli údaje podle § 1820 odst. 1 písm. i).

§ 1834

Odstoupí-li spotřebitel od smlouvy, jejímž předmětem je poskytování služeb nebo dodávka vody, plynu nebo elektřiny, které nejsou prodávány v omezeném objemu nebo v určitém množství nebo tepla z dálkového vytápění, a podnikatel s plněním na základě výslovné žádosti spotřebitele začal před uplynutím lhůty pro odstoupení od smlouvy, uhradí podnikateli poměrnou část sjednané ceny za plnění poskytnuté do okamžiku odstoupení od smlouvy. Je-li sjednaná cena nepřiměřeně vysoká, uhradí spotřebitel podnikateli obvyklou cenu toho, co bylo poskytnuto.

§ 1835

Podnikatel převezme zboží od spotřebitele v jeho domácnosti na své náklady, jestliže spotřebitel odstoupí od smlouvy uzavřené mimo prostor obvyklý pro podnikatelovo podnikání, zboží bylo dodáno do domácnosti spotřebitele v okamžiku uzavření smlouvy a povaha zboží jej neumožňuje odeslat obvyklou poštovní cestou.

§ 1836

Odstoupí-li spotřebitel od smlouvy, nenese žádné náklady, jestliže jde o smlouvu

a) jejímž předmětem je poskytování služeb nebo dodávky vody, plynu nebo elektřiny, které nejsou prodávány v omezeném objemu nebo v určitém množství nebo tepla z dálkového vytápění, a podnikatel neposkytl spotřebiteli údaje podle § 1820 odst. 1 písm. i) a k), nebo pokud podnikatel začal s plněním před uplynutím lhůty pro odstoupení od smlouvy, ačkoliv spotřebitel o to výslovně nežádal podle § 1824a odst. 3 nebo § 1828 odst. 5, nebo

b) o dodání digitálního obsahu, pokud nebyl dodán na hmotném nosiči a podnikatel jej dodal před uplynutím lhůty pro odstoupení od smlouvy, ačkoliv spotřebitel o to výslovně nežádal, nebo nevzal výslovně na vědomí, že mu právo na odstoupení od smlouvy zanikne, nebo podnikatel neposkytl spotřebiteli potvrzení podle § 1824a odst. 1 a 2 nebo § 1828 odst. 3 a 4.

§ 1836a

(1) Odstoupil-li spotřebitel od smlouvy, zanikají závazky ze všech vedlejších smluv k témuž okamžiku jako závazek ze smlouvy hlavní bez nákladů pro spotřebitele s výjimkou úhrad podle § 1832 odst. 2, § 1833 a 1834.

(2) Vedlejší smlouvou podle odstavce 1 je smlouva, jejímž předmětem je plnění související s plněním poskytovaným na základě smlouvy hlavní, a toto plnění je poskytováno podnikatelem nebo třetí osobou na základě ujednání mezi nimi.

§ 1837

Spotřebitel nemůže odstoupit od smlouvy

a) o poskytování služeb, jestliže byly v plném rozsahu poskytnuty; v případě plnění za úplatu, pouze pokud započalo s předchozím výslovným souhlasem spotřebitele před uplynutím lhůty pro odstoupení od smlouvy a podnikatel před uzavřením smlouvy poučil spotřebitele, že poskytnutím plnění zaniká právo odstoupit od smlouvy,

b) o dodávce zboží nebo služby, jejichž cena závisí na výchylkách finančního trhu nezávisle na vůli podnikatele a k němuž může dojít během lhůty pro odstoupení od smlouvy,

c) o dodání alkoholických nápojů, jejichž cena byla ujednána v době uzavření smlouvy s tím, že dodání je možné uskutečnit až po uplynutí třiceti dnů a jejichž skutečná hodnota závisí na výchylkách trhu nezávislých na vůli podnikatele,

d) o dodávce zboží vyrobeného podle požadavků spotřebitele nebo přizpůsobeného jeho osobním potřebám,

e) o dodávce zboží, které podléhá rychlé zkáze, nebo zboží s krátkou dobou spotřeby, jakož i zboží, které bylo po dodání vzhledem ke své povaze nenávratně smíseno s jiným zbožím,

f) o neodkladné opravě nebo údržbě, která má být provedena v místě určeném spotřebitelem na jeho výslovnou žádost; to však neplatí pro provedení jiných než vyžádaných oprav či dodání jiného zboží než náhradních dílů nutných k provedení opravy nebo údržby,

g) o dodávce zboží v zapečetěném obalu, které z důvodu ochrany zdraví nebo z hygienických důvodů není vhodné vrátit poté, co jej spotřebitel porušil,

h) o dodávce zvukové nebo obrazové nahrávky nebo počítačového programu v zapečetěném obalu, pokud jej spotřebitel porušil,

i) o dodávce novin, periodik nebo časopisů s výjimkou smluv o předplatném na jejich dodávání,

j) o ubytování, přepravě zboží, nájmu dopravního prostředku, stravování nebo využití volného času, pokud má být podle smlouvy plněno k určitému datu nebo v určitém období,

k) uzavírané na základě veřejné dražby podle jiného zákona, které může být spotřebitel fyzicky přítomen, nebo

l) o dodání digitálního obsahu, který není dodán na hmotném nosiči, poté, co bylo započato s plněním; v případě plnění za úplatu, pokud započalo s předchozím výslovným souhlasem spotřebitele před uplynutím lhůty pro odstoupení od smlouvy, spotřebitel byl poučen, že tím právo odstoupit od smlouvy zaniká, a podnikatel mu poskytl potvrzení podle § 1824a odst. 1 a 2 nebo § 1828 odst. 3 a 4.

Skrýt změny zákona Legenda text přidán text vypuštěn
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »