Monthly Prolongation. Особенности формирования списаний

В этой статье рассматривается формирование списаний для подписок только по модели Предоплата. Особенности формирования и изменения списаний для подписок по модели Постоплата см. в Особенности списаний для модели Постоплата. См. также Особенности списаний с учетом курсов валют.

Тип биллинга Monthly Prolongation применяется для подписок с фиксированными ежемесячными платежами.

В этой статье:

Общие правила при типе биллинга Monthly Prolongation

  • Все списания для заказов по подписке формируются в статусе Новое. После оплаты заказа списания переходят в статус Заблокировано.
  • При типе биллинга Monthly Prolongation формируются только списания типа Абонентская плата для ресурсов.
  • Списания всегда генерируется только на текущий (новый) финансовый период.
  • При формировании списаний принимается во внимание дата истечения подписки: если в следующий финансовый период подписка истекает, то списание формируется только до даты истечения подписки.
  • Списания по подписке формируются одинаково вне зависимости от периода подписки.

Списания типа Плата за установку, Плата за продление при типе биллинга Monthly Prolongation

Списания типа Плата за установкуПлата за продление и Плата за перенос не формируются, так как такие виды платежей не должны устанавливаться.

Заказ подписки

Рассмотрим пример заказа подписки с типом биллинга Monthly Prolongation. Примем, что финансовый день установлен 1-го числа каждого месяца. Подписка заказана 20 августа.

После заказа подписки происходит следующее:

  1. Платформа создает следующие сущности:
    1. Заказ на покупку в статусе Ожидает оплаты.
    2. Привязанный к заказу платеж в статусе Ожидает оплаты на сумму, достаточную для работы подписки со дня заказа до следующего финансового дня.
    3. Одно списание для заказываемой подписки со дня ее заказа до ближайшего финансового дня в статусе Новое.

      Списание до ближайшего финансового дня рассчитывается по формуле:

      (X/Y) × quantity × price

      где:

      • X — фактическое количество проработанных дней в месяце.
      • Y — количество дней в месяце.
      • quantity — количество заказываемых единиц ресурса.
      • price — стоимость одной единицы ресурса в месяц.
  2. Клиент оплачивает платеж в день его создания.
  3. Платформа обрабатывает заказ и переводит соответствующее списание из статуса Новое в статус Заблокировано.
  4. Платформа устанавливает параметр Оплачена до равным следующему финансовому дню.



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

Автоматическая пролонгация подписки

Для продления подписки на следующий финансовый период используется пролонгация (см. Пролонгация подписки):

  1.  Заказ на пролонгацию создается автоматически до наступления даты Оплачена до (paid_to) за количество дней, указанное в параметре Точка автоматического продления (в днях) подписки.
  2. Вместе с заказом формируются платеж и одно списание за следующий финансовый период с параметрами:
    • Статус: Новое.
    • operate_from = начало следующего финансового периода.
    • operate_to = конец следующего финансового периода или дата истечения подписки, если дата истечения приходится на следующий финансовый период.

    Если на момент формирования списания у тарифного плана установлена опция Фиксированная цена, то для создания списания на следующий месяц стоимость ресурсов берется из подписки.

    Если на момент формирования списания у тарифного плана не установлена опция Фиксированная цена, то для создания списания на следующий месяц, стоимость ресурсов берется из тарифного плана и обновляются стоимости ресурсов подписки.

  3. При завершении платежа списание за следующий финансовый период переходит в статус Заблокировано. Для подписки устанавливается параметр Оплачена до равным следующему финансовому дню.
  4. В финансовый день платформа переводит списание за предыдущий финансовый период из статуса Заблокировано в статус Закрыто.


Автоматическая пролонгация истекающей подписки

При автоматической пролонгации подписки, дата истечения которой приходится на следующий финансовый период, формируется последний заказ на пролонгацию:

  1. Вместе с заказом формируются платеж и одно списание с параметрами:
    • Статус: Новое.
    • operate_from = начало следующего финансового периода.
    • operate_to = дата истечения подписки.
  2. При завершении платежа параметр Оплачена до устанавливается равным дате истечения подписки.

