feat(mera): оферта, политика возврата и утверждённая политика ПДн + реквизиты
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 56s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 56s
Юридический блокер публичного B2C-запуска (G6 в mera-b2c-paid-flow-decision.md: `LEGAL_ENTITY == null` → нет реквизитов, нет продажи) и входное требование модерации эквайера: оферты не было вообще, а privacy-страница в собственной шапке писала, что она НЕ утверждённая политика по ст. 18.1 152-ФЗ. Что сделано: - content.ts: `LEGAL_ENTITY` заполнен (ООО «ПРОЕКТ ФЛЭТ», ИНН/КПП/ОГРН, адреса, директор, банковские реквизиты), добавлены `SUPPORT_EMAIL`, `SERVICE_PRICE_RUB`, пути и короткие публичные URL документов. Единый источник — подвал, оферта, возврат и ПДн рендерят эти поля, а не повторяют строки. ОГРН сверен с открытыми данными ЕГРЮЛ (в исходном сообщении владельца был с опечаткой …028028, верный …028281). - Новые страницы /mera-public/oferta и /mera-public/refund — редакции владельца от 13.08.2026 дословно, плейсхолдер `[адрес электронной почты]` заменён на support@meraocenka.ru. - privacy/page.tsx переписана на утверждённую редакцию с оператором и реквизитами приказа. Сохранены оба инварианта честности: раздел про страницу ввода адреса условен по `PUBLIC_ESTIMATE_ENABLED` (п. 5.4 — пока публичный расчёт выключен, адрес не покидает браузер), срок хранения оплаченного отчёта рендерится из `PAID_REPORT_RETENTION_MONTHS`, а не числом в тексте (test_paid_retention_text_consistency.py). - Caddyfile: короткие адреса /oferta, /refund, /privacy → rewrite на поддерево лэндинга. Именно они напечатаны внутри документов и уйдут в заявку эквайеру. Пути перечислены поимённо — allowlist-by-default периметра не ослаблен. - smoke-mera-perimeter.sh: три новые проверки на короткие адреса. Публикация оферты НЕ включает приём оплаты: платёжного контура в коде нет, `PUBLIC_ESTIMATE_ENABLED` по-прежнему false. Оферта публикуется раньше кнопки намеренно — без неё эквайер не примет заявку. Проверено локально: tsc, next lint, vitest (29), isolation guard, next build (три страницы пререндерены), pytest test_paid_retention_text_consistency (3), caddy validate + adapt (rewrite на месте), рендер всех трёх страниц через next start — реквизиты, почта и цена на месте.
This commit is contained in:
parent
a6e751da65
commit
c6243b166f
8 changed files with 1143 additions and 146 deletions
25
Caddyfile
25
Caddyfile
|
|
@ -251,6 +251,31 @@ meraocenka.ru {
|
|||
}
|
||||
}
|
||||
|
||||
# Короткие адреса юридических документов. Именно они напечатаны ВНУТРИ
|
||||
# самих документов (оферта ссылается на meraocenka.ru/refund, политика
|
||||
# возврата — на meraocenka.ru/oferta) и уходят в заявку эквайеру, поэтому
|
||||
# обязаны резолвиться сами по себе, а не только длинным
|
||||
# /trade-in/mera-public/<doc>. Обратное направление тоже рабочее: длинный
|
||||
# путь ловит handle ниже — навигация внутри сайта ходит по нему, потому что
|
||||
# то же поддерево открывается и с gendsgn.ru/trade-in/mera-public, где
|
||||
# короткого /oferta нет.
|
||||
#
|
||||
# `rewrite`, а не `redir`: адрес в строке браузера должен остаться коротким
|
||||
# — модератор эквайера открывает ссылку из заявки и видит ровно тот URL,
|
||||
# который в ней указан. Каноничность для поисковиков задана отдельно, через
|
||||
# `alternates.canonical` на каждой из трёх страниц.
|
||||
#
|
||||
# Пути перечислены поимённо, а не шаблоном: allowlist-by-default этого
|
||||
# site-блока — часть периметра (#2545), и превращать его в «любой корневой
|
||||
# путь проксируется» ради трёх страниц нельзя.
|
||||
@meraLegalDocs path /oferta /refund /privacy
|
||||
handle @meraLegalDocs {
|
||||
rewrite * /trade-in/mera-public{path}
|
||||
reverse_proxy tradein-frontend:3000 {
|
||||
header_up -X-Authenticated-User
|
||||
}
|
||||
}
|
||||
|
||||
# Подстраницы САМОГО лэндинга. Нужны с момента мержа #2615: футер ссылается
|
||||
# на политику обработки ПДн через next/link (`PRIVACY_PATH`), а Next с
|
||||
# basePath эмитит её как /trade-in/mera-public/privacy. Без этого handle
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
# 1. meraocenka.ru отдаёт 200 анонимно (публичный лэндинг).
|
||||
# 1b. Подстраница лэндинга /trade-in/mera-public/privacy отдаёт 200 —
|
||||
# политика ПДн, на которую ссылается футер.
|
||||
# 1c. Короткие адреса /oferta, /refund, /privacy отдают 200 — эти URL
|
||||
# напечатаны внутри самих юридических документов и уходят эквайеру.
|
||||
# 2. meraocenka.ru/v2 и /trade-in/v2, /trade-in/api/* (B2B-пути) отдают 404 —
|
||||
# allowlist-by-default, НЕ были случайно проброшены на B2B-дерево
|
||||
# tradein-frontend. Проверяются обе формы — с basePath-префиксом и без.
|
||||
|
|
@ -52,6 +54,15 @@ check "meraocenka.ru root — public 200" "$BASE_MERA/" 200
|
|||
# обязательный по 152-ФЗ документ станет недоступен с публичной страницы.
|
||||
check "meraocenka.ru privacy — public 200" "$BASE_MERA/trade-in/mera-public/privacy" 200
|
||||
|
||||
# 1c. Короткие адреса юридических документов. Это НЕ дубль проверки 1b: именно
|
||||
# эти три URL напечатаны внутри самих документов и уходят в заявку
|
||||
# эквайеру — если rewrite выпадет из Caddyfile, оферта будет ссылаться на
|
||||
# 404, и заявку завернут. Проверяем все три поимённо, потому что и в
|
||||
# Caddyfile они перечислены поимённо (allowlist, не шаблон).
|
||||
check "meraocenka.ru/oferta — public 200" "$BASE_MERA/oferta" 200
|
||||
check "meraocenka.ru/refund — public 200" "$BASE_MERA/refund" 200
|
||||
check "meraocenka.ru/privacy — public 200" "$BASE_MERA/privacy" 200
|
||||
|
||||
# 2. B2B-путь на публичном домене — 404 (allowlist-by-default), не 200/401.
|
||||
check "meraocenka.ru/v2 — B2B path must 404" "$BASE_MERA/v2" 404
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
/**
|
||||
* SiteFooter — подвал. Серверный компонент.
|
||||
*
|
||||
* Что здесь честно ОТСУТСТВУЕТ:
|
||||
* - Реквизиты юрлица/ИП. В репозитории их нет (поиск по коду, бэкенду и
|
||||
* разметке не дал ни наименования, ни ИНН/ОГРН), а выдумывать реквизиты
|
||||
* оператора персональных данных на публичной странице нельзя. Блок
|
||||
* рендерится, как только `LEGAL_ENTITY` в content.ts перестанет быть null;
|
||||
* заполнить обязательно до открытия домена наружу — 152-ФЗ требует
|
||||
* идентифицируемого оператора.
|
||||
* - E-mail поддержки: реального адреса в коде тоже нет. Единственный
|
||||
* проверяемый канал — телеграм-бот из `v2/SupportChatContext.tsx`.
|
||||
* 2026-08-13: блоки реквизитов и почты, которых здесь раньше не было, теперь
|
||||
* рендерятся — данные появились (`LEGAL_ENTITY`, `SUPPORT_EMAIL` в content.ts),
|
||||
* и это не косметика: наименование, ИНН, ОГРН и работающий контакт на странице
|
||||
* с офертой — прямое требование модерации эквайера и условие идентифицируемости
|
||||
* оператора по 152-ФЗ. Значения импортируются, а не пишутся строками: тот же
|
||||
* набор рендерят оферта и политика ПДн, и разъехаться они не должны.
|
||||
*
|
||||
* Ссылки на документы ведут по ВНУТРЕННИМ путям (`OFFER_PATH` и соседи), а не
|
||||
* по коротким meraocenka.ru/oferta: короткие адреса существуют только на
|
||||
* публичном хосте (rewrite в Caddy), а это же поддерево открывается и с
|
||||
* gendsgn.ru/trade-in/mera-public — там короткая ссылка ушла бы в 404.
|
||||
*
|
||||
* Внешняя ссылка проверяется `safeUrl` (правило frontend.md: ничего в href без
|
||||
* валидации схемы) и открывается в новой вкладке с rel="noreferrer".
|
||||
|
|
@ -21,8 +23,11 @@ import { safeUrl } from "@/lib/safeUrl";
|
|||
|
||||
import {
|
||||
LEGAL_ENTITY,
|
||||
OFFER_PATH,
|
||||
PRIVACY_PATH,
|
||||
REFUND_PATH,
|
||||
REGION_NAME,
|
||||
SUPPORT_EMAIL,
|
||||
SUPPORT_TELEGRAM_LABEL,
|
||||
SUPPORT_TELEGRAM_URL,
|
||||
} from "../content";
|
||||
|
|
@ -49,6 +54,12 @@ export function SiteFooter() {
|
|||
|
||||
<div>
|
||||
<p className={styles.footerTitle}>Связаться</p>
|
||||
<p className={styles.footerText}>
|
||||
Почта:{" "}
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>
|
||||
</p>
|
||||
{telegramHref ? (
|
||||
<p className={styles.footerText}>
|
||||
Поддержка в Telegram:{" "}
|
||||
|
|
@ -61,14 +72,22 @@ export function SiteFooter() {
|
|||
{SUPPORT_TELEGRAM_LABEL}
|
||||
</a>
|
||||
</p>
|
||||
) : (
|
||||
<p className={styles.footerText}>Контакты появятся к запуску.</p>
|
||||
)}
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p className={styles.footerTitle}>Документы</p>
|
||||
<ul className={styles.footerLinks} role="list">
|
||||
<li>
|
||||
<Link className={styles.link} href={OFFER_PATH}>
|
||||
Публичная оферта
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link className={styles.link} href={REFUND_PATH}>
|
||||
Политика возврата
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link className={styles.link} href={PRIVACY_PATH}>
|
||||
Обработка персональных данных
|
||||
|
|
@ -82,8 +101,8 @@ export function SiteFooter() {
|
|||
<span>© {year} МЕРА</span>
|
||||
{LEGAL_ENTITY && (
|
||||
<span>
|
||||
{LEGAL_ENTITY.name}, ИНН {LEGAL_ENTITY.inn},{" "}
|
||||
{LEGAL_ENTITY.address}
|
||||
{LEGAL_ENTITY.name}, ИНН {LEGAL_ENTITY.inn}, ОГРН{" "}
|
||||
{LEGAL_ENTITY.ogrn}, {LEGAL_ENTITY.address}
|
||||
</span>
|
||||
)}
|
||||
<span>
|
||||
|
|
|
|||
|
|
@ -77,20 +77,119 @@ export const SUPPORT_TELEGRAM_URL = "https://t.me/MERAsupport_bot";
|
|||
export const SUPPORT_TELEGRAM_LABEL = "@MERAsupport_bot";
|
||||
|
||||
/**
|
||||
* Реквизиты оператора персональных данных (наименование юрлица/ИП, ИНН, адрес).
|
||||
* `null` — потому что в репозитории их НЕТ: поиск по коду, бэкенду и разметке
|
||||
* не дал ни ООО/ИП, ни ИНН/ОГРН. Выдумывать реквизиты на публичной странице
|
||||
* нельзя, поэтому блок реквизитов просто не рендерится, пока значение null.
|
||||
* Заполнить перед публичным запуском (обязательное требование 152-ФЗ).
|
||||
* Почта поддержки — единственный письменный канал, названный в оферте, в
|
||||
* политике возврата и в политике обработки ПДн. Один адрес на все три
|
||||
* документа сознательно: разные адреса в оферте и в политике возврата — первое,
|
||||
* за что цепляется модерация эквайера, и первое, что теряется при передаче
|
||||
* обращения внутри компании.
|
||||
*
|
||||
* Домен именно `meraocenka.ru`, а не корпоративный `pr-flat.ru`: адрес стоит в
|
||||
* публичных документах рядом с доменом сервиса и уходит в кассовый чек, где
|
||||
* расхождение доменов читается как несовпадение продавца и сайта.
|
||||
*/
|
||||
export const SUPPORT_EMAIL = "support@meraocenka.ru";
|
||||
|
||||
/**
|
||||
* Реквизиты Исполнителя (он же оператор персональных данных). Заполнены
|
||||
* 2026-08-13 по данным владельца; ОГРН/ИНН/адрес сверены с открытыми данными
|
||||
* ЕГРЮЛ (rusprofile, РБК Компании) — в исходном сообщении владельца ОГРН был с
|
||||
* опечаткой (…028028), верный — …028281.
|
||||
*
|
||||
* ЭТО ЕДИНСТВЕННОЕ МЕСТО, где реквизиты живут на фронте: подвал, оферта,
|
||||
* политика возврата и политика ПДн обязаны рендерить эти поля, а не повторять
|
||||
* строки руками — иначе при смене адреса или директора страницы разъедутся, и
|
||||
* разъедутся именно те, которые никто не перечитывает.
|
||||
*
|
||||
* `LEGAL_ENTITY !== null` — продуктовый гейт платного контура (G6 из
|
||||
* `mera-b2c-paid-flow-decision.md`): нет реквизитов — нет продажи. Обратное
|
||||
* неверно: заполненные реквизиты сами по себе НЕ включают приём оплаты (за это
|
||||
* отвечает отдельный флаг платёжного контура, которого ещё нет).
|
||||
*/
|
||||
export const LEGAL_ENTITY: {
|
||||
/** Полное фирменное наименование — как в ЕГРЮЛ. */
|
||||
name: string;
|
||||
/** Краткое наименование для строк, где полное не помещается (подвал). */
|
||||
shortName: string;
|
||||
inn: string;
|
||||
kpp: string;
|
||||
ogrn: string;
|
||||
/** Юридический адрес одной строкой. */
|
||||
address: string;
|
||||
} | null = null;
|
||||
/** Фактический адрес (для переписки), если отличается от юридического. */
|
||||
actualAddress: string;
|
||||
/** ФИО директора в именительном падеже. */
|
||||
director: string;
|
||||
bank: {
|
||||
name: string;
|
||||
/** Расчётный счёт. */
|
||||
account: string;
|
||||
bik: string;
|
||||
/** Корреспондентский счёт. */
|
||||
corrAccount: string;
|
||||
};
|
||||
} | null = {
|
||||
name: "Общество с ограниченной ответственностью «ПРОЕКТ ФЛЭТ»",
|
||||
shortName: "ООО «ПРОЕКТ ФЛЭТ»",
|
||||
inn: "6685046029",
|
||||
kpp: "668501001",
|
||||
ogrn: "1136685028281",
|
||||
address: "620075, Свердловская область, г. Екатеринбург, ул. Малышева, стр. 51, офис 1",
|
||||
actualAddress: "г. Екатеринбург, ул. Добролюбова, д. 3",
|
||||
director: "Копылов Артём Николаевич",
|
||||
bank: {
|
||||
name: "АО «Т-Банк»",
|
||||
account: "40702810910000104076",
|
||||
bik: "044525974",
|
||||
corrAccount: "30101810145250000974",
|
||||
},
|
||||
};
|
||||
|
||||
/** Внутренний маршрут страницы про обработку персональных данных. */
|
||||
/**
|
||||
* Внутренние маршруты юридических страниц (то, что понимает next/link с
|
||||
* basePath=/trade-in). Публично они же доступны короткими адресами
|
||||
* meraocenka.ru/privacy, /oferta, /refund — короткие пути раздаёт Caddy
|
||||
* (rewrite на это же поддерево), и ИМЕННО короткие напечатаны в самих
|
||||
* документах и уйдут в заявку эквайеру.
|
||||
*
|
||||
* Навигация внутри сайта ходит по внутренним путям, а не по коротким: короткий
|
||||
* `/oferta` существует только на хосте meraocenka.ru, а то же поддерево
|
||||
* открывается и с gendsgn.ru/trade-in/mera-public — там ссылка на `/oferta`
|
||||
* ушла бы в 404. Канонический адрес для внешнего мира проставлен на каждой
|
||||
* странице через `alternates.canonical` (см. PUBLIC_ORIGIN ниже).
|
||||
*/
|
||||
export const PRIVACY_PATH = "/mera-public/privacy";
|
||||
export const OFFER_PATH = "/mera-public/oferta";
|
||||
export const REFUND_PATH = "/mera-public/refund";
|
||||
|
||||
/** Канонический публичный origin сервиса — база для canonical-ссылок. */
|
||||
export const PUBLIC_ORIGIN = "https://meraocenka.ru";
|
||||
|
||||
/** Короткие публичные адреса тех же страниц (то, что напечатано в документах). */
|
||||
export const PUBLIC_PRIVACY_URL = `${PUBLIC_ORIGIN}/privacy`;
|
||||
export const PUBLIC_OFFER_URL = `${PUBLIC_ORIGIN}/oferta`;
|
||||
export const PUBLIC_REFUND_URL = `${PUBLIC_ORIGIN}/refund`;
|
||||
|
||||
/**
|
||||
* Цена одного расчёта, ₽. Названа в оферте (п. 4.1) и в политике возврата —
|
||||
* поэтому живёт здесь, а не литералом в двух документах сразу.
|
||||
*
|
||||
* ⚠️ Публикация цены в оферте НЕ означает, что приём оплаты включён:
|
||||
* платёжного контура в коде ещё нет, а `PUBLIC_ESTIMATE_ENABLED` выше по-
|
||||
* прежнему `false`. Оферта опубликована раньше кнопки намеренно — её наличие
|
||||
* с ценой и реквизитами является входным требованием модерации эквайера.
|
||||
*/
|
||||
export const SERVICE_PRICE_RUB = 150;
|
||||
|
||||
/** Редакция юридических документов — одна дата на оферту и политику возврата. */
|
||||
export const LEGAL_DOCS_REVISION = "13 августа 2026 г.";
|
||||
|
||||
/**
|
||||
* Реквизиты приказа, которым утверждена политика обработки ПДн. Политика по
|
||||
* ст. 18.1 152-ФЗ обязана быть именно УТВЕРЖДЁННЫМ документом оператора —
|
||||
* страница без этой строки (как было до 2026-08-13) заявку эквайера не
|
||||
* проходит и требованию закона не отвечает.
|
||||
*/
|
||||
export const PRIVACY_APPROVAL = "приказом директора № 1 от 13 августа 2026 г.";
|
||||
|
||||
/**
|
||||
* Сколько месяцев на нашей стороне хранится ссылка/строка оплаченного отчёта
|
||||
|
|
|
|||
|
|
@ -894,3 +894,52 @@
|
|||
display: grid;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
/* Подзаголовок юридического документа: «Редакция от …» / «Утверждена приказом
|
||||
…». Сидит вплотную под h1 — отсюда отрицательная компенсация верхнего
|
||||
отступа заголовка не нужна, но собственный нижний отступ больше, чем у
|
||||
обычного абзаца: строка отделяет шапку документа от его тела. */
|
||||
.docMeta {
|
||||
margin: 0 0 20px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
color: var(--m-muted);
|
||||
}
|
||||
|
||||
/* Блок реквизитов (dl) — оферта, раздел 13, и политика ПДн, раздел 2.
|
||||
Двухколоночный grid на широком экране, одна колонка на узком: реквизиты
|
||||
читают глазами по вертикали (ИНН, ОГРН, счёт), и перенос длинного номера
|
||||
на вторую строку хуже, чем узкий столбец подписей. */
|
||||
.docRequisites {
|
||||
margin: 0 0 10px;
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.docRequisites > div {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 11em) minmax(0, 1fr);
|
||||
gap: 4px 14px;
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
@media (max-width: 520px) {
|
||||
.docRequisites > div {
|
||||
grid-template-columns: minmax(0, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.docRequisites dt {
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
color: var(--m-muted);
|
||||
}
|
||||
|
||||
.docRequisites dd {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
line-height: 1.6;
|
||||
color: var(--m-body);
|
||||
/* Номер счёта/ОГРН не должен растягивать страницу на узком экране. */
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
|
|
|||
480
tradein-mvp/frontend/src/app/mera-public/oferta/page.tsx
Normal file
480
tradein-mvp/frontend/src/app/mera-public/oferta/page.tsx
Normal file
|
|
@ -0,0 +1,480 @@
|
|||
import type { Metadata } from "next";
|
||||
import Link from "next/link";
|
||||
|
||||
import {
|
||||
LEGAL_DOCS_REVISION,
|
||||
LEGAL_ENTITY,
|
||||
PRIVACY_PATH,
|
||||
PUBLIC_OFFER_URL,
|
||||
PUBLIC_REFUND_URL,
|
||||
REFUND_PATH,
|
||||
SERVICE_PRICE_RUB,
|
||||
SUPPORT_EMAIL,
|
||||
} from "../content";
|
||||
import styles from "../landing.module.css";
|
||||
|
||||
/**
|
||||
* Публичная оферта на оказание информационно-аналитических услуг «МЕРА».
|
||||
*
|
||||
* ОТКУДА ТЕКСТ. Редакция владельца от 13.08.2026 (docx), перенесённая сюда
|
||||
* дословно; в исходнике на месте почты стоял плейсхолдер `[адрес электронной
|
||||
* почты]` — подставлен `SUPPORT_EMAIL`, реквизиты в разделе 13 рендерятся из
|
||||
* `LEGAL_ENTITY`. Ни одна формулировка не переписана «по смыслу»: это
|
||||
* договорный документ, и расхождение с утверждённой владельцем редакцией — не
|
||||
* стилистическая правка, а другой договор.
|
||||
*
|
||||
* ПОЧЕМУ ЭТО СТРАНИЦА, А НЕ PDF. Оферта обязана быть доступна по постоянному
|
||||
* адресу без скачивания — это требование модерации эквайера и условие
|
||||
* доказуемости акцепта (п. 2.2: акцепт = оплата, значит текст на момент оплаты
|
||||
* должен быть публично зафиксирован). Короткий адрес meraocenka.ru/oferta
|
||||
* раздаёт Caddy (rewrite на этот маршрут) — именно он напечатан в самом
|
||||
* документе, в политике возврата и уйдёт в заявку эквайеру.
|
||||
*
|
||||
* ЧЕГО ЗДЕСЬ НАМЕРЕННО НЕТ:
|
||||
* - Ставки НДС числом. П. 4.1 говорит «включая НДС по ставке, применяемой
|
||||
* Исполнителем в соответствии с действующим законодательством» — у
|
||||
* владельца УСН «доходы-расходы» с НДС 5% на 2026 год и другой режим с
|
||||
* 2027-го; формулировка переживает переход без переиздания оферты, а
|
||||
* конкретная ставка живёт там, где обязана — в реквизитах кассового чека.
|
||||
* - Обещания PDF-отчёта и личного кабинета: платёжного контура в коде ещё
|
||||
* нет, состав Результата описан ровно так, как его описывает раздел 6.
|
||||
*
|
||||
* СВЯЗЬ С КОДОМ. Цена (`SERVICE_PRICE_RUB`) и реквизиты (`LEGAL_ENTITY`)
|
||||
* импортируются из `content.ts`, а не пишутся строкой: те же значения рендерит
|
||||
* подвал и политика возврата, и разъехаться они не должны.
|
||||
*/
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Публичная оферта — МЕРА",
|
||||
description:
|
||||
"Публичная оферта на оказание информационно-аналитических услуг сервиса «МЕРА».",
|
||||
alternates: { canonical: PUBLIC_OFFER_URL },
|
||||
};
|
||||
|
||||
export default function MeraPublicOfferPage() {
|
||||
const entity = LEGAL_ENTITY;
|
||||
|
||||
return (
|
||||
<main id="content" className={styles.main} tabIndex={-1}>
|
||||
<div className={`${styles.container} ${styles.doc}`}>
|
||||
<Link
|
||||
className={`${styles.link} ${styles.docBack}`}
|
||||
href="/mera-public"
|
||||
>
|
||||
← На главную
|
||||
</Link>
|
||||
|
||||
<h1 className={styles.h2}>Публичная оферта</h1>
|
||||
<p className={styles.docMeta}>
|
||||
на оказание информационно-аналитических услуг сервиса «МЕРА»
|
||||
(meraocenka.ru). Редакция от {LEGAL_DOCS_REVISION}
|
||||
</p>
|
||||
|
||||
{!entity ? (
|
||||
<p>
|
||||
Реквизиты Исполнителя не опубликованы — до их публикации оферта не
|
||||
действует и оплата на сайте не принимается.
|
||||
</p>
|
||||
) : (
|
||||
<>
|
||||
<h2>1. Термины и определения</h2>
|
||||
<p>
|
||||
1.1. «Исполнитель» — {entity.name}, реквизиты которого указаны в
|
||||
разделе 13 настоящей Оферты.
|
||||
</p>
|
||||
<p>
|
||||
1.2. «Сайт» — интернет-сайт, расположенный по адресу
|
||||
meraocenka.ru, включая все его страницы и поддомены.
|
||||
</p>
|
||||
<p>
|
||||
1.3. «Сервис» или «МЕРА» — программа для ЭВМ, размещённая на Сайте
|
||||
и предназначенная для автоматизированного формирования
|
||||
индикативного расчёта ориентировочной рыночной стоимости объекта
|
||||
недвижимости на основании характеристик, введённых пользователем.
|
||||
</p>
|
||||
<p>
|
||||
1.4. «Заказчик» — любое дееспособное физическое лицо либо
|
||||
юридическое лицо / индивидуальный предприниматель, оплатившее
|
||||
Услугу на условиях настоящей Оферты.
|
||||
</p>
|
||||
<p>
|
||||
1.5. «Услуга» — оказываемая Исполнителем услуга по формированию и
|
||||
предоставлению Заказчику Результата по одному обращению к Сервису.
|
||||
</p>
|
||||
<p>
|
||||
1.6. «Результат» или «Расчёт» — сформированное Сервисом
|
||||
индикативное значение ориентировочной рыночной стоимости объекта
|
||||
недвижимости, отображаемое в интерфейсе Сайта и/или направляемое
|
||||
на электронную почту Заказчика.
|
||||
</p>
|
||||
<p>
|
||||
1.7. «Оферта» — настоящий документ, размещённый в свободном
|
||||
доступе в сети Интернет по адресу {PUBLIC_OFFER_URL}.
|
||||
</p>
|
||||
|
||||
<h2>2. Общие положения</h2>
|
||||
<p>
|
||||
2.1. Настоящая Оферта является публичным предложением Исполнителя
|
||||
заключить договор оказания услуг на изложенных ниже условиях в
|
||||
соответствии со ст. 435 и п. 2 ст. 437 Гражданского кодекса РФ.
|
||||
</p>
|
||||
<p>
|
||||
2.2. Оферта считается акцептованной Заказчиком, а договор —
|
||||
заключённым на условиях настоящей Оферты с момента совершения
|
||||
Заказчиком действий, свидетельствующих об акцепте, а именно —
|
||||
оплаты стоимости Услуги в порядке, установленном разделом 4
|
||||
настоящей Оферты (ст. 438 ГК РФ).
|
||||
</p>
|
||||
<p>
|
||||
2.3. Заказчик, не согласный с условиями настоящей Оферты, не
|
||||
вправе производить оплату Услуги и обязан покинуть Сайт.
|
||||
</p>
|
||||
<p>
|
||||
2.4. К отношениям Сторон, не урегулированным настоящей Офертой,
|
||||
применяется законодательство Российской Федерации, включая, если
|
||||
Заказчиком является физическое лицо, действующее для личных,
|
||||
семейных, бытовых нужд, не связанных с предпринимательской
|
||||
деятельностью, — Закон РФ от 07.02.1992 № 2300-1 «О защите прав
|
||||
потребителей».
|
||||
</p>
|
||||
|
||||
<h2>3. Предмет Оферты</h2>
|
||||
<p>
|
||||
3.1. Исполнитель обязуется оказать Заказчику Услугу — сформировать
|
||||
и предоставить Заказчику доступ к Результату, а Заказчик обязуется
|
||||
оплатить Услугу в порядке и на условиях, установленных настоящей
|
||||
Офертой.
|
||||
</p>
|
||||
<p>
|
||||
3.2. Услуга оказывается дистанционно, посредством сети Интернет,
|
||||
без необходимости личного присутствия Заказчика.
|
||||
</p>
|
||||
<p>
|
||||
3.3. Характер и правовой статус Результата определены разделом 6
|
||||
настоящей Оферты — Заказчику надлежит ознакомиться с ним до
|
||||
совершения оплаты.
|
||||
</p>
|
||||
|
||||
<h2>4. Стоимость Услуги и порядок оплаты</h2>
|
||||
<p>
|
||||
4.1. Стоимость одной Услуги (одного Расчёта) составляет{" "}
|
||||
{SERVICE_PRICE_RUB} (сто пятьдесят) рублей 00 копеек, включая НДС
|
||||
по ставке, применяемой Исполнителем в соответствии с действующим
|
||||
законодательством РФ.
|
||||
</p>
|
||||
<p>
|
||||
4.2. Оплата производится Заказчиком в безналичном порядке через
|
||||
платёжную форму на Сайте с использованием банковских карт
|
||||
платёжных систем и/или иных способов оплаты, поддерживаемых
|
||||
платёжным сервисом, подключённым Исполнителем.
|
||||
</p>
|
||||
<p>
|
||||
4.3. Обязанность Заказчика по оплате Услуги считается исполненной
|
||||
с момента зачисления денежных средств на расчётный счёт
|
||||
Исполнителя либо на счёт платёжного сервиса, обслуживающего
|
||||
расчёты Исполнителя.
|
||||
</p>
|
||||
<p>
|
||||
4.4. Исполнитель направляет Заказчику кассовый чек в соответствии
|
||||
с Федеральным законом от 22.05.2003 № 54-ФЗ на номер телефона или
|
||||
адрес электронной почты, указанные Заказчиком при оплате. Заказчик
|
||||
обязан указать корректные и действующие контактные данные для
|
||||
получения чека.
|
||||
</p>
|
||||
<p>
|
||||
4.5. Стоимость Услуги может быть изменена Исполнителем в
|
||||
одностороннем порядке путём публикации новой редакции Оферты на
|
||||
Сайте. Новая стоимость применяется к Услугам, оплаченным после
|
||||
публикации новой редакции, и не имеет обратной силы.
|
||||
</p>
|
||||
|
||||
<h2>5. Момент оказания Услуги</h2>
|
||||
<p>
|
||||
5.1. Услуга считается оказанной Исполнителем в полном объёме и
|
||||
надлежащим образом с момента наступления любого из следующих
|
||||
событий, в зависимости от того, какое из них наступит раньше:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
отображения Результата в интерфейсе Сайта Заказчику после ввода
|
||||
характеристик объекта и подтверждения оплаты;
|
||||
</li>
|
||||
<li>
|
||||
направления Результата на адрес электронной почты, указанный
|
||||
Заказчиком при оплате.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
5.2. Ввиду массового и автоматизированного характера Услуги
|
||||
отдельный акт оказания услуг Сторонами не составляется и не
|
||||
подписывается. Факт формирования и предоставления Результата
|
||||
фиксируется автоматически в системе Сайта (запись в системном
|
||||
журнале с указанием даты, времени и идентификатора операции) и
|
||||
является достаточным и надлежащим доказательством оказания Услуги
|
||||
в полном объёме.
|
||||
</p>
|
||||
<p>
|
||||
5.3. Услуга оплачивается Заказчиком за факт формирования и
|
||||
предоставления Результата, а не за конкретное числовое значение,
|
||||
определённое Сервисом, и не за соответствие такого значения
|
||||
ожиданиям Заказчика или дальнейшим действиям Заказчика на его
|
||||
основании. Характер и ограничения Результата установлены разделом
|
||||
6 настоящей Оферты.
|
||||
</p>
|
||||
<p>
|
||||
5.4. Заказчик вправе направить Исполнителю мотивированное
|
||||
обращение относительно факта оказания Услуги (то есть относительно
|
||||
того, был ли Результат фактически сформирован и предоставлен) в
|
||||
течение 24 (двадцати четырёх) часов с момента, определённого п.
|
||||
5.1 настоящей Оферты. По истечении указанного срока Услуга
|
||||
считается оказанной Исполнителем в полном объёме и принятой
|
||||
Заказчиком без замечаний к факту и полноте её оказания.
|
||||
</p>
|
||||
<p>
|
||||
5.5. Если по техническим причинам на стороне Сайта или Сервиса
|
||||
Результат не был сформирован либо не был предоставлен Заказчику в
|
||||
течение 15 (пятнадцати) минут с момента подтверждения оплаты по п.
|
||||
4.3, Услуга считается неоказанной. В этом случае применяется
|
||||
порядок возврата денежных средств, установленный п. 8.3 настоящей
|
||||
Оферты.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
6. Характер и статус Результата — ограничение ответственности
|
||||
</h2>
|
||||
<p>
|
||||
6.1. Результат, формируемый Сервисом и предоставляемый Заказчику,
|
||||
является результатом автоматизированной обработки введённых
|
||||
Заказчиком данных и носит исключительно индикативный
|
||||
(ориентировочный, вероятностный) информационно-аналитический
|
||||
характер.
|
||||
</p>
|
||||
<p>
|
||||
6.2. Результат не является отчётом об оценке по смыслу
|
||||
Федерального закона от 29.07.1998 № 135-ФЗ «Об оценочной
|
||||
деятельности в Российской Федерации», не составляется субъектом
|
||||
оценочной деятельности и не обладает юридической силой,
|
||||
установленной указанным законом для отчёта об оценке.
|
||||
</p>
|
||||
<p>
|
||||
6.3. Результат не предназначен для использования и не может быть
|
||||
использован в качестве обязательного к применению значения
|
||||
рыночной стоимости объекта недвижимости в случаях, когда
|
||||
законодательством РФ предусмотрено обязательное проведение оценки,
|
||||
в том числе для целей: ипотечного кредитования; судебных
|
||||
разбирательств; нотариальных действий; сделок с участием
|
||||
государственного или муниципального имущества; иных случаев, прямо
|
||||
предусмотренных законодательством РФ.
|
||||
</p>
|
||||
<p>
|
||||
6.4. Точность Результата зависит от полноты и достоверности
|
||||
характеристик объекта, введённых Заказчиком. Исполнитель не
|
||||
проверяет и не может проверить достоверность введённых Заказчиком
|
||||
данных и не несёт ответственности за отклонение Результата от
|
||||
фактической рыночной стоимости объекта, вызванное
|
||||
недостоверностью, неполнотой или неточностью введённых данных.
|
||||
</p>
|
||||
<p>
|
||||
6.5. Исполнитель не несёт ответственности за любые решения,
|
||||
действия или бездействие Заказчика либо третьих лиц, основанные на
|
||||
Результате, включая решения о покупке, продаже, зачёте объекта
|
||||
недвижимости по программам трейд-ин или иным образом.
|
||||
</p>
|
||||
|
||||
<h2>7. Права и обязанности Сторон</h2>
|
||||
<p>
|
||||
7.1. Исполнитель обязуется обеспечить функционирование Сервиса и
|
||||
предоставить Заказчику Результат при условии поступления оплаты и
|
||||
корректного заполнения Заказчиком формы ввода характеристик
|
||||
объекта.
|
||||
</p>
|
||||
<p>
|
||||
7.2. Заказчик обязуется предоставлять достоверные характеристики
|
||||
объекта для формирования Результата и указывать корректные
|
||||
контактные данные, необходимые для направления кассового чека.
|
||||
</p>
|
||||
<p>
|
||||
7.3. Исполнитель вправе приостановить оказание Услуги на время
|
||||
проведения технических, профилактических и иных работ, необходимых
|
||||
для поддержания работоспособности Сайта и Сервиса.
|
||||
</p>
|
||||
<p>
|
||||
7.4. Исполнитель вправе в одностороннем порядке изменять условия
|
||||
настоящей Оферты с публикацией новой редакции на Сайте не менее
|
||||
чем за 3 (три) календарных дня до её вступления в силу, за
|
||||
исключением случаев, требующих немедленного изменения в силу
|
||||
закона.
|
||||
</p>
|
||||
|
||||
<h2>8. Порядок возврата денежных средств</h2>
|
||||
<p>
|
||||
8.0. Условия настоящего раздела дублируются и подробно раскрыты в
|
||||
отдельном документе —{" "}
|
||||
<Link className={styles.link} href={REFUND_PATH}>
|
||||
Политике возврата денежных средств
|
||||
</Link>
|
||||
, размещённой по адресу {PUBLIC_REFUND_URL}. В случае расхождений
|
||||
между настоящим разделом и указанным документом применяется
|
||||
настоящая Оферта.
|
||||
</p>
|
||||
<p>
|
||||
8.1. Общее правило. Услуга, оказанная в соответствии с разделом 5
|
||||
настоящей Оферты, считается исполненной Исполнителем в полном
|
||||
объёме. После наступления момента, установленного п. 5.1, оплата
|
||||
возврату не подлежит, за исключением случаев, прямо
|
||||
предусмотренных настоящим разделом и законодательством РФ.
|
||||
</p>
|
||||
<p>
|
||||
8.2. Отказ от Услуги до её оказания. В соответствии со ст. 782
|
||||
Гражданского кодекса РФ Заказчик вправе отказаться от Услуги в
|
||||
любой момент до наступления момента её оказания, установленного п.
|
||||
5.1 настоящей Оферты, уведомив Исполнителя по контактным данным,
|
||||
указанным в разделе 13. В этом случае уплаченные денежные средства
|
||||
возвращаются Заказчику в полном объёме, поскольку формирование
|
||||
Результата не влечёт для Исполнителя расходов, подлежащих
|
||||
отдельному возмещению за счёт Заказчика.
|
||||
</p>
|
||||
<p>
|
||||
8.3. Технический сбой (Услуга не оказана). Если Результат не был
|
||||
предоставлен Заказчику по причинам, указанным в п. 5.5 настоящей
|
||||
Оферты, денежные средства возвращаются Заказчику в полном объёме
|
||||
автоматически, без необходимости подачи Заказчиком отдельного
|
||||
заявления или обращения, в срок не позднее 3 (трёх) рабочих дней с
|
||||
момента фиксации Сервисом факта неоказания Услуги.
|
||||
</p>
|
||||
<p>
|
||||
8.4. Иные основания возврата. Денежные средства также подлежат
|
||||
возврату в полном объёме в случаях: повторного списания денежных
|
||||
средств вследствие технической ошибки платёжной формы Сайта;
|
||||
списания денежных средств по операции, не санкционированной
|
||||
Заказчиком, — при подтверждении данного факта банком-эмитентом
|
||||
карты Заказчика.
|
||||
</p>
|
||||
<p>
|
||||
8.5. Для возврата денежных средств по основаниям п. 8.4 Заказчик
|
||||
направляет обращение на {SUPPORT_EMAIL}, указав дату и
|
||||
приблизительное время оплаты, сумму и последние 4 цифры номера
|
||||
карты, с которой производилась оплата. Исполнитель рассматривает
|
||||
обращение и принимает решение в срок не позднее 10 (десяти)
|
||||
рабочих дней с момента его получения.
|
||||
</p>
|
||||
<p>
|
||||
8.6. Возврат денежных средств во всех случаях производится тем же
|
||||
способом, которым была произведена оплата, если иной способ не
|
||||
согласован Сторонами дополнительно.
|
||||
</p>
|
||||
<p>
|
||||
8.7. Настоящий раздел не ограничивает права Заказчика,
|
||||
являющегося потребителем по смыслу Закона РФ от 07.02.1992 №
|
||||
2300-1 «О защите прав потребителей»: в части, в которой условия
|
||||
настоящего раздела противоречили бы правам, гарантированным
|
||||
Заказчику указанным Законом, применяются положения Закона.
|
||||
</p>
|
||||
|
||||
<h2>9. Персональные данные</h2>
|
||||
<p>
|
||||
9.1. Обработка персональных данных Заказчика осуществляется
|
||||
Исполнителем в соответствии с{" "}
|
||||
<Link className={styles.link} href={PRIVACY_PATH}>
|
||||
Политикой обработки персональных данных
|
||||
</Link>
|
||||
, размещённой на Сайте и являющейся неотъемлемой частью настоящей
|
||||
Оферты.
|
||||
</p>
|
||||
|
||||
<h2>10. Ответственность Сторон</h2>
|
||||
<p>
|
||||
10.1. За неисполнение или ненадлежащее исполнение обязательств по
|
||||
настоящей Оферте Стороны несут ответственность в соответствии с
|
||||
законодательством РФ.
|
||||
</p>
|
||||
<p>
|
||||
10.2. Совокупная ответственность Исполнителя перед Заказчиком по
|
||||
настоящей Оферте ограничена суммой, уплаченной Заказчиком за
|
||||
соответствующую Услугу, за исключением случаев, когда
|
||||
законодательством РФ установлено иное (в частности, в отношении
|
||||
прав потребителей).
|
||||
</p>
|
||||
<p>
|
||||
10.3. Исполнитель не несёт ответственности за невозможность
|
||||
оказания Услуги вследствие обстоятельств непреодолимой силы, а
|
||||
также сбоев в работе сетей связи, интернет-провайдеров, платёжных
|
||||
систем и иных третьих лиц, не находящихся под контролем
|
||||
Исполнителя.
|
||||
</p>
|
||||
|
||||
<h2>11. Срок действия Оферты</h2>
|
||||
<p>
|
||||
11.1. Оферта действует бессрочно с момента размещения на Сайте до
|
||||
момента её отзыва Исполнителем либо замены новой редакцией.
|
||||
</p>
|
||||
|
||||
<h2>12. Разрешение споров</h2>
|
||||
<p>
|
||||
12.1. Стороны стремятся разрешить любые споры и разногласия путём
|
||||
переговоров с обязательным направлением письменной претензии. Срок
|
||||
ответа на претензию — 10 (десять) рабочих дней с момента
|
||||
получения.
|
||||
</p>
|
||||
<p>
|
||||
12.2. При недостижении согласия спор передаётся на рассмотрение
|
||||
суда по месту нахождения Исполнителя, за исключением случаев,
|
||||
когда императивными нормами законодательства о защите прав
|
||||
потребителей установлена альтернативная подсудность по выбору
|
||||
потребителя.
|
||||
</p>
|
||||
|
||||
<h2>13. Реквизиты Исполнителя</h2>
|
||||
<dl className={styles.docRequisites}>
|
||||
<div>
|
||||
<dt>Наименование</dt>
|
||||
<dd>{entity.name}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Юридический адрес</dt>
|
||||
<dd>{entity.address}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Фактический адрес</dt>
|
||||
<dd>{entity.actualAddress}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>ИНН / КПП</dt>
|
||||
<dd>
|
||||
{entity.inn} / {entity.kpp}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>ОГРН</dt>
|
||||
<dd>{entity.ogrn}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Расчётный счёт</dt>
|
||||
<dd>{entity.bank.account}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Банк</dt>
|
||||
<dd>
|
||||
{entity.bank.name}, БИК {entity.bank.bik}, к/с{" "}
|
||||
{entity.bank.corrAccount}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>E-mail</dt>
|
||||
<dd>
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Директор</dt>
|
||||
<dd>{entity.director}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
|
@ -4,7 +4,10 @@ import Link from "next/link";
|
|||
import {
|
||||
LEGAL_ENTITY,
|
||||
PAID_REPORT_RETENTION_MONTHS,
|
||||
PRIVACY_APPROVAL,
|
||||
PUBLIC_ESTIMATE_ENABLED,
|
||||
PUBLIC_PRIVACY_URL,
|
||||
SUPPORT_EMAIL,
|
||||
SUPPORT_TELEGRAM_LABEL,
|
||||
SUPPORT_TELEGRAM_URL,
|
||||
} from "../content";
|
||||
|
|
@ -12,64 +15,47 @@ import styles from "../landing.module.css";
|
|||
import { safeUrl } from "@/lib/safeUrl";
|
||||
|
||||
/**
|
||||
* Страница «Обработка персональных данных» для публичного лэндинга.
|
||||
* Политика обработки персональных данных по ст. 18.1 152-ФЗ.
|
||||
*
|
||||
* ЧТО ЭТО ЗА ДОКУМЕНТ. Это НЕ утверждённая политика по ст. 18.1 152-ФЗ:
|
||||
* полноценная политика обязана называть оператора (наименование, ИНН, адрес), а
|
||||
* этих данных в проекте нет — см. `LEGAL_ENTITY` в content.ts. Выдумывать
|
||||
* реквизиты на публичной странице нельзя, поэтому здесь — честное описание
|
||||
* того, что сервис делает с данными СЕГОДНЯ по факту кода:
|
||||
* ЧТО ИЗМЕНИЛОСЬ 2026-08-13. До этой редакции страница честно объявляла себя
|
||||
* НЕ утверждённой политикой: у проекта не было ни реквизитов оператора, ни
|
||||
* приказа об утверждении, и выдумывать их было нельзя. Теперь есть и то, и
|
||||
* другое (`LEGAL_ENTITY`, `PRIVACY_APPROVAL` в content.ts), поэтому здесь —
|
||||
* утверждённая владельцем редакция (docx от 13.08.2026), перенесённая
|
||||
* дословно. Прежняя оговорка «политика не утверждена» снята не потому, что
|
||||
* стала неудобной, а потому, что перестала быть правдой.
|
||||
*
|
||||
* - расчёт: адрес + параметры квартиры (`TradeInEstimateInput`);
|
||||
* - заявка: телефон + явное согласие галочкой (`v2/LeadForm.tsx` →
|
||||
* `POST /api/v1/trade-in/lead`), факт согласия сохраняется отдельно;
|
||||
* - сама эта страница не делает ни одного запроса к API и не подключает
|
||||
* счётчики (проверено: RouteGuard отдаёт публичный путь до useMe,
|
||||
* `app/providers.tsx` поднимает только пустой QueryClient, шрифты
|
||||
* self-hosted через next/font).
|
||||
* ЧТО ОСТАЛОСЬ ОТ ПРЕЖНЕЙ СТРАНИЦЫ — правило честности:
|
||||
* - Раздел про страницу ввода адреса УСЛОВЕН по `PUBLIC_ESTIMATE_ENABLED`.
|
||||
* Пока публичный расчёт выключен, адрес физически не покидает браузер, и
|
||||
* писать обратное нельзя; текст меняется вместе с флагом, а не потом.
|
||||
* - Срок хранения оплаченного отчёта рендерится из
|
||||
* `PAID_REPORT_RETENTION_MONTHS`, а НЕ числом, вписанным в текст, — это
|
||||
* гейтится тестом `test_paid_retention_text_consistency.py` (бэкендовая
|
||||
* настройка `trade_in_paid_retention_days` и публичное обещание обязаны
|
||||
* двигаться вместе).
|
||||
* - Механизм удаления описан как существующий, потому что он существует:
|
||||
* `app/services/data_erasure.py` (по обращению) и
|
||||
* `app/tasks/purge_expired_trade_in_data.py` (по истечении срока).
|
||||
* Известное ограничение — копия сообщения в Telegram-группе поддержки этим
|
||||
* механизмом не стирается (см. докстринг `data_erasure.py`); на публичной
|
||||
* странице это не разворачивается, но при обращении об удалении оператор
|
||||
* обязан помнить.
|
||||
*
|
||||
* ЧЕГО ЗДЕСЬ СОЗНАТЕЛЬНО НЕ НАПИСАНО:
|
||||
* - «адрес и параметры квартиры — это не данные о вас». Правовая
|
||||
* квалификация — не наше дело: заявка привязывается к конкретному расчёту
|
||||
* (`TradeInLeadInput.estimate_id`), то есть телефон связывается с ранее
|
||||
* сохранённым адресом. Финальную формулировку даёт юрист.
|
||||
* - «мы обещаем удалить всё вообще» без оговорок. После #2547 механизм
|
||||
* удаления в бэкенде ЕСТЬ: `app/services/data_erasure.py` (ручное
|
||||
* удаление по обращению — по estimate_id/телефону/Telegram chat id) и
|
||||
* `app/tasks/purge_expired_trade_in_data.py` (автоматическое удаление по
|
||||
* истечении срока хранения). Прежняя формулировка «механизма нет» стала
|
||||
* неправдой и здесь больше не пишется. Оговорка, которая остаётся честной:
|
||||
* копия сообщения в Telegram-группе поддержки этим механизмом не
|
||||
* стирается (см. докстринг `data_erasure.py`) — сюда её не выносим
|
||||
* (излишняя техническая деталь для публичной страницы), но это ограничение
|
||||
* реальное и известное.
|
||||
* - Срок хранения оплаченного отчёта (PR #2754, `retain_until` /
|
||||
* `trade_in_paid_retention_days` в backend `config.py`): число месяцев
|
||||
* ниже — константа `PAID_REPORT_RETENTION_MONTHS` из `../content.ts`,
|
||||
* НЕ литерал здесь (см. докстринг константы — она единственный источник
|
||||
* этого числа на фронте; `test_paid_retention_text_consistency.py`
|
||||
* проверяет, что эта страница действительно её импортирует). Платёжного
|
||||
* кода в этом PR нет — срок описан на будущее, вместе с честной правкой
|
||||
* ниже про то, что удаление сегодня описывает установленный ПОРЯДОК, а
|
||||
* не наблюдаемый на проде автоматический прогон (задача засеяна
|
||||
* выключенной).
|
||||
*
|
||||
* Раздел «Что делает эта страница» УСЛОВЕН по `PUBLIC_ESTIMATE_ENABLED`: пока
|
||||
* расчёт выключен, адрес действительно не покидает браузер; после включения это
|
||||
* перестанет быть правдой, и текст должен смениться вместе с флагом, а не
|
||||
* когда-нибудь потом.
|
||||
*
|
||||
* Перед открытием домена наружу текст обязан быть заменён на утверждённую
|
||||
* политику с реквизитами оператора.
|
||||
* Короткий публичный адрес — meraocenka.ru/privacy (rewrite в Caddy); именно он
|
||||
* напечатан в самой политике и в оферте.
|
||||
*/
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Обработка персональных данных — МЕРА",
|
||||
robots: { index: false, follow: false },
|
||||
title: "Политика обработки персональных данных — МЕРА",
|
||||
description:
|
||||
"Утверждённая политика обработки персональных данных сервиса «МЕРА» по ст. 18.1 152-ФЗ.",
|
||||
alternates: { canonical: PUBLIC_PRIVACY_URL },
|
||||
};
|
||||
|
||||
export default function MeraPublicPrivacyPage() {
|
||||
const telegramHref = safeUrl(SUPPORT_TELEGRAM_URL);
|
||||
const entity = LEGAL_ENTITY;
|
||||
|
||||
return (
|
||||
<main id="content" className={styles.main} tabIndex={-1}>
|
||||
|
|
@ -81,103 +67,217 @@ export default function MeraPublicPrivacyPage() {
|
|||
← На главную
|
||||
</Link>
|
||||
|
||||
<h1 className={styles.h2}>Обработка персональных данных</h1>
|
||||
|
||||
<p>
|
||||
Здесь по-человечески описано, какие данные нужны сервису «Мера», зачем
|
||||
и что с ними происходит.
|
||||
<h1 className={styles.h2}>
|
||||
Политика обработки персональных данных
|
||||
</h1>
|
||||
<p className={styles.docMeta}>
|
||||
сервис «МЕРА» (meraocenka.ru). Утверждена {PRIVACY_APPROVAL}
|
||||
</p>
|
||||
|
||||
<h2>Что нужно для оценки</h2>
|
||||
<h2>1. Общие положения</h2>
|
||||
<p>
|
||||
Адрес дома и параметры квартиры: площадь, этаж, число комнат, тип
|
||||
дома, состояние. Имя, паспорт и документы на квартиру мы не
|
||||
спрашиваем, и сами по себе эти сведения описывают объект недвижимости.
|
||||
1.1. Настоящая Политика определяет порядок обработки персональных
|
||||
данных и меры по обеспечению их безопасности в{" "}
|
||||
{entity ? entity.shortName : "организации-операторе"} (далее —
|
||||
«Оператор») в целях защиты прав и свобод пользователей сайта
|
||||
meraocenka.ru (далее — «Сайт», «Сервис»).
|
||||
</p>
|
||||
<p>
|
||||
При этом мы не делаем вид, что связи с вами нет совсем: если вы потом
|
||||
оставите заявку, ваш телефон будет привязан именно к этому расчёту —
|
||||
то есть к конкретному адресу. Поэтому телефон и обращаемся с ним как с
|
||||
персональными данными, с отдельным согласием.
|
||||
1.2. Политика разработана и утверждена в соответствии со ст. 18.1
|
||||
Федерального закона от 27.07.2006 № 152-ФЗ «О персональных данных» и
|
||||
является общедоступным документом, размещаемым на Сайте без
|
||||
ограничения доступа по адресу {PUBLIC_PRIVACY_URL}.
|
||||
</p>
|
||||
|
||||
<h2>Когда появляется телефон</h2>
|
||||
<p>
|
||||
Только если вы сами решите оставить заявку и поставите отдельную
|
||||
галочку согласия на обработку персональных данных в соответствии с
|
||||
Федеральным законом № 152-ФЗ. Без этой галочки заявка не отправляется.
|
||||
</p>
|
||||
<p>
|
||||
Телефон используется, чтобы связаться с вами по вашей же заявке.
|
||||
Вместе с ним сохраняется сам факт согласия — когда именно и на каком
|
||||
тексте оно было дано.
|
||||
</p>
|
||||
|
||||
<h2>Что делает эта страница</h2>
|
||||
{PUBLIC_ESTIMATE_ENABLED ? (
|
||||
<p>
|
||||
Введённый адрес и параметры квартиры уходят на наш сервер, чтобы по
|
||||
ним посчитать оценку, и сохраняются вместе с результатом расчёта —
|
||||
иначе отчёт нельзя было бы открыть повторно. Счётчиков и рекламных
|
||||
пикселей на странице нет, шрифты отдаются с нашего домена, а не со
|
||||
сторонних сервисов.
|
||||
</p>
|
||||
<h2>2. Оператор персональных данных</h2>
|
||||
{entity ? (
|
||||
<dl className={styles.docRequisites}>
|
||||
<div>
|
||||
<dt>Наименование</dt>
|
||||
<dd>{entity.name}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>ИНН / КПП / ОГРН</dt>
|
||||
<dd>
|
||||
{entity.inn} / {entity.kpp} / {entity.ogrn}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Юридический адрес</dt>
|
||||
<dd>{entity.address}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Директор</dt>
|
||||
<dd>{entity.director}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
) : (
|
||||
<p>
|
||||
Ничего не отправляет. Пока публичная оценка не открыта, форма адреса
|
||||
работает только в браузере: введённый адрес никуда не уходит и нигде
|
||||
не сохраняется. Счётчиков и рекламных пикселей на странице нет,
|
||||
шрифты отдаются с нашего домена, а не со сторонних сервисов.
|
||||
Реквизиты оператора не опубликованы — до их публикации политика не
|
||||
считается утверждённой.
|
||||
</p>
|
||||
)}
|
||||
|
||||
<h2>Как отозвать согласие</h2>
|
||||
<h2>3. Какие данные мы обрабатываем и зачем</h2>
|
||||
<p>
|
||||
Напишите нам в поддержку — обращение об отзыве согласия мы принимаем и
|
||||
разбираем вручную, после чего перестаём использовать ваш телефон для
|
||||
связи по заявке.{" "}
|
||||
{telegramHref ? (
|
||||
<>
|
||||
Канал связи:{" "}
|
||||
<a
|
||||
className={styles.link}
|
||||
href={telegramHref}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
{SUPPORT_TELEGRAM_LABEL}
|
||||
</a>
|
||||
.
|
||||
</>
|
||||
) : null}
|
||||
3.1. Для получения расчёта пользователь вводит адрес объекта
|
||||
недвижимости и его параметры: площадь, этаж, число комнат, тип дома,
|
||||
состояние ремонта. Имя, паспортные данные и правоустанавливающие
|
||||
документы на объект Оператором не запрашиваются.
|
||||
</p>
|
||||
<p>
|
||||
Самостоятельной кнопки «удалить мои данные» в интерфейсе пока нет, но
|
||||
механизм удаления в сервисе есть: обращение в поддержку об удалении мы
|
||||
разбираем вручную и физически стираем телефон, адрес и расчёт из базы,
|
||||
а не просто помечаем запись. Помимо запроса, для каждого типа данных
|
||||
установлен срок хранения, по истечении которого они подлежат
|
||||
удалению. Если результат расчёта оплачен, ссылка на отчёт и
|
||||
связанные с ним данные хранятся на нашей стороне{" "}
|
||||
{PAID_REPORT_RETENTION_MONTHS} месяцев с даты оплаты, а затем
|
||||
подлежат удалению так же, как и остальные данные — на файл, который
|
||||
вы скачали себе, это не влияет: мы его не отзываем, не изменяем и не
|
||||
имеем к нему доступа.
|
||||
3.2. Адрес и параметры объекта сами по себе описывают объект
|
||||
недвижимости, а не конкретного человека, и в отдельности от иных
|
||||
данных не относятся к определённому физическому лицу — в связи с чем
|
||||
не рассматриваются Оператором как персональные данные.
|
||||
</p>
|
||||
<p>
|
||||
3.3. Номер телефона обрабатывается Оператором только в том случае,
|
||||
если пользователь самостоятельно принимает решение оставить заявку и
|
||||
проставляет отдельную отметку о согласии на обработку персональных
|
||||
данных в соответствии с Федеральным законом № 152-ФЗ. Без такой
|
||||
отметки заявка не отправляется. Отметка о согласии по умолчанию не
|
||||
проставлена — пользователь ставит её сам, осознанным действием.
|
||||
</p>
|
||||
<p>
|
||||
3.4. При оставлении заявки указанный пользователем номер телефона
|
||||
сохраняется в привязке к конкретному адресу объекта, введённому этим
|
||||
же пользователем. Именно с момента такой привязки совокупность данных
|
||||
(телефон + адрес + факт обращения) рассматривается Оператором как
|
||||
персональные данные пользователя, и на неё распространяются все
|
||||
положения настоящей Политики в полном объёме.
|
||||
</p>
|
||||
<p>
|
||||
3.5. Дополнительно, при оплате Услуги на Сайте Оператор обрабатывает
|
||||
номер телефона и/или адрес электронной почты, указанные пользователем
|
||||
при оплате — для направления кассового чека в соответствии с
|
||||
Федеральным законом от 22.05.2003 № 54-ФЗ, — а также технические
|
||||
данные (IP-адрес, данные браузера и устройства), передаваемые в связи
|
||||
с проведением платежа через платёжный сервис, подключённый Оператором.
|
||||
</p>
|
||||
|
||||
<h2>Оператор</h2>
|
||||
{LEGAL_ENTITY ? (
|
||||
<h2>4. Правовые основания обработки</h2>
|
||||
<p>
|
||||
4.1. Обработка номера телефона по заявке осуществляется на основании
|
||||
отдельного согласия пользователя, выраженного проставлением отметки на
|
||||
Сайте (п. 3.3), в соответствии со ст. 9 Федерального закона № 152-ФЗ.
|
||||
</p>
|
||||
<p>
|
||||
4.2. Обработка данных, указанных при оплате Услуги (п. 3.5),
|
||||
осуществляется в целях исполнения договора, стороной которого является
|
||||
пользователь (п. 5 ч. 1 ст. 6 Федерального закона № 152-ФЗ), а также
|
||||
во исполнение обязанностей Оператора, установленных Федеральным
|
||||
законом № 54-ФЗ.
|
||||
</p>
|
||||
|
||||
<h2>5. Как обрабатываются данные при формировании расчёта</h2>
|
||||
<p>
|
||||
5.1. Введённый пользователем адрес объекта и его параметры (площадь,
|
||||
этаж, число комнат, тип дома, состояние ремонта) передаются на сервер
|
||||
Оператора и используются для подбора сопоставимых объектов
|
||||
недвижимости — по сведениям о зарегистрированных сделках (в том числе
|
||||
из открытых источников Росреестра), по объявлениям на партнёрских
|
||||
площадках и, при недостатке иных данных, по оценочным моделям таких
|
||||
площадок, используемым Оператором в качестве сверочных данных.
|
||||
</p>
|
||||
<p>
|
||||
5.2. Указанные в п. 5.1 данные об объекте сами по себе, в отрыве от
|
||||
иных данных, не относятся к определённому физическому лицу и не
|
||||
рассматриваются Оператором как персональные данные — в соответствии с
|
||||
п. 3.2 настоящей Политики.
|
||||
</p>
|
||||
<p>
|
||||
5.3. На странице ввода адреса, доступной до момента отправки заявки
|
||||
или оплаты, не используются счётчики и рекламные пиксели сторонних
|
||||
сервисов; статические ресурсы страницы (шрифты и т. п.) подключаются с
|
||||
домена Оператора.
|
||||
</p>
|
||||
{PUBLIC_ESTIMATE_ENABLED ? null : (
|
||||
<p>
|
||||
{LEGAL_ENTITY.name}, ИНН {LEGAL_ENTITY.inn}, {LEGAL_ENTITY.address}.
|
||||
</p>
|
||||
) : (
|
||||
<p>
|
||||
Реквизиты оператора персональных данных и утверждённая политика
|
||||
обработки будут опубликованы здесь до открытия публичного доступа к
|
||||
сервису. До этого момента страница доступна не публично, а по прямой
|
||||
ссылке.
|
||||
5.4. На сегодняшний день публичный расчёт по адресу на Сайте ещё не
|
||||
открыт: форма адреса на главной странице работает только в браузере
|
||||
пользователя — введённый адрес не передаётся на сервер Оператора и
|
||||
нигде не сохраняется. Пункты 5.1–5.2 применяются с момента открытия
|
||||
публичного расчёта.
|
||||
</p>
|
||||
)}
|
||||
|
||||
<h2>6. Сроки хранения и удаление данных</h2>
|
||||
<p>
|
||||
6.1. Если результат расчёта был оплачен пользователем, ссылка на отчёт
|
||||
и связанные с ним данные хранятся Оператором в течение{" "}
|
||||
{PAID_REPORT_RETENTION_MONTHS} месяцев с даты оплаты, после чего
|
||||
подлежат удалению. На файл отчёта, ранее скачанный пользователем на
|
||||
своё устройство, истечение этого срока не влияет — Оператор не
|
||||
отзывает и не изменяет такой файл и не имеет к нему доступа после его
|
||||
передачи пользователю.
|
||||
</p>
|
||||
<p>
|
||||
6.2. Для иных категорий персональных данных применяются сроки
|
||||
хранения, необходимые для достижения целей обработки, указанных в
|
||||
разделе 3, а также сроки, установленные законодательством РФ (в том
|
||||
числе налоговым законодательством и законодательством о бухгалтерском
|
||||
учёте).
|
||||
</p>
|
||||
<p>
|
||||
6.3. По истечении сроков хранения персональные данные подлежат
|
||||
удалению или обезличиванию.
|
||||
</p>
|
||||
|
||||
<h2>7. Отзыв согласия и удаление данных по обращению</h2>
|
||||
<p>
|
||||
7.1. Пользователь вправе в любой момент отозвать согласие на обработку
|
||||
персональных данных, направив обращение в поддержку Оператора по
|
||||
контактам, указанным в разделе 9 настоящей Политики. С момента
|
||||
получения обращения Оператор прекращает использование номера телефона
|
||||
пользователя для связи по соответствующей заявке.
|
||||
</p>
|
||||
<p>
|
||||
7.2. Обращения об отзыве согласия и об удалении данных рассматриваются
|
||||
Оператором вручную. При удалении данных по обращению пользователя
|
||||
Оператор физически удаляет телефон, адрес объекта и результат расчёта
|
||||
из своих систем, а не ограничивается пометкой записи как неактивной.
|
||||
</p>
|
||||
<p>
|
||||
7.3. Помимо права на обращение, пользователь вправе получать
|
||||
информацию об обработке своих персональных данных, требовать уточнения,
|
||||
блокирования или уничтожения персональных данных, если они являются
|
||||
неполными, устаревшими, неточными, незаконно полученными или не
|
||||
являются необходимыми для заявленной цели обработки — в соответствии
|
||||
со ст. 14 Федерального закона № 152-ФЗ.
|
||||
</p>
|
||||
|
||||
<h2>8. Меры по защите персональных данных</h2>
|
||||
<p>
|
||||
8.1. Оператор применяет правовые, организационные и технические меры
|
||||
для защиты персональных данных от неправомерного или случайного
|
||||
доступа, уничтожения, изменения, блокирования, копирования,
|
||||
распространения и иных неправомерных действий третьих лиц, в
|
||||
соответствии со ст. 19 Федерального закона № 152-ФЗ.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
9. Контакты Оператора по вопросам обработки персональных данных
|
||||
</h2>
|
||||
<p>
|
||||
E-mail:{" "}
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>
|
||||
</p>
|
||||
{telegramHref ? (
|
||||
<p>
|
||||
Telegram:{" "}
|
||||
<a
|
||||
className={styles.link}
|
||||
href={telegramHref}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
{SUPPORT_TELEGRAM_LABEL}
|
||||
</a>
|
||||
</p>
|
||||
) : null}
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
|
|
|
|||
214
tradein-mvp/frontend/src/app/mera-public/refund/page.tsx
Normal file
214
tradein-mvp/frontend/src/app/mera-public/refund/page.tsx
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
import type { Metadata } from "next";
|
||||
import Link from "next/link";
|
||||
|
||||
import {
|
||||
LEGAL_DOCS_REVISION,
|
||||
LEGAL_ENTITY,
|
||||
OFFER_PATH,
|
||||
PUBLIC_OFFER_URL,
|
||||
PUBLIC_REFUND_URL,
|
||||
SERVICE_PRICE_RUB,
|
||||
SUPPORT_EMAIL,
|
||||
} from "../content";
|
||||
import styles from "../landing.module.css";
|
||||
|
||||
/**
|
||||
* Политика возврата денежных средств.
|
||||
*
|
||||
* ЗАЧЕМ ОТДЕЛЬНЫМ ДОКУМЕНТОМ, если раздел 8 оферты говорит то же самое.
|
||||
* Порядок возврата — то, что модерация эквайера проверяет последним и отдельным
|
||||
* пунктом; кроме того, у документа своя аудитория: человек, у которого уже
|
||||
* списались деньги, читает не договор целиком, а страницу «как вернуть».
|
||||
* Приоритет при расхождении отдан оферте — это записано и здесь (п. 1.2), и в
|
||||
* самой оферте (п. 8.0), чтобы дублирование не создало второй источник истины.
|
||||
*
|
||||
* ОТКУДА ТЕКСТ. Редакция владельца от 13.08.2026 (docx), перенесённая
|
||||
* дословно; плейсхолдер `[адрес электронной почты]` заменён на `SUPPORT_EMAIL`,
|
||||
* цена и реквизиты — из `content.ts`.
|
||||
*
|
||||
* ЧТО ЗДЕСЬ ОПИСАНО РАНЬШЕ КОДА. Разделы 2.1 и 4 обещают АВТОМАТИЧЕСКИЙ возврат
|
||||
* при техническом сбое — платёжного контура в репозитории ещё нет, значит на
|
||||
* момент публикации это установленный порядок, а не наблюдаемое поведение
|
||||
* системы. Так и задумано (документ публикуется до подключения эквайринга —
|
||||
* без него заявку не примут), но при включении оплаты автоматический возврат
|
||||
* обязан появиться в коде вместе с кнопкой, а не после неё: обещание уже
|
||||
* опубликовано и является условием договора.
|
||||
*/
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Политика возврата денежных средств — МЕРА",
|
||||
description:
|
||||
"Условия, порядок и сроки возврата денежных средств за расчёт сервиса «МЕРА».",
|
||||
alternates: { canonical: PUBLIC_REFUND_URL },
|
||||
};
|
||||
|
||||
export default function MeraPublicRefundPage() {
|
||||
const entity = LEGAL_ENTITY;
|
||||
|
||||
return (
|
||||
<main id="content" className={styles.main} tabIndex={-1}>
|
||||
<div className={`${styles.container} ${styles.doc}`}>
|
||||
<Link
|
||||
className={`${styles.link} ${styles.docBack}`}
|
||||
href="/mera-public"
|
||||
>
|
||||
← На главную
|
||||
</Link>
|
||||
|
||||
<h1 className={styles.h2}>Политика возврата денежных средств</h1>
|
||||
<p className={styles.docMeta}>
|
||||
сервис «МЕРА» (meraocenka.ru). Редакция от {LEGAL_DOCS_REVISION}
|
||||
</p>
|
||||
|
||||
<h2>1. Общие положения</h2>
|
||||
<p>
|
||||
1.1. Настоящая Политика определяет условия, порядок и сроки возврата
|
||||
денежных средств, уплаченных Заказчиком за услугу сервиса «МЕРА» на
|
||||
сайте meraocenka.ru (далее — «Услуга»), стоимость которой составляет{" "}
|
||||
{SERVICE_PRICE_RUB} (сто пятьдесят) рублей за один расчёт.
|
||||
</p>
|
||||
<p>
|
||||
1.2. Настоящая Политика размещена в свободном доступе в сети Интернет
|
||||
по адресу {PUBLIC_REFUND_URL} и является неотъемлемой частью{" "}
|
||||
<Link className={styles.link} href={OFFER_PATH}>
|
||||
Публичной оферты
|
||||
</Link>
|
||||
, размещённой по адресу {PUBLIC_OFFER_URL}. Оферта и настоящая
|
||||
Политика применяются совместно; в случае противоречий между ними
|
||||
приоритет имеет Оферта.
|
||||
</p>
|
||||
<p>
|
||||
1.3. Услуга считается оказанной с момента отображения результата
|
||||
расчёта Заказчику на сайте либо направления его на указанную
|
||||
Заказчиком электронную почту — в зависимости от того, что наступит
|
||||
раньше. После этого момента оплата по общему правилу возврату не
|
||||
подлежит, за исключением случаев, перечисленных в разделе 3 настоящей
|
||||
Политики.
|
||||
</p>
|
||||
|
||||
<h2>2. Кто принимает решение о возврате</h2>
|
||||
<p>
|
||||
2.1. Решения о возврате денежных средств по основаниям, не требующим
|
||||
обращения Заказчика (технический сбой — раздел 4), принимаются
|
||||
автоматически системой сайта без участия сотрудников Исполнителя.
|
||||
</p>
|
||||
<p>
|
||||
2.2. Решения о возврате денежных средств по обращениям Заказчика (п.
|
||||
3.3–3.4) рассматриваются сотрудником службы поддержки Исполнителя,
|
||||
ответственным за обработку почтового ящика{" "}
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>
|
||||
. Итоговое решение по спорным или нестандартным случаям принимает
|
||||
директор {entity ? entity.shortName : "Исполнителя"} либо
|
||||
уполномоченное им лицо.
|
||||
</p>
|
||||
|
||||
<h2>3. Условия возврата</h2>
|
||||
<p>3.1. Возврат не производится, если:</p>
|
||||
<ul>
|
||||
<li>
|
||||
Услуга оказана надлежащим образом — результат расчёта был
|
||||
сформирован и предоставлен Заказчику;
|
||||
</li>
|
||||
<li>
|
||||
основанием для обращения является несогласие Заказчика с полученным
|
||||
числовым значением расчёта (расчёт носит индикативный характер, что
|
||||
не является основанием для возврата).
|
||||
</li>
|
||||
</ul>
|
||||
<p>3.2. Возврат производится в полном объёме в следующих случаях:</p>
|
||||
<ul>
|
||||
<li>
|
||||
технический сбой на стороне сервиса — расчёт не был предоставлен
|
||||
Заказчику после оплаты (подробно — раздел 4);
|
||||
</li>
|
||||
<li>
|
||||
Заказчик отказался от Услуги до момента её фактического оказания (то
|
||||
есть до появления результата на экране или в почте);
|
||||
</li>
|
||||
<li>
|
||||
денежные средства были списаны повторно из-за технической ошибки
|
||||
платёжной формы;
|
||||
</li>
|
||||
<li>
|
||||
оплата была произведена без согласия владельца карты — при
|
||||
подтверждении этого факта банком-эмитентом.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
3.3. Для случаев, указанных в п. 3.2 (кроме технического сбоя, который
|
||||
обрабатывается автоматически), Заказчик направляет обращение на{" "}
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>{" "}
|
||||
с указанием даты и примерного времени оплаты, суммы и последних 4 цифр
|
||||
карты.
|
||||
</p>
|
||||
<p>
|
||||
3.4. Срок рассмотрения обращения и возврата — не позднее 10 (десяти)
|
||||
рабочих дней с момента получения обращения Исполнителем.
|
||||
</p>
|
||||
|
||||
<h2>4. Отдельный случай: оплата прошла, а расчёт не сформирован</h2>
|
||||
<p>
|
||||
4.1. Если после успешной оплаты сервис по техническим причинам не смог
|
||||
сформировать результат расчёта (сбой, ошибка обработки данных,
|
||||
недоступность сервиса) в течение 15 (пятнадцати) минут с момента
|
||||
оплаты, Услуга считается неоказанной.
|
||||
</p>
|
||||
<p>
|
||||
4.2. Возврат в этом случае производится автоматически, в полном
|
||||
объёме, без необходимости обращения Заказчика с заявлением или
|
||||
претензией.
|
||||
</p>
|
||||
<p>
|
||||
4.3. Срок такого автоматического возврата — не позднее 3 (трёх)
|
||||
рабочих дней с момента фиксации сбоя системой.
|
||||
</p>
|
||||
<p>
|
||||
4.4. Если по истечении указанного срока возврат не поступил, Заказчик
|
||||
вправе обратиться на{" "}
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>{" "}
|
||||
— такое обращение рассматривается вне очереди.
|
||||
</p>
|
||||
|
||||
<h2>5. Способ возврата</h2>
|
||||
<p>
|
||||
5.1. Возврат денежных средств во всех случаях производится тем же
|
||||
способом, которым была произведена оплата (на ту же банковскую карту),
|
||||
если иной способ не согласован с Заказчиком дополнительно.
|
||||
</p>
|
||||
<p>
|
||||
5.2. Срок зачисления денежных средств на счёт Заказчика после инициации
|
||||
возврата зависит от банка-эмитента карты Заказчика и обычно составляет
|
||||
от 1 до 30 календарных дней — это правило платёжных систем, а не
|
||||
Исполнителя.
|
||||
</p>
|
||||
|
||||
<h2>6. Права потребителя</h2>
|
||||
<p>
|
||||
6.1. Настоящая Политика не ограничивает права Заказчика — физического
|
||||
лица, установленные Законом РФ от 07.02.1992 № 2300-1 «О защите прав
|
||||
потребителей». В части, где условия настоящей Политики противоречили бы
|
||||
указанному Закону, применяются положения Закона.
|
||||
</p>
|
||||
|
||||
<h2>7. Контакты по вопросам возврата</h2>
|
||||
<p>
|
||||
E-mail:{" "}
|
||||
<a className={styles.link} href={`mailto:${SUPPORT_EMAIL}`}>
|
||||
{SUPPORT_EMAIL}
|
||||
</a>
|
||||
</p>
|
||||
{entity ? (
|
||||
<p>
|
||||
{entity.shortName}, ИНН {entity.inn}, ОГРН {entity.ogrn}
|
||||
</p>
|
||||
) : null}
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue