входим в Топ-20 агентств
Рейтинг Рунета

Генератор пользовательского соглашения и договора-оферты

Оферта для интернет-магазина, сервиса или подписки в режимах B2C и B2B: предмет, оплата, возвраты по ЗоЗПП, ответственность. Подставьте реквизиты — получите шаблон.

  • Бесплатно
  • Без регистрации
  • Данные не уходят на сервер
Генератор Пользовательского соглашения (оферта) Для интернет-магазинов, подписок, услуг
По закону — не менее 7 дней (п. 4 ст. 26.1 ЗоЗПП)
Пользовательское соглашение (публичная оферта) Полная версия для размещения на сайте
Шаблон, не юридическая консультация.
\n\n'; } function saveDoc(name, title, body) { saveBlob(name, docFile(title, body), 'application/msword'); } /* Профиль реквизитов: общий для генераторов, хранится в браузере */ var KEY = 'rwt-requisites'; function load() { try { var o = JSON.parse(localStorage.getItem(KEY) || '{}'); return (o && typeof o === 'object') ? o : {}; } catch (e) { return {}; } } function store(o) { try { localStorage.setItem(KEY, JSON.stringify(o)); return true; } catch (e) { return false; } } function forget() { try { localStorage.removeItem(KEY); } catch (e) {} } /* map: {name, inn, ogrn, address, email, phone, site} → id поля; bar — строка «сохраняются · Очистить» */ function profile(map, bar, onChange) { var keys = Object.keys(map), saved = load(); function el(k) { return document.getElementById(map[k]); } keys.forEach(function (k) { var e = el(k); if (e && !e.value && saved[k]) e.value = saved[k]; }); var save = debounce(function () { var o = load(); keys.forEach(function (k) { var e = el(k); if (!e) return; var v = e.value.trim(); if (v) o[k] = v; else delete o[k]; }); store(o); }, 400); keys.forEach(function (k) { var e = el(k); if (e) e.addEventListener('input', save); }); if (bar) profileBar(bar, function () { keys.forEach(function (k) { var e = el(k); if (e) e.value = ''; }); if (onChange) onChange(); }); } function profileBar(bar, onClear) { if (typeof bar === 'string') bar = document.getElementById(bar); if (!bar) return; bar.innerHTML = 'Реквизиты сохраняются в вашем браузере · '; bar.querySelector('button').addEventListener('click', function () { forget(); if (onClear) onClear(); }); } /* Панель экспорта (110 px — запас под закреплённую шапку сайта): на десктопе — в блоке результата, на узком экране — липкая внизу инструмента */ function dock(barEl, home, target, bp) { if (typeof barEl === 'string') barEl = document.getElementById(barEl); if (typeof home === 'string') home = document.getElementById(home); if (typeof target === 'string') target = document.getElementById(target); if (!barEl || !home) return; var root = document.getElementById('rwt-tool') || home.closest('.rwt') || home.parentNode; var mq = window.matchMedia ? window.matchMedia('(max-width: ' + (bp || 900) + 'px)') : null; function place() { if (mq && mq.matches) { if (barEl.parentNode !== root) root.appendChild(barEl); barEl.classList.add('is-float'); } else { if (barEl.parentNode !== home) home.appendChild(barEl); barEl.classList.remove('is-float'); } } place(); if (mq) { if (mq.addEventListener) mq.addEventListener('change', place); else if (mq.addListener) mq.addListener(place); } var show = barEl.querySelector('.rwd-show'); if (show && target) show.addEventListener('click', function () { var y = target.getBoundingClientRect().top + (window.pageYOffset || 0) - 110; window.scrollTo({ top: Math.max(0, y), behavior: 'smooth' }); }); } return { esc: esc, parse: parse, html: html, preview: preview, text: text, splitNotes: splitNotes, showNotes: showNotes, debounce: debounce, saveBlob: saveBlob, docFile: docFile, saveDoc: saveDoc, load: load, store: store, forget: forget, profile: profile, profileBar: profileBar, dock: dock }; })(); /*@rwd-kit-end*/ (function(){ var $ = function(id){ return document.getElementById(id); }; var MONTHS = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря']; function isoToday(){ var d = new Date(); return d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2); } function ruDate(iso){ var m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(iso || ''); if (!m) return ruDate(isoToday()); return (+m[3]) + ' ' + MONTHS[+m[2] - 1] + ' ' + m[1] + ' г.'; } function v(id, def){ var x = ($(id).value || '').trim(); return x || def; } function esc(s){ return String(s).replace(/&/g,'&').replace(//g,'>'); } var md = ''; function syncUi(){ var b2c = $('mode').value === 'b2c'; $('refundBlock').style.display = b2c ? 'grid' : 'none'; $('subscriptionBlock').style.display = $('isSubscription').checked ? 'grid' : 'none'; $('modeHint').textContent = b2c ? 'Условия, ущемляющие права потребителя (ограничение ответственности, подсудность, обязательная претензия), в документ не включаются — они ничтожны по ст. 16 ЗоЗПП.' : 'Для B2B допустимы ограничение ответственности, претензионный порядок и договорная подсудность. Не используйте этот режим, если покупают физлица.'; } $('mode').addEventListener('change', syncUi); $('isSubscription').addEventListener('change', syncUi); $('returnDays').addEventListener('change', function(){ if (!(parseInt(this.value, 10) >= 7)) this.value = 7; }); function generateAgreement(){ var b2c = $('mode').value === 'b2c'; var seller = v('sellerName','[Продавец]'), inn = v('inn','[ИНН]'), ogrn = v('ogrn','[ОГРН]'); var address = v('address','[адрес]'), site = v('siteUrl','[сайт]'); var email = v('contactEmail','[email]'), phone = v('contactPhone','[телефон]'); var date = ruDate($('offerDate').value); var digital = $('isDigitalGoods').checked, sub = $('isSubscription').checked, prepay = $('isPrepayment').checked; var days = parseInt($('returnDays').value, 10); if (!(days >= 7)) days = 7; var buyer = 'Покупатель'; var out = [], sn = 0, pn = 0; function H(t){ sn++; pn = 0; out.push('## ' + sn + '. ' + t); } function P(t){ pn++; out.push(sn + '.' + pn + '. ' + t); } function L(a){ out.push(a.map(function(x){ return '- ' + x; }).join('\n')); } out.push('# ' + (b2c ? 'Публичная оферта (договор купли-продажи / оказания услуг)' : 'Оферта для юридических лиц и индивидуальных предпринимателей')); out.push('**Редакция от ' + date + '**'); H('Общие положения'); P('Настоящий документ является публичной офертой (ст. 435, п. 2 ст. 437 Гражданского кодекса РФ) ' + seller + ' (далее — Продавец) о заключении договора на изложенных ниже условиях' + (b2c ? '.' : ' с юридическими лицами и индивидуальными предпринимателями, приобретающими товары (услуги) для целей, связанных с предпринимательской деятельностью.')); P('Продавец: ' + seller + ', ИНН ' + inn + ', ОГРН/ОГРНИП ' + ogrn + ', адрес: ' + address + ', email: ' + email + ', телефон: ' + phone + '.'); P('Сайт Продавца: ' + site + ' (далее — Сайт). Акцептом оферты является оформление заказа на Сайте' + (prepay ? ' и его оплата' : '') + ' (п. 3 ст. 438 ГК РФ). Лицо, совершившее акцепт, — ' + buyer + '.'); if (b2c) P('К отношениям сторон применяются Гражданский кодекс РФ, Закон РФ от 07.02.1992 № 2300-1 «О защите прав потребителей» (далее — ЗоЗПП) и Правила продажи товаров по договору розничной купли-продажи (утв. постановлением Правительства РФ от 31.12.2020 № 2463). Условия оферты, противоречащие этим актам, не применяются.'); else P('Покупатель подтверждает, что приобретает товары (услуги) не для личных, семейных, домашних нужд. Законодательство о защите прав потребителей к отношениям сторон не применяется.'); H('Предмет договора'); P('Продавец обязуется передать в собственность Покупателю товары (оказать услуги), представленные на Сайте, а Покупатель — принять и оплатить их на условиях настоящей оферты.'); P('Наименование, описание, цена, основные потребительские свойства товаров (услуг) и сроки их передачи указываются на Сайте в карточке товара (услуги) и в подтверждении заказа.'); H('Оформление заказа'); P('Заказ оформляется через форму на Сайте. Покупатель указывает достоверные данные, необходимые для исполнения заказа' + (b2c ? '.' : ', включая реквизиты организации (ИП).')); P('После оформления заказа Продавец направляет подтверждение на указанный адрес электронной почты' + (b2c ? ' с информацией о товаре, цене, порядке и сроках возврата.' : '.')); H('Цена и порядок оплаты'); P('Цены указываются в российских рублях. Цена товара (услуги), указанная в подтверждённом заказе, изменению не подлежит.'); P('Способы оплаты:'); L(b2c ? ['банковской картой (в том числе «Мир») через платёжный сервис на Сайте;', 'через Систему быстрых платежей (СБП);', 'наличными или картой при получении — если такой способ указан при оформлении заказа.'] : ['безналичным переводом по счёту Продавца;', 'банковской картой или через Систему быстрых платежей (СБП).']); if (prepay) P('Оплата производится в форме 100% предоплаты. Наложенный платёж не принимается.'); P('Моментом оплаты считается поступление денежных средств на расчётный счёт Продавца или платёжному агенту (оператору по переводу денежных средств).'); if (b2c) P('Кассовый чек направляется Покупателю в электронной форме в соответствии с Федеральным законом от 22.05.2003 № 54-ФЗ.'); if (sub){ var price = v('subscriptionPrice','[стоимость]'), per = $('subscriptionPeriod').value; P('Подписка оформляется на период «' + per + '» стоимостью ' + price + ' руб. Автоматическое списание за следующий период (рекуррентный платёж) производится только при наличии отдельного согласия Покупателя, выраженного при оформлении подписки. Покупатель может отключить автопродление в личном кабинете или письмом на ' + email + ' в любой момент; списание за следующий период после отключения не производится.'); } H('Передача товара и доставка'); P('Способы, сроки и стоимость доставки указываются на Сайте и в подтверждении заказа. Срок исчисляется с момента подтверждения заказа' + (prepay ? ' и поступления оплаты.' : '.')); if (b2c) P('Если предварительно оплаченный товар не передан в установленный срок, Покупатель вправе потребовать передачи товара в новый срок или возврата предварительно оплаченной суммы, а также уплаты неустойки в размере 0,5% суммы предоплаты за каждый день просрочки (ст. 23.1 ЗоЗПП). Обязательства Продавца по доставке считаются исполненными в момент вручения товара Покупателю.'); else P('Продавец не несёт ответственности за задержки доставки, вызванные действиями перевозчика, выбранного Покупателем. Риск случайной гибели товара переходит к Покупателю в момент передачи товара Покупателю или первому перевозчику, если иное не согласовано сторонами.'); if (digital) P('Цифровые товары (ключи активации, программы, электронные материалы, доступ к онлайн-курсам) считаются предоставленными в момент направления кода, ссылки или открытия доступа на электронную почту либо в личный кабинет Покупателя.'); if (b2c){ H('Возврат товара и денежных средств'); P('Покупатель вправе отказаться от товара в любое время до его передачи, а после передачи — в течение ' + days + ' дней (п. 4 ст. 26.1 ЗоЗПП). Если информация о порядке и сроках возврата товара надлежащего качества не была предоставлена в письменной форме в момент доставки, срок составляет 3 месяца с момента передачи товара.'); P('Возврат товара надлежащего качества возможен, если сохранены его товарный вид и потребительские свойства, а также документ, подтверждающий покупку (отсутствие документа не лишает Покупателя возможности ссылаться на другие доказательства приобретения товара у Продавца).'); P('Не может быть возвращён товар надлежащего качества, имеющий индивидуально-определённые свойства, если он может быть использован исключительно приобретающим его Покупателем. Перечень непродовольственных товаров, не подлежащих обмену и возврату (постановление Правительства РФ № 2463), к товарам, купленным дистанционным способом, не применяется.'); P('При отказе от товара Продавец возвращает уплаченную сумму, за исключением расходов Продавца на доставку от Покупателя возвращённого товара, не позднее чем через 10 дней со дня предъявления Покупателем соответствующего требования. Деньги возвращаются тем же способом, которым была произведена оплата, если стороны не договорились об ином.'); P('Требования в отношении товара ненадлежащего качества предъявляются в порядке ст. 18–24 ЗоЗПП.'); if (digital) P('Покупатель вправе отказаться от доступа к онлайн-курсу или иной услуге в любое время с оплатой Продавцу фактически понесённых им расходов, связанных с исполнением обязательств (ст. 32 ЗоЗПП, ст. 782 ГК РФ). Возврат производится в течение 10 дней со дня предъявления требования.'); if (sub) P('При отказе от подписки Покупателю возвращается плата за неиспользованный период за вычетом фактически понесённых Продавцом расходов (ст. 32 ЗоЗПП, ст. 782 ГК РФ) в течение 10 дней со дня предъявления требования.'); P('Заявление о возврате направляется на ' + email + ' или через форму обратной связи на Сайте.'); } else { H('Возврат и качество товара'); P('Возврат товара надлежащего качества производится только по соглашению сторон.'); P('Претензии по количеству, ассортименту и видимым недостаткам принимаются при приёмке товара; по скрытым недостаткам — в пределах гарантийного срока либо в разумный срок, но не позднее 2 лет с момента передачи (ст. 477 ГК РФ). Последствия передачи товара ненадлежащего качества — по ст. 475 ГК РФ.'); if (sub) P('При досрочном отказе от подписки плата за неиспользованный период возвращается за вычетом фактически понесённых Продавцом расходов (ст. 782 ГК РФ).'); } H('Права и обязанности сторон'); P('Продавец обязан предоставить Покупателю достоверную информацию о товаре (услуге)' + (b2c ? ' в объёме, предусмотренном ст. 8–10 ЗоЗПП' : '') + ', передать товар (оказать услугу) надлежащего качества в согласованный срок, обрабатывать персональные данные в соответствии с Политикой обработки персональных данных, размещённой на Сайте.'); P('Продавец вправе изменять условия оферты, публикуя новую редакцию на Сайте. Изменения не распространяются на заказы, оформленные до публикации новой редакции.'); P('Покупатель обязан оплатить и принять заказ в порядке, предусмотренном офертой, и предоставить достоверные данные для его исполнения.'); H('Ответственность сторон'); if (b2c){ P('Стороны несут ответственность в соответствии с законодательством РФ, в том числе ЗоЗПП.'); P('Продавец не отвечает за недостатки товара, возникшие после его передачи вследствие нарушения Покупателем правил использования, хранения или транспортировки, действий третьих лиц или непреодолимой силы (п. 5 ст. 18 ЗоЗПП).'); } else { P('Ответственность Продавца по договору ограничивается стоимостью соответствующего заказа. Упущенная выгода возмещению не подлежит.'); P('Продавец не отвечает за убытки, возникшие вследствие использования товара не по назначению или с нарушением инструкций.'); } P('Стороны освобождаются от ответственности за неисполнение обязательств, вызванное обстоятельствами непреодолимой силы (п. 3 ст. 401 ГК РФ), на время действия таких обстоятельств.'); H('Разрешение споров'); if (b2c){ P('Покупатель вправе направить Продавцу претензию на ' + email + ' или по адресу ' + address + '. Продавец рассматривает претензию в сроки, установленные ЗоЗПП. Направление претензии не является обязательным условием обращения в суд.'); P('Иск о защите прав потребителя может быть предъявлен по выбору Покупателя в суд по месту нахождения Продавца, по месту жительства или пребывания Покупателя либо по месту заключения или исполнения договора (п. 2 ст. 17 ЗоЗПП).'); } else { P('До обращения в суд сторона направляет другой стороне письменную претензию. Срок ответа на претензию — 30 календарных дней с даты её получения (ч. 5 ст. 4 АПК РФ).'); P('Споры, не урегулированные в претензионном порядке, передаются в арбитражный суд по месту нахождения Продавца.'); } H('Прочие условия'); P('Оферта вступает в силу с ' + date + ' и действует до её отзыва или замены новой редакцией. Действующая редакция размещена на Сайте.'); P('Признание недействительным какого-либо условия оферты не влечёт недействительности остальных условий.'); var add = v('additionalTerms',''); if (add){ H('Дополнительные условия'); out.push(add); } H('Реквизиты Продавца'); out.push('**' + seller + '**\nИНН: ' + inn + '\nОГРН/ОГРНИП: ' + ogrn + '\nАдрес: ' + address + '\nEmail: ' + email + '\nТелефон: ' + phone); out.push('---'); out.push('*Шаблон документа, не юридическая консультация. Перед публикацией сверьте условия со своей деятельностью.*'); md = out.join('\n\n'); $('resultArea').innerHTML = RWD.preview(RWD.html(md)); } function resetForm(){ ['sellerName','inn','ogrn','address','siteUrl','contactEmail','contactPhone','subscriptionPrice','additionalTerms'].forEach(function(id){ $(id).value = ''; }); $('mode').value = 'b2c'; $('offerDate').value = isoToday(); ['isDigitalGoods','isSubscription','isPrepayment'].forEach(function(id){ $(id).checked = false; }); $('returnDays').value = '7'; syncUi(); generateAgreement(); } $('resetBtn').onclick = resetForm; $('copyBtn').onclick = function(){ RWT.copy(RWD.text(md), this); }; $('copyHtmlBtn').onclick = function(){ RWT.copy(RWD.html(md), this); }; $('downloadBtn').onclick = function(){ RWD.saveDoc('polzovatelskoe-soglashenie-oferta.doc', 'Публичная оферта', RWD.html(md)); }; var live = RWD.debounce(generateAgreement, 300); $('formBody').addEventListener('input', live); $('formBody').addEventListener('change', live); RWD.profile({ name: 'sellerName', inn: 'inn', ogrn: 'ogrn', address: 'address', site: 'siteUrl', email: 'contactEmail', phone: 'contactPhone' }, 'rwdSaved', generateAgreement); RWD.dock('rwdBar', 'rwdHome', 'resultArea', 1000); $('offerDate').value = isoToday(); $('noteBox').textContent = 'Редакция от ' + ruDate(isoToday()) + ' Шаблон, не юридическая консультация.'; syncUi(); generateAgreement(); })();
Доработаем интернет-магазин

Оферта, оплата, доставка и возвраты на сайте — оформим по закону и удобно для покупателя.

Обсудить проект