При автоматической пролонгации подписки, дата истечения которой приходится на финансовый период, идущий после следующего финансового периода:

  • Если от текущей даты Оплачена до до даты истечения подписки остается больше 1 месяца и 8 дней, формируются очередные заказ, платеж и одно списание по общей логике.
  • Если от текущей даты Оплачена до до даты истечения подписки остается 1 месяц 8 дней или меньше, формируется последний заказ на пролонгацию:

    1. Вместе с заказом формируются платеж и два списания:
      1. Списание 1 за следующий финансовый период с параметрами:
        • Статус: Новое.
        • operate_from = начало следующего финансового периода.
        • operate_to = конец следующего финансового периода.
      2.  Списание 2 за период, идущий после следующего финансового периода и включающий дату истечения подписки:
        • Статус: Новое.
        • operate_from = начало финансового периода, включающего дату истечения подписки.
        • operate_to = дата истечения подписки - 1.
        • close_date = дата истечения подписки.
    2. Созданные списания отображаются в описании заказа и платежа в виде одной строки за общий оплачиваемый период.

      Объединение двух списаний в последнем заказе на пролонгацию для подписок с датой истечения, близкой к финансовому дню, позволяет избежать их нежелательной остановки. Без такого объединения последний заказ на пролонгацию создавался бы очень близко к дате истечения подписки. А так как подписку можно продлить только после ее пролонгации, клиенту могло бы не хватить оставшихся дней, чтобы оплатить продление.

    3. Дата истечения заказа устанавливается равной дате истечения подписки.
    4. При завершении платежа списания переходят в статус Заблокировано. Параметр Оплачена до устанавливается равным дате истечения подписки.

Автоматическая остановка подписки после создания заказа на пролонгацию

Подписка автоматически останавливается при наступлении даты, заданной в параметре Оплачена до (paid_to), если заказ на пролонгацию не оплачен вручную и автоматически и не задан грейс-период:

  1. Заказ и связанный платеж остаются в статусе Ожидает оплаты.
  2. Списание остается в статусе Новое.
  3. Сумма списания не пересчитывается, клиенту необходимо оплатить созданный ранее платеж за весь размер списания.
  4. После завершения платежа, связанного с заказом на пролонгацию:
    1. Подписка переходит в статус Активная.
    2. Cписание пересчитывается пропорционально оставшемуся периоду.
    3. Списание переходит в статус Заблокировано.
    4. Часть денег возвращается на баланс клиента пропорционально периоду, когда подписка была остановлена.
    5. Параметр Оплачена до устанавливается как следующий финансовый день.



  5. Если подписка не была оплачена до даты, заданной в параметре Оплачена до, то в этот день списание удаляется.

Грейс-период для пролонгации

Если для подписки задан грейс-период (см. Создание правила предоставления), то при наступлении даты Оплачена до неоплаченная подписка продолжает работать, но переходит в статус Просрочена оплата.

Если клиент оплатил заказ на пролонгацию в течение грейс-периода:

  1. Подписка возвращается в статус Активная.
  2. Новая дата Оплачена до устанавливается в соответствии с оплаченным периодом.
  3. Списание за наступивший финансовый период не пересчитывается и переходит из статуса Новое в статус Заблокировано.

Если по каким-либо причинам подписка была остановлена в течение грейс-периода:

  1. Подписка переходит в статус Остановлена.
  2. Списание за текущий финансовый период разделяется:
    1. Часть списания до даты остановки подписки переходит из статуса Новое в статус Заблокировано, но не изменяет баланс клиента.
    2. Часть списания после даты остановки подписки остается в статусе Новое.

Если клиент не оплатил заказ на пролонгацию в течение грейс-периода:

  1. Подписка переходит в статус Остановлена.
  2. Списание за наступивший финансовый период разделяется:
    1. Часть списания до даты остановки подписки переходит из статуса Новое в статус Заблокировано, но не изменяет баланс клиента.
    2. Часть списания после даты остановки подписки остается в статусе Новое.
  3. Дата Оплачена до не изменяется.

