# Этап 1g. Продления Статус: не начат. ## 1. Цель Ключи продлеваются сами — с баланса, затем с демо-карты; льготный период, истечение и напоминания работают. ## 2. Входит 1. Задачи `renewals`, `expiry`, `reminders`, `reconcile` ([04-billing.md](../04-billing.md), разделы 6–7; [02-architecture.md](../02-architecture.md), раздел 7). 2. Автопродление: галочка на ключе, «Продлить сейчас»; списание с баланса, затем с демо-карты, повторы. Неуспешное списание с демо-карты включается в админке ([D-027](../decisions/D-027-demo-payments.md)). 3. Продления без оплаты: коллекция `key-extensions`, «Продлить вручную» в админке ([04-billing.md](../04-billing.md), раздел 6.4). 4. Кабинет: «Следующее списание», «Продлится автоматически через N дней» или «Осталось N дней», бейдж «Истекает». 5. Шаблоны на 5 языках: `renewal_reminder`, `expiry_reminder`, `renewal_succeeded`, `renewal_failed`, `grace_started`, `key_expired`. ## 3. Перед стартом Этап 1f готов. ## 4. Готово, когда Автотесты проходят сценарии: 1. Продление с баланса за 24 часа до окончания; денег нет → заказ ждёт → пополнение само оплачивает продление. 2. Продление с демо-карты; неуспешное списание → повторы → льготный период. 3. Переходы в льготный период и «истёк» с письмами в журнал. 4. Параллельные запуски задач не продлевают ключ дважды. 5. `reconcile` не находит расхождений.