Расчет сроков для подписки с автоматическим продлением (AR)

После того как подписка создана, для нее выполняется расчет дат, в которые с подпиской будут происходить определенные события. 

При расчете дат используется срок действия продукта.

Срок действия продукта – это период, в течение которого покупатель может использовать продукт после покупки.

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

Срок действия может быть задан в днях, месяцах, годах, например: 30 дней, 3 месяца, 1 год.

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

Минимальный срок действия - 6 дней. Это ограничение зависит от настроек создания заказа на продление и отправки напоминания покупателю. При меньшем сроке действия - заказ на продление не успеет создаться. В случае, если срок действия равен 6 дням, то заказ на продление будет создан на следующий день после покупки родительского продукта и создания подписки.

Даты в жизни подписки

Подписка создается по факту оплаты первого заказа (родительского). От даты создания подписки начинается отcчет первого периода действия подписки.

Эта дата определяет, когда начался оплаченный период действия подписки.
Если вы продаете лицензии, то это дата условно подразумевает начало действия лицензии. "Условно", так как реальная активация лицензии по умолчанию не отслеживается.

Рассчитывается в зависимости от заказа:

  • Для первого заказа (родительского) – это дата создания подписки (дата оплаты заказа).
    Фактическая дата, когда покупатель начал использовать продукт, не учитывается.
  • Для заказа на продление (дочернего) - дата зависит от того, когда произошла оплата заказа на продление:
    • Если заказ на продление был оплачен до окончания текущего периода, то дата начала следующего периода равна следующему дню после даты окончания текущего периода.
    • Если заказ на продление был оплачен после окончания предыдущего периода действия, то дата начала следующего периода равна дате оплаты заказа на продление. Дни, когда продление не было оплачено – не засчитываются и не вычитаются из оплаченного периода действия.

Эта дата определяет, когда завершается оплаченный период действия подписки.
Если вы продаете лицензии, то фактическая дата отключения лицензии (в установленном продукте у пользователя) определяется вами, например, может зависеть от даты активации лицензии или другой специфики лицензирования. Таким образом фактическая дата может отличаться от расчетных дат работы подписки.

Рассчитывается как "дата начала периода действия подписки" + "срок действия продукта".

Из полученной даты также вычитается 1 день в ситуациях:

  • Если рассчитывается срок окончания действия продукта в родительском заказе
  • Если рассчитывается срок окончания действия в дочернем заказе, и предыдущий дочерний заказ был оплачен после завершения срока действия продукта

Вы можете изменить эту дату в определенной подписке покупателя, если заказ на продление еще не создан, и подписка активна (не отменена). Это можно сделать с помощью Subscriptions API. При этом будут пересчитаны все даты, которые рассчитываются на основании даты окончания периода действия. 

Определение даты начала периода действия подписки

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

Значения по умолчанию:

Для продуктов со сроком действия ≥ 6 месяцев За 30 дней до даты окончания периода действия подписки.
Для продуктов со сроком действия < 6 месяцев За 9 дней до даты окончания периода действия подписки.

Это дата, когда должен быть совершен автоплатеж за подписку (продление продукта).
Если платеж был неуспешен, то в сумме будет выполнено 3 попытки оплаты через определенные интервалы времени.

Значения по умолчанию:

Для продуктов со сроком действия ≥ 6 месяцев За 20/10/0 дней до даты окончания периода действия подписки.
Для продуктов со сроком действия < 6 месяцев За 2/1/0 дней до даты окончания периода действия подписки.

Это дата, когда покупателю отправляется письмо с предложением изменить привязанную к подписке карту для автопродления.

Уведомление отправляется только в том случае, если срок действия карты подходит к концу.

Предусмотрены:

  • отдельные уведомления о необходимости смены карты,
  • отправка информации о смене карты в письме с напоминанием о продлении (*).

Значения по умолчанию:

Для продуктов со сроком действия ≥ 6 месяцев За 45/30*/25 дней до даты окончания периода действия подписки.
Для продуктов со сроком действия < 6 месяцев За 14/9* дней до даты окончания периода действия подписки.

Срок жизни неоплаченного заказа на продление составляет 90 дней. После этого заказ будет автоматически удален.

Событие Дата действия
Для продукта со сроком действия
30 дней
Для продукта со сроком действия
1 год
Оплата родительского заказа 21.12.2020 21.12.2020
Начало периода действия подписки 21.12.2020 21.12.2020
Окончание периода действия подписки 19.01.2021 20.12.2021
Отправка письма о необходимости смены карты 05.01.2021 05.11.2021
25.11.2021
Создание дочернего заказа,
отправка напоминания о продлении
или письма о необходимости смены карты
10.01.2021 20.11.2021
Попытки оплаты дочернего заказа 17.01.2021
18.01.2021
19.01.2021
30.11.2021
10.12.2021
20.12.2021

Вы можете сдвинуть даты предстоящих событий для определенной подписки покупателя.

Для этого нужно вам нужно изменить дату окончания периода действия подписки с помощью Subscriptions API. После этого остальные даты для подписки будут автоматически пересчитаны системой.

Сдвинуть дату можно только в случае, если подписка имеет статус Active.

Если вы хотите увеличить период действия подписки и перенести дату окончания вперед, то дополнительных требований к дате нет.

Если вы хотите уменьшить период действия подписки и перенести дату окончания назад, то новая дата окончания должна быть такой, чтобы расчетная дата напоминания о продлении попадала, как минимум, на следующий день после выполнения запроса. В ином случае заказ на продление не получится создать.
При сроках по умолчанию, новая дата окончания должна отвечать условию:

  • Если срок действия продукта < 6 месяцев, то дата окончания периода должна быть больше даты отправки запроса на 5 дней (или более).
    Например, если запрос отправлен 1 января, то дата окончания периода должна быть равна 6 января или более поздней дате.
  • Если срок действия продукта ≥ 6 месяцев, то дата окончания периода должна быть больше даты отправки запроса на 26 дней (или более).
    Например, если запрос отправлен 1 января, то дата окончания периода должна быть равна 27 января или более поздней дате.

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

Чтобы рассчитать максимально доступное число дней сдвига назад:

  • Если срок действия продукта < 6 месяцев, то:
    Максимальное число дней сдвига = [Дата окончания периода действия подписки] - [Дата отправки запроса] - 5
  • Если срок действия продукта ≥ 6 месяцев, то:
    Максимальное число дней сдвига = [Дата окончания периода действия подписки] - [Дата отправки запроса] - 27
Если вы хотите сдвинуть дату, чтобы протестировать работу подписок, то вы можете обратиться в службу поддержки, чтобы моментально инициировать создание и оплату заказа на продление.