Задолженность по договору, не оплаченная вовремя, даёт право кредитору требовать проценты на сумму просрочки.
В Российской Федерации порядок и размер таких процентов регулируются статьёй 395 Гражданского Кодекса РФ.
Ниже — подробное руководство, как рассчитать долг самостоятельно, а также готовая Python-функция, которую можно встроить в ваш сервис или использовать локально.
Что такое ст. 395 ГК РФ?
- устанавливает ответственность должника за неисполнение денежного обязательства;
- освобождает кредитора от необходимости доказывать факт и размер убытков;
- проценты исчисляются по ключевой ставке ЦБ РФ, действующей в период просрочки.
С г. правила расчёта изменились: вместо «учётной ставки» используется именно ключевая ставка Банка России.
При этом ставка может меняться неоднократно в течение периода просрочки, поэтому расчёт ведёться по датам очередного изменения ЦБ.
Как рассчитать проценты вручную?
Формула
Сумма процентов = Сумма долга × Ключевая ставка (для периода) ÷ 365 (366) × Кол-во дней просрочки
Алгоритм
- Определите сумму неоплаченного долга (основной долг).
- Разбейте период просрочки на отрезки, в каждом из которых ключевая ставка была неизменной.
- Для каждого отрезка:
- найдите ключевую ставку ЦБ на дату отрезка;
- рассчитайте проценты по формуле выше;
- суммируйте результат.
| Период | Кол-во дней | Ключ. ставка, % годовых | Доля процентов |
|---|---|---|---|
| – | 84 | 16 | Долг × 0,16 × 84 / 365 |
| – | 470 | 17 | Долг × 0,17 × 470 / 365 |
Готовый калькулятор на Python
Чтобы не считать вручную, воспользуйтесь простым скриптом, который:
- подгружает историю ключевых ставок с сайта ЦБ РФ;
- рассчитывает проценты по ст. 395 ГК РФ;
- выводит итоговую сумму.
Код
import datetime
import requests
from decimal import Decimal
URL_CBR = "https://www.cbr.ru/hd_base/KeyRate/KeyRate_2025/?UniDbQuery.Posted=True&UniDbQuery.From=&UniDbQuery.To="
def get_key_rate_history:
"""Возвращает список (date, rate) с сайта ЦБ РФ."""
# В продакшене лучше парсить XML/JSON или скачивать CSV.
# Здесь — упрощённый пример.
return [
(datetime.date(2025, 1, 1), Decimal("16.00")),
(datetime.date(2025, 3, 26), Decimal("17.00")),
(datetime.date(2026, 1, 1), Decimal("18.00")),
]
def calculate_interest_395(amount: Decimal, start: datetime.date, end: datetime.date):
"""Рассчитывает проценты по ст. 395 ГК РФ."""
rates = get_key_rate_history
total = Decimal(0)
amount = Decimal(amount)
# Добавляем фиктивную запись на дату окончания, чтобы цикл корректно завершился
rates.append((end + datetime.timedelta(days=1), Decimal(0)))
for (start_rate, rate), (next_date, _) in zip(rates, rates[1:]):
actual_end = min(next_date ─ datetime.timedelta(days=1), end)
if actual_end < start:
continue
days = (actual_end ─ start).days + 1
total += amount * rate / Decimal(100) * days / Decimal(365)
start = next_date
return total
if __name__ == '__main__':
principal = Decimal("100000")
start_date = datetime.date(2025, 1, 15)
end_date = datetime.date(2026, 7, 4)
interest = calculate_interest_395(principal, start_date, end_date)
print(f"Проценты по ст. 395 ГК РФ: {interest:.2f} руб.")
Как использовать: сохраните код в файл calc_395.py, установите зависимости (requests) и запустите.
При необходимости замените get_key_rate_history на загрузку актуальных данных с сайта ЦБ.
Частые вопросы
Нужно ли в претензии указывать точную сумму процентов?
Да, лучше приводить расчёт на дату составления претензии. Это избавит от споров и ускорит взыскание.
Сослаться только на ст. 395 ГК РФ без суммы суд может не примет.
Можно ли заявить проценты, если договором предусмотрен штраф?
Как правило, нет: ст. 395 и неустойка не суммируются, если договор не содержит прямой оговорки (п. 4 ст. 395).
Как подать расчёт в суд?
Оформите таблицу периодов и сумм процентов, приложите выписку ключевых ставок ЦБ и чек-калькуляцию.
Это можно сделать в виде отдельного документа или в тексте искового заявления.
Калькулятор по ст. 395 ГК РФ — это простой, но эффективный способ быстро получить точный размер неустойки.
Используйте предложенный Python-скрипт, либо внедрите его логику в ваш мобильный или веб-проект.
Главное — обновлять таблицу ключевых ставок и корректно разбивать периоды просрочки.