Příkazní smlouva

Příkazní smlouvou se příkazník zavazuje k tomu, že obstará pro příkazce určitou náležitost. Nezodpovídá ale za výsledek, pouze se zavazuje k tomu, že vynaloží maximální úsilí pro vyřízení dané náležitosti. Tento typ smlouvy uzavírá s klienty často určitá skupina podnikatelů, typicky notáři, advokáti nebo realitní makléři. Jaký je vzor příkazní smlouvy a co by v ní nemělo chybět?

K čemu slouží příkazní smlouva?

Příkazní smlouvu (mandatum) znali již staří Římané. V moderním světě slouží příkazní smlouva jako potvrzení závazku, že určitou činnost za vás (jakožto příkazce) vykoná jiná osoba (příkazník). Používá se, pokud potřebujete pověřit někoho, aby za vás vyřídil záležitosti v oblasti, ve které se vůbec neorientujete. Většinou tedy jde o profesionála z daného oboru.

Smluvní stranou příkazní smlouvy může být právnická osoba, OSVČ (osoba samostatně výdělečně činná), ale i nepodnikatel (fyzická osoba). Je přitom důležité vědět, že uzavřením příkazní smlouvy se příkazník zavazuje, že vynaloží maximální úsilí k tomu, aby obstaral náležitosti příkazce. Příkazník už ovšem není zodpovědný za finální výsledek svého snažení, tato povinnost zůstává na bedrech příkazce.

V praxi může jít například o účetního, který vám povede účetnictví, nebo o erudovaného stavbyvedoucího, který se postará o profesionální vedení stavby domu. Příkazní smlouvy ovšem často uzavírají také notáři, advokáti, patentovaní zástupci, daňoví a finanční poradci nebo exekutoři.

Povinnosti a práva příkazníka

Uzavření příkazní smlouvy provází určité zásady, které by měl příkazník vždy dodržovat:

  • plní příkaz poctivě a svědomitě,
  • veškerý užitek z provedené činnosti přenechá příkazci,
  • od pokynů příkazce se může odchýlit jen v případě, kdy je to v zájmu příkazce a nezíská včas jeho souhlas,
  • v případě nesprávného nebo nepřesného příkazu na tuto skutečnost příkazce upozorní,
  • příkaz provádí osobně, případně může plnění přenechat na náhradníkovi (subdodavateli), nicméně za jeho svědomité plnění stále zodpovídá on,
  • pokud si to příkazce přeje, příkazník ho informuje o průběhu plnění příkazu,
  • po provedení příkazu vystaví vyúčtování,
  • příkaz může vypovědět nejdříve na konci měsíce následujícího po měsíci, během kterého byla výpověď příkazu doručena příkazci.

Povinnosti a práva příkazce

I pro stranu příkazce existují určitá pravidla, která musí respektovat:

  • po splnění příkazu poskytne příkazníkovi odměnu, která byla ujednána,
  • odměnu příkazníkovi poskytne i v případě, že požadovaný výsledek nenastal (výjimku představuje situace, kdy příkazník poruší své povinnosti),
  • příkaz může odvolat kdykoliv podle svého uvážení, ale musí při tom příkazníkovi uhradit náklady, které do toho okamžiku měl (případně škody, které mu vznikly).

Příkazní smlouva: NOZ

Až do roku 2014, kdy se základním kamenem úpravy soukromého práva stal nový občanský zákoník (NOZ), jenž vyšel ve Sbírce zákonů na jaře roku 2012, existovala vedle příkazní smlouvy ještě smlouva mandátní, která byla součástí obchodního zákoníku. Nicméně 1. 1. 2014 byl institut mandátní smlouvy „zahrnut“ do institutu příkazní smlouvy. Zákonnou úpravu příkazní smlouvy tedy nyní naleznete v § 2430 a násl. zákona č. 89/2012 Sb., občanského zákoníku.

Příkazní smlouvy přitom uzavírají i podnikatelé, a to právě namísto mandátních smluv. Souvislost příkazní smlouvy se smlouvou mandátní lze najít i v názvosloví. Proto se dodnes můžete setkat s pojmy „mandatář“ (což znamená příkazník) a „mandant“ (příkazce).

Příkazní smlouva: zdanění

V případě podnikatelů musí být příkazní smlouva a z ní plynoucí odměna vždy zahrnuta do daňového přiznání. Pokud jako příkazník vystupuje fyzická osoba (tedy nepodnikatel), pro kterou je odměna získaná z příkazní smlouvy pouze příležitostným přivýdělkem, a výše odměny nepřekročí za kalendářní rok 30 tisíc korun, není nutné ji danit.