При отмене заказа на пролонгацию (ручная отмена, отмена объединенного платежа, наступление даты окончания заказа):

  1. Списание в статусе Заблокировано до даты остановки подписки удаляется.
  2. Списание в статусе Новое после даты остановки подписки удаляется.
  3. Дата Оплачена до не изменяется.
  4. При создании нового заказа на пролонгацию списания генерируются с даты создания заказа. Использованная часть грейс-периода остается для клиента бесплатной.

Если клиент оплатил заказ на пролонгацию (без отмены) после истечения грейс-периода:

  1. Подписка возвращается в статус Активная.
  2. Новая дата Оплачена до устанавливается в соответствии с оплаченным периодом.
  3. Списание за период после даты остановки подписки пересчитывается с учетом даты оплаты и переходит в статус Заблокировано
  4. На балансе клиента блокируется сумма обоих списаний в статусе Заблокировано: за грейс-период до даты остановки подписки и за оставшуюся часть финансового периода.

Ручная пролонгация подписки

При пролонгации вручную есть возможность изменить количество ресурсов, кроме подписок в статусе Просрочена оплата (см. Пролонгация подписки).

При пролонгации вручную:

  1. Создается заказ на пролонгацию и платеж в статусе Ожидает оплаты.
  2. Период, для которого создаются списания задается следующим образом:
    • Если заказ создан до наступления даты Оплачена до (paid_to), то задается период с даты начала следующего финансового периода до даты его конца. Создается одно списание в статусе Новое.
    • Если заказ создан в дату Оплачена до или позже, но количество дней до следующего финансового дня больше, чем значение в параметре Точка автоматического продления (в днях), то задается период с текущей даты до даты конца текущего финансового периода. Создается одно списание в статусе Новое.
    • Если заказ создан в дату Оплачена до или позже, но количество дней до следующего финансового дня меньше или равно значению в параметре Точка автоматического продления (в днях), то задается период с текущей даты до даты конца следующего финансового периода. Создается несколько списаний в статусе Новое.
  3. Если количество ресурсов в заказе было изменено:
    1. Сумма списаний рассчитывается с учетом увеличения или уменьшения количества ресурсов.

    2. Если при этом заказ создан до наступления даты Оплачена до, то предоставление заказа откладывается (параметры заказа: Отложенный = ДаДата предоставления = следующий финансовый день). Для заказа в статусе Ожидает предоставления списания остаются в статусе Новое.

  4. Для заказа с параметрами Отложенный = НетДата предоставления = дата создания заказа размер списаний пересчитывается, если заказ оплачен не в дату создания.

  5. После предоставления заказа на пролонгацию:

    1. Созданные списания переходят в статус Заблокировано.
    2. Параметр Оплачена до устанавливается с учетом периода, покрываемого созданными списаниями.
    3. Если подписка была остановлена, она переходит в статус Активная.

Ручная пролонгация истекающей подписки

При ручной пролонгации подписки, дата истечения которой наступает раньше, чем конец периода, оплачиваемого по общей логике, формируется последний заказ на пролонгацию:

  1. Списания формируются на период до даты истечения подписки.
  2. При завершении платежа параметр Оплачена до устанавливается равным дате истечения подписки.

