Zákon o dani z přidané hodnoty - Oddíl 2 - Obecná ustanovení o správě daně ve zvláštním režimu jednoho správního místa v tuzemsku

Předpis č. 235/2004 Sb.

Znění od 1. 1. 2025

235/2004 Sb. Zákon o dani z přidané hodnoty

Oddíl 2

Obecná ustanovení o správě daně ve zvláštním režimu jednoho správního místa v tuzemsku

§ 110d

Zastupování

Plnou moc lze udělit pouze v rozsahu opravňujícím k zastupování ve všech úkonech, řízeních nebo jiných postupech v rámci daného režimu zvláštního režimu jednoho správního místa; to platí i pro zprostředkovatele pověřeného více pověřujícími osobami.

§ 110e

Doručování

(1) Správce daně doručuje písemnost elektronicky, a to prostřednictvím

a) datové schránky, nebo

b) veřejné datové sítě na adresu elektronické pošty uvedenou v přihlášce k registraci, nemá-li adresát zpřístupněnu datovou schránku.

(2) Upomínka upozorňující na nesplnění povinnosti se doručuje prostřednictvím datové schránky nebo veřejné datové sítě na adresu elektronické pošty uvedenou v přihlášce k registraci.

(3) Písemnost, která se doručuje prostřednictvím veřejné datové sítě na adresu elektronické pošty, se považuje za doručenou desátým dnem následujícím po dni, ve kterém byla datová zpráva odeslána.

(4) Osoba uskutečňující vybraná plnění nebo zprostředkovatel, kteří se ze závažného důvodu nemohli s rozhodnutím správce daně doručovaným podle odstavce 1 na adresu elektronické pošty seznámit, mohou požádat správce daně, který toto rozhodnutí doručoval, o vyslovení neúčinnosti tohoto doručení. Tato žádost musí být podána nejpozději do 3 měsíců ode dne, kdy se dané rozhodnutí považuje za doručené. Shledá-li správce daně žádost důvodnou, vysloví neúčinnost doručení daného rozhodnutí, jinak žádost zamítne. Rozhodnutí o této žádosti správce daně doručí způsobem podle daňového řádu; je-li žádosti vyhověno, doručí správce daně společně s tímto rozhodnutím také rozhodnutí, u něhož neúčinnost doručení vyslovil.

§ 110f

Evidence pro účely zvláštního režimu jednoho správního místa

(1) Osoba uskutečňující vybraná plnění nebo zprostředkovatel jsou povinni k uskutečněným vybraným plněním vést evidenci obsahující údaje podle přímo použitelného předpisu Evropské unie, kterým se stanoví prováděcí opatření ke směrnici o společném systému daně z přidané hodnoty7e).

(2) Osoba uskutečňující vybraná plnění nebo zprostředkovatel jsou povinni údaje podle odstavce 1

a) uchovávat po dobu 10 let od konce kalendářního roku, ve kterém bylo plnění uskutečněno,

b) poskytnout na žádost správce daně nebo správce daně příslušného státu spotřeby elektronicky.

§ 110g

Poslední známá daň

(1) Poslední známou daní se pro účely zvláštního režimu jednoho správního místa rozumí daň ve výši, ve které byla naposledy za příslušné zdaňovací období

a) tvrzena osobou uskutečňující vybraná plnění nebo zprostředkovatelem, kteří jsou registrováni k dani ve zvláštním režimu jednoho správního místa, v daňovém přiznání, nebo

b) správcem daně pravomocně doměřena z moci úřední.

(2) Je-li místo plnění v jiném členském státě, rozumí se pro účely zvláštního režimu jednoho správního místa poslední známou daní výsledná daň, jak byla dosud stanovena podle právních předpisů jiného členského státu.

§ 110h

Způsob placení daně

(1) Daň se platí správci daně v eurech.

(2) Daň se platí na příslušný účet správce daně vedený v eurech, a to bezhotovostním převodem.

(3) Osoba uskutečňující vybraná plnění nebo zprostředkovatel jsou povinni uvést, na kterou daň je platba určena, a označit platbu referenčním číslem příslušného daňového přiznání.

§ 110i

Přeplatek

(1) Přeplatek správce daně nepřevede na vymáhaný nedoplatek nebo na neuhrazenou částku zajištěné daně. Vznikne-li tak vratitelný přeplatek, správce daně jej vrátí ve lhůtě pro jeho vrácení poté, co provede jeho započtení na úhradu vymáhaného nedoplatku nebo neuhrazené částky zajištěné daně. Za den úhrady vymáhaného nedoplatku se považuje den, kdy k tomuto započtení došlo.

(2) Za dobu, po kterou nebylo možné převést přeplatek, který byl započten podle odstavce 1, na úhradu vymáhaného nedoplatku nebo neuhrazené částky zajištěné daně, nevzniká osobě uskutečňující vybraná plnění nebo zprostředkovateli v tomto rozsahu úrok z prodlení.

(3) Vratitelný přeplatek nižší než 10 EUR se nevrací.

(4) Úrok z vratitelného přeplatku se nepřizná, nepřesahuje-li 40 EUR.

§ 110j

Lhůta pro vrácení vratitelného přeplatku

(1) Správce daně vrátí vratitelný přeplatek v eurech bez žádosti do 30 kalendářních dnů od vzniku vratitelného přeplatku.

(2) V tuzemsku jako státě spotřeby počíná lhůta pro vrácení vratitelného přeplatku běžet ode dne, kdy tuzemský správce daně obdrží informace potřebné pro předepsání daně.

(3) Lhůta pro vrácení vratitelného přeplatku se přerušuje

a) vydáním výzvy k podání dodatečného daňového přiznání,

b) vydáním výzvy k odstranění pochybností,

c) sdělením výsledku postupu k odstranění pochybností, v rámci něhož nedošlo k odstranění pochybností, nebo

d) vydáním oznámení o zahájení daňové kontroly.

(4) Lhůta pro vrácení vratitelného přeplatku přerušená podle odstavce 3 začne znovu běžet ode

a) dne, ve kterém správce daně v tuzemsku jako státě spotřeby obdrží informace potřebné pro předepsání daně tvrzené v dodatečném daňovém přiznání včas podaném na základě výzvy k podání dodatečného daňového přiznání nebo výzvy k odstranění pochybností,

b) dne sdělení výsledku postupu k odstranění pochybností, v rámci něhož došlo k odstranění pochybností, nebo

c) dne pravomocného ukončení doměřovacího řízení.

(5) Vydá-li správce daně oznámení o zahájení daňové kontroly po uplynutí lhůty pro vrácení vratitelného přeplatku vzniklého v důsledku stanovení daně, která je předmětem této daňové kontroly, počne dnem následujícím po vydání tohoto oznámení běžet nová lhůta pro vrácení tohoto vratitelného přeplatku. Tato lhůta končí třicátým dnem po pravomocném ukončení doměřovacího řízení.

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 »