Výpověď příkazní smlouvy

Jako každou jinou smlouvu lze příkazní smlouvu vypovědět. K ukončení příkazní smlouvy může dojít jak ze strany příkazníka, tak i ze strany příkazce. Má to ovšem svá pravidla.

Výhodu má v tomto případě příkazce, který může příkaz odvolat kdykoliv. Musí ovšem příkazníkovi uhradit veškeré náklady, které do té doby vynaložil, a případně i vzniklé škody nebo část odměny, která příkazníkovi náleží.

Pokud chce příkazník od smlouvy odstoupit, musí podat řádnou výpověď příkazní smlouvy. Ve chvíli, kdy je výpověď doručena do rukou příkazce, začíná běžet výpovědní lhůta. Ta skončí až na konci měsíce, který následuje po měsíci, ve kterém byla výpověď doručena.

Zánik příkazní smlouvy

V případě smrti příkazce nebo příkazníka automaticky dochází k zániku příkazní smlouvy. Závazky z ní plynoucí tudíž nepřechází na právního zástupce jedné či druhé smluvní strany. Výjimku představuje situace, kdy byl příkazce nebo příkazník právnickou osobou. V takovém případě práva a povinnosti plynoucí z příkazní smlouvy přechází na právního zástupce.

Bez ohledu na to, jakým způsobem dojde k zániku příkazní smlouvy, je příkazník i tak povinen vykonat vše, co nesnese odkladu, aby příkazci po zániku příkazu nevznikla škoda (ledaže na tom příkazce netrvá).

Příkazní smlouva: vzor

Potřebujete sepsat příkazní smlouvu a nevíte, jak na to? Práci se správnou formulací smlouvy si můžete ulehčit. Na této stránce najdete vzor příkazní smlouvy zdarma ke stažení vypracovaný podle nového občanského zákoníku. Vzorový dokument obsahuje ty nejdůležitější náležitosti, které by v příkazní smlouvě neměly chybět. Patří sem:

  • identifikace příkazce a příkazníka,
  • přesný popis náležitosti, k jejímuž plnění se příkazník zavazuje (předmět smlouvy),
  • odměna a platební podmínky,
  • plná moc (k plnění mnoha příkazů je nezbytně nutná),
  • práva a povinnosti příkazníka,
  • práva a povinnosti příkazce,
  • podmínky ukončení smlouvy,
  • doba plnění,
  • podpisy obou smluvních stran.
Využijte naší konzultaci s advokátem. Vyřeší váš problém a nebo poradí, jak ho nejlépe řešit.

Tento vzor je jen obecný, proto ho nelze využít v každé situaci. Může vám ale posloužit jako inspirace k sepsání vlastní příkazní smlouvy.

Je také pravda, že příkazní smlouva nemusí mít nutně písemnou formu. Vždy je ale lepší, když jsou veškeré podmínky smluvního vztahu a povinnosti obou stran zaneseny do písemného dokumentu, a to zejména pokud se jedná o plnění záležitostí vážného nebo složitého charakteru. Lze tím předcházet případným sporům a neshodám mezi smluvními stranami.

Co je příkazní smlouva?
Příkazní smlouvou se příkazník (jedna smluvní strana) zavazuje k tomu, že pro příkazce (druhou smluvní stranu) obstará jeho náležitost. Předmětem příkazu není dosažení výsledku, ale pouze svědomitá činnost příkazníka. V praxi se může jednat například o zpracování daňového přiznání účetním, zastupování advokátem, obstarávání znaleckých posudků či získání stavebního povolení.
Co by mělo být součástí příkazní smlouvy?
Příkazní smlouva by měla obsahovat údaje obou smluvních stran, jejich práva a povinnosti, přesný popis náležitosti, k jejímuž plnění se příkazník zavazuje, platební podmínky a výši odměny, podmínky ukončení, dobu plnění a samozřejmě podpisy obou smluvních stran. K mnoha úkonům je nutné také poskytnout příkazníkovi plnou moc.
Může příkazník podat výpověď příkazní smlouvy?
Ano, k vypovězení příkazu může dojít i ze strany příkazníka. Musí ale podat řádnou výpověď příkazní smlouvy. Smlouva navíc nekončí hned, když je výpověď doručena příkazci, ale až po uplynutí výpovědní lhůty. Ta začíná běžet na konci měsíce, který následuje po měsíci, ve kterém byla výpověď předána příkazci.
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 »