При ручной пролонгации подписки, дата истечения которой приходится на финансовый период, идущий после следующего финансового периода:

  • Если от текущей даты Оплачена до до даты истечения подписки остается больше 1 месяца и 8 дней, формируются очередные заказ, платеж списания по общей логике.
  • Если от текущей даты Оплачена до до даты истечения подписки остается 1 месяц 8 дней или меньше, формируется последний заказ на пролонгацию:

    1. Вместе с заказом формируется дополнительное списание за период, идущий после следующего финансового периода и включающий дату истечения подписки:
      • Статус: Новое.
      • operate_from = начало финансового периода, включающего дату истечения подписки.
      • operate_to = дата истечения подписки - 1.
      • close_date = дата истечения подписки.
    2. Созданные списания отображаются в описании заказа и платежа в виде одной строки за общий оплачиваемый период.

      Объединение списаний в последнем заказе на пролонгацию для подписок с датой истечения, близкой к финансовому дню, позволяет избежать их нежелательной остановки. Без такого объединения последний заказ на пролонгацию создавался бы очень близко к дате истечения подписки. А так как подписку можно продлить только после ее пролонгации, клиенту могло бы не хватить оставшихся дней, чтобы оплатить продление.

    3. Дата истечения заказа устанавливается равной дате истечения подписки.
    4. При завершении платежа списания переходят в статус Заблокировано. Параметр Оплачена до устанавливается равным дате истечения подписки.

Продление подписки со срочным периодом

Для продления подписок используется операция отложенного продления с возможностью увеличить или уменьшить количество ресурсов (см. Отложенное продление подписки).

К заказу на продление формируются списания типа Абонентская плата за продление ресурсов. Формирование и изменение атрибутов списаний этого типа похоже на формирование и изменение списаний типа Абонентская плата при покупке ресурсов.

Если продлевается подписка со статусом Остановлена или Просрочена оплата, то такая подписка автоматически активируется после оплаты заказа и погашения задолженности.

Автоматическое продление подписки происходит следующим образом:

  1. За определенное количество дней до даты истечения подписки, заказанной, например, на 1 год, создается заказ на продление подписки.
  2. Создается одно cписание в статусе Новое на период до ближайшего финансового дня.



  3. Если на балансе клиента достаточно средств, то в дату истечения подписка автоматически продлевается на следующий год:
    1. Списание переходит в статус Заблокировано.
    2. Дата истечения подписки устанавливается как текущая дата истечения подписки + 1 год.
    3. Параметр Оплачена до устанавливается равным следующему финансовому дню.



  4. Если на балансе клиента недостаточно средств, то подписка останавливается. Для активации подписки клиенту необходимо отплатить заказ на продление.

  5. Если клиент оплачивает продление подписки после ее истечения:

    1. Период и новая дата истечения продленной подписки рассчитываются в зависимости от настройки Истекшая подписка продлевается в правиле предоставления (см. Создание правила предоставления).
    2. У созданного списания на период до ближайшего финансового дня дата начала периода изменяется на дату оплаты заказа, и пропорционально периоду изменяется сумма.

Продление подписки в дату, близкую к финансовому дню

Если период между датой истечения подписки (или датой создания заказа на продление — при продлении подписки вручную после ее истечения) и следующим финансовым днем составляет 10 дней или меньше:

  1. К заказу на продление создается дополнительное списание:
    • Статус: Новое.
    • operate_from = начало следующего финансового периода.
    • operate_to = конец следующего финансового периода.
    • close_date = финансовый день, который наступает после окончания следующего финансового периода.
  2. Созданные списания отображаются в описании заказа и платежа в виде одной строки за общий оплачиваемый период.
  3. Дата истечения заказа устанавливается с учетом конца оплачиваемого периода, но ограничивается настройкой Отмена неоплаченного заказа через (см. Создание правила обслуживания).
  4. При завершении платежа списания переходят в статус Заблокировано. Параметр Оплачена до устанавливается как финансовый день, который наступает после окончания следующего финансового периода.

Дополнительное списание за весь следующий финансовый период в заказе на продление позволяет избежать нежелательной остановки подписки. Без него первый заказ на пролонгацию создавался бы очень близко к дате следующего финансового дня, и клиенту могло бы не хватить оставшихся дней, чтобы оплатить пролонгацию.

Остановка подписки

