# Расчёт неустойки: доля ключевой ставки ЦБ, проценты ст. 395 ГК РФ или процент в день

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Расчёт неустойки: доля ключевой ставки ЦБ, проценты ст. 395 ГК РФ или процент в день

`POST /api/v1/calculators/penalty`

**Авторизация:** dpop или oauth2: `calculators:write`

**Тело запроса** (`application/json`, обязательное): PenaltyInput
- `calc_amount`: number, обязательное — Сумма долга в рублях
- `calc_document`: DebtDocument — Документ-основание суммы долга
  - `date`: string или "", обязательное — Дата документа, YYYY-MM-DD
  - `from`: DebtParty — Продавец, исполнитель или плательщик
    - `inn`: string, обязательное — ИНН
    - `kpp`: string — КПП
    - `name`: string, обязательное — Наименование стороны
  - `kind`: "upd" | "waybill" | "act" | "invoice" | "payment_order" | "other", обязательное — Вид документа: upd — УПД, waybill — товарная накладная, act — акт, invoice — счёт на оплату, payment_order — платёжное поручение, other — иной
  - `number`: string, обязательное — Номер документа
  - `to`: DebtParty и any
    - `inn`: string, обязательное — ИНН
    - `kpp`: string — КПП
    - `name`: string, обязательное — Наименование стороны
- `calc_from`: string, обязательное — Начало периода просрочки, YYYY-MM-DD
- `calc_rate`: string, обязательное — Ставка: «1/300» \| «1/150» \| «1/130» (доля ключевой ставки), «key» (ст. 395 ГК РФ), «0.1» (процент в день)
- `calc_to`: string, обязательное — Конец периода просрочки, YYYY-MM-DD
- `cap`: object или object — Ограничение неустойки по договору
- `charges`: массив object — Увеличение суммы долга: с указанной даты начисление идёт на увеличенный остаток
  - `amount`: number, обязательное — Сумма увеличения долга в рублях
  - `date`: string, обязательное — Первый день просрочки по дополнительному долгу, YYYY-MM-DD
  - `document`: DebtDocument и any
    - `date`: string или "", обязательное — Дата документа, YYYY-MM-DD
    - `from`: DebtParty — Продавец, исполнитель или плательщик
      - `inn`: string, обязательное — ИНН
      - `kpp`: string — КПП
      - `name`: string, обязательное — Наименование стороны
    - `kind`: "upd" | "waybill" | "act" | "invoice" | "payment_order" | "other", обязательное — Вид документа: upd — УПД, waybill — товарная накладная, act — акт, invoice — счёт на оплату, payment_order — платёжное поручение, other — иной
    - `number`: string, обязательное — Номер документа
    - `to`: DebtParty и any
      - `inn`: string, обязательное — ИНН
      - `kpp`: string — КПП
      - `name`: string, обязательное — Наименование стороны
  - `review`: string — Требует решения пользователя: причина. Такое движение хранится, но не учитывается в расчёте
- `court_type`: "arbitration" | "general" — Суд, в который подаётся иск: с ним рассчитывается госпошлина с цены иска (долг и начисления)
- `exclusions`: массив object — Периоды, за которые неустойка не начисляется
  - `from`: string, обязательное — Начало исключаемого периода
  - `reason`: string — Причина: форс-мажор, просрочка кредитора и т.п.
  - `to`: string, обязательное — Конец исключаемого периода (включительно)
- `moratorium`: boolean — Мораторий 01.04.2022–01.10.2022 (постановление Правительства РФ № 497). По умолчанию применяется; передайте false, если должник отказался от моратория
- `parties`: DebtParties — Кредитор и должник
  - `creditor`: DebtSide — Кредитор
    - `inn`: string, обязательное — ИНН
    - `kpp`: string — КПП
    - `name`: string, обязательное — Наименование стороны
    - `own`: boolean, обязательное — Одна из организаций команды
  - `debtor`: DebtSide и any
    - `inn`: string, обязательное — ИНН
    - `kpp`: string — КПП
    - `name`: string, обязательное — Наименование стороны
    - `own`: boolean, обязательное — Одна из организаций команды
- `payments`: массив object — Частичные оплаты: с даты платежа начисление идёт на остаток долга
  - `amount`: number, обязательное — Сумма оплаты в рублях
  - `date`: string, обязательное — Дата оплаты, YYYY-MM-DD
  - `document`: DebtDocument и any
    - `date`: string или "", обязательное — Дата документа, YYYY-MM-DD
    - `from`: DebtParty — Продавец, исполнитель или плательщик
      - `inn`: string, обязательное — ИНН
      - `kpp`: string — КПП
      - `name`: string, обязательное — Наименование стороны
    - `kind`: "upd" | "waybill" | "act" | "invoice" | "payment_order" | "other", обязательное — Вид документа: upd — УПД, waybill — товарная накладная, act — акт, invoice — счёт на оплату, payment_order — платёжное поручение, other — иной
    - `number`: string, обязательное — Номер документа
    - `to`: DebtParty и any
      - `inn`: string, обязательное — ИНН
      - `kpp`: string — КПП
      - `name`: string, обязательное — Наименование стороны
  - `review`: string — Требует решения пользователя: причина. Такое движение хранится, но не учитывается в расчёте
- `until_today`: boolean — Расчёт ведётся по сегодняшний день: при открытии сохранённого расчёта конец периода сдвигается на текущую дату

**Ответы**

- `200` — Рассчитанная неустойка с разбивкой по периодам (`application/json`, PenaltyResult)
  - `calc_accrued`: number, обязательное — Начислено до применения ограничения
  - `calc_capped`: boolean, обязательное — Применено договорное ограничение неустойки
  - `calc_days`: number, обязательное — Дней, за которые начислено (без исключённых периодов)
  - `calc_fee`: number — Госпошлина с цены иска (долг и начисления), если указан court_type
  - `calc_fee_basis`: string — Правовое основание расчёта госпошлины
  - `calc_result`: number, обязательное — Начисленная неустойка/проценты в рублях
  - `calc_total`: number, обязательное — Долг + начисления, в рублях
  - `periods`: массив object, обязательное — Разбивка по периодам действия ставки
    - `amount`: number, обязательное — Начислено за период
    - `base`: number, обязательное — Остаток долга в периоде
    - `days`: number, обязательное — Дней в периоде
    - `excluded`: string — Причина исключения периода (moratorium или пользовательская)
    - `from`: string, обязательное — Начало периода действия ставки
    - `rate`: number, обязательное — Ставка периода, %
    - `to`: string, обязательное — Конец периода действия ставки
- `400` — Некорректные входные данные (`application/json`, CalculatorError)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `422` — Данные ключевой ставки не покрывают период (`application/json`, CalculatorError)
- `503` — Данные ключевой ставки не загружены (`application/json`, CalculatorError)

    </>
  );
}