Если подписка была остановлена в течение оплаченного финансового периода, платформа производит следующие действия по остановке:

  1. Переводит подписку в статус Остановлена.
  2. Разбивает списание за текущий финансовый период в статусе Заблокировано на 2 списания:
    1. Списание за период от предыдущего финансового дня до дня остановки подписки в статусе Закрыто. Если в правиле предоставления установлена опция День остановки и удаления учитывается в списании, день остановки включается в списание в статусе Закрыто
    2. Списание за оставшуюся часть финансового периода в статусе Заблокировано.
  3. Списание за следующий финансовый период остается в статусе Заблокировано (при наличии).
  4. На баланс клиента ничего не возвращается.



  5. Если подписка не была активирована до следующего финансового дня, то в финансовый день: 
    1. Списание за прошедший финансовый период удаляется.
    2. Списание за наступивший финансовый период остается в статусе Заблокировано
    3. На баланс клиента возвращается сумма, равная удаленному списанию.


  6. Если подписка после этого не была активирована в течение следующего финансового периода, то заблокированное списание за этот период в следующий финансовый день также удаляется.

Активация подписки

При активации остановленной подписки в течение оплаченного финансового периода:

  1. Подписка активируется без проверки баланса клиента.
  2. Часть списания в статусе Заблокировано удаляется пропорционально периоду, в котором подписка была остановлена, и деньги за эту часть списания возвращаются на баланс клиента.
  3. Остальные списания остаются в статусе Заблокировано.

Увеличение количества ресурсов

Если клиент увеличивает количество ресурсов для подписки:

  1. Платформа создает следующие сущности:
    1. Заказ на изменение ресурсов в статусе Ожидает оплаты.
    2. Привязанный к заказу платеж в статусе Ожидает оплаты на сумму, достаточную для работы докупаемых ресурсов подписки со дня заказа до даты Оплачена до.
    3. Списания в статусе Новое для заказываемых ресурсов подписки на период со дня заказа до даты Оплачена до.



  2. Клиент оплачивает платеж в день его создания.
  3. Платформа обрабатывает заказ и переводит соответствующие списания из статуса Новое в статус Заблокировано.



  4. Для следующего заказа на продление платформа создает одно списание на актуальное количество ресурсов.


Уменьшение количества ресурсов

Если клиент уменьшает количество ресурсов для подписки:

  1. На баланс клиента возвращаются части списаний до даты Оплачена до пропорционально уменьшенному количеству ресурсов.
  2. Для следующего заказа на продление платформа создает одно списание на актуальное количество ресурсов.

Заказ на переключение

Доступно только немедленное переключение тарифного плана (см. Переключение тарифного плана).

Когда подписка переключается на другой тарифный план после пролонгации:

  1. При создании заказа на переключение списания в статусе Новое создаются до ближайшего финансового дня.



  2. После завершения заказа все созданные списания переходят в статус Заблокировано и обновляется дата Оплачена до с учетом периода, покрываемого созданными списаниями.
  3. На баланс клиента возвращаются части списаний до прежней даты Оплачена до.

Когда подписка переключается с пробного на платный тарифный план:

  1. При создании заказа на переключение создается списание до следующего финансового дня или новой даты истечения подписки (в зависимости от того, что наступает раньше).
  2. После завершения заказа на переключение:
    1. Списание блокируется.
    2. Изменяется дата истечения подписки.
    3. Параметр Оплачена до устанавливается равным следующему финансовому дню или новой дате истечения подписки (в зависимости от того, что наступает раньше).

Удаление подписки

Если подписка была удалена до даты Оплачена до, платформа производит следующие действия по удалению:

  1. Переводит подписку в статус Удалена.
  2. Изменяет существующие списания в статусе Заблокировано:
    1. Создает списание за период от предыдущего финансового дня до дня удаления подписки в статусе Закрыто. Если в правиле предоставления установлена опция День остановки и удаления учитывается в списании, день удаления включается в списание в статусе Закрыто.
    2. Списания за оставшуюся часть периода до даты Оплачена до переводит в статус Удалено и возвращает на баланс клиента сумму удаленных списаний.

При удалении остановленной подписки до ближайшего финансового дня, платформа производит следующие действия по удалению:

  1. Переводит подписку в статус Удалена.
  2. Переводит существующие списания из статуса Заблокировано в статус Удалено и возвращает на баланс сумму удаленных списаний.