CSP monthly. Charges generation

This article covers the Prepay model only. For the Postpay model, see Particular aspects of charges within the Postpay charging model. See also Particular aspects of charges in different currencies.

The CSP monthly billing type is applied to subscriptions with fixed monthly payments. The CSP monthly billing type complies with the billing rules of the Microsoft CSP program.

In this article:

General rules for the CSP monthly billing type

  • All subscription charges for orders are generated in the New status. After the order is paid, the charges receive the Blocked status.
  • Only the Recurring fee charges for the resources are generated for the CSP monthly billing type.
  • Charges are always generated for the current (next) billing period only.
  • Charges are generated considering the subscription expiration date: if a subscription to be expired within the next billing period, charges are generated up to the subscription expiration date only.
  • Charges are generated using the same algorithm regardless of the subscription period.

Setup fee and Renewal fee charges

There are no Setup fee, Renewal fee, and Transfer fee charges because the corresponding fees should not be applied.

Ordering a subscription

Let's use the following example. A subscription with the CSP monthly billing type was ordered on August, 20. The billing day is set as the 1st day of each month.

After the subscription ordering:

  1. The platform creates the following entities:
    1. An order in the Waiting for payment status.
    2. A payment in the Waiting for payment status. The payment is linked to the order. The payment amount is enough for the subscription working till the next billing day.
    3. One charge in the New status for the subscription from the ordering date till the nearest billing day.

      The charge from the ordering date till the nearest billing day is calculated as follows:

      (X/Y) × quantity × price

      where:

      • X — the actual number of days in a month when the subscription is active.
      • Y — the number of days in the month.
      • quantity — the number of the ordered resource units.
      • price — the resource unit price per month.
  2. The customer completes the payment on the day the payment was created.
  3. The platform performs provisioning of the order and moves the charge from the New to Blocked status.
  4. The platform sets the Paid to date equal to the next billing day.

For ordering a trial subscription, the platform sets the Paid to date equal to the subscription expiration date and does not generate any charges.

Automatic prolonging a subscription

Prolongation is used to extend a subscription to the next billing period (see Prolonging a subscription):

  1. A prolong order is created before the specified number of days to the Paid to date. The number of days is specified in the Auto-renew point (days) parameter of the subscription.
  2. For the prolong order, a charge is created for the next billing period. The charge has the following attributes: 
    • The charge status: New.
    • operate_from = the start date of the next billing period.
    • operate_to = the last day of the next billing period.

    • The charge amount depends on the Fixed price option.

      If a plan has the selected Fixed price option, then the next billing period charge is generated using the resources prices from the subscription. Otherwise, the next billing period charge is generated using the updated resources prices from the plan.

  3. After completing the payment linked to the prolong order, the next billing period charge gets the Blocked status. The Paid to date is set equal to the next billing day.

  4. On the billing day, the previous billing period charge gets the Closed status.

Automatic prolonging an expiring subscription

For a subscription with the expiration date in the next billing period, the final prolong order is automatically created as follows:

  1. One charge is created with the following attributes: 
    • The charge status: New.
    • operate_from = the start date of the next billing period.
    • operate_to = the subscription expiration date.

  2. After completing the payment linked to the prolong order, the Paid to date is set to the subscription expiration date.

For a subscription with the expiration date in the billing period after the next billing period, a prolong order is automatically created as follows:

  • If between the current Paid to date and the subscription expiration date there are more than 1 month 8 days, a prolong order is created under the general rules.
  • If between the current Paid to date and the subscription expiration date there are 1 month 8 days or less, the final prolong order is created as follows:
    1. Two charges are created with the following attributes:
      • Charge 1: 
        • The charge status: New.
        • operate_from = the start date of the next billing period.
        • operate_to = the last day of the next billing period.

      • Charge 2: 
        • The charge status: New.
        • operate_from = the start date of a billing period with the subscription expiration date.
        • operate_to = the subscription expiration date - 1.

        • close_date = the subscription expiration date.
    2. The charges are displayed in the order and payment description in one line with the joined period.

      Adding the second charge to a prolong order for a subscription with the expiration date close to the billing day helps prevent the unwilling stopping of the subscription. Without the second charge, the final prolong order would be created too close to the subscription expiration date. Since a subscription can be renewed only after its prolongation, a customer might not have enough time to pay for the renewal.

    3. The order expiration date is set to the subscription expiration date.

    4. After completing the payment linked to the prolong order, the charges get the Blocked status. The Paid to date is set to the subscription expiration date.

Automatic stopping a subscription after creating a prolong order

On the Paid to date, if the prolong order was not completed manually or automatically, the subscription stops:

  1. The prolong order and linked payment remain in the Waiting for payment status.
  2. The next billing period charge remains in the New status.
  3. The charge amount remains the same. The customer should complete the existing payment in full.
  4. After completing the payment linked to the prolong order:
    1. The subscription is activated.
    2. The charge is recalculated taking into account the rest part of the period.
    3. The charge gets the Blocked status.
    4. The customer gets a refund to the account balance for the period when the subscription was stopped.
    5. The Paid to date is set equal to the next billing day.



  5. If the payment was not completed before the Paid to date, the charge is deleted.

Grace period for prolongation

If for a subscription, the grace period is set (see Creating a service term), the subscription on the Paid to date continues working but gets the Graced status.

If a customer pays for the prolong order within the grace period:

  1. The subscription gets the Active status.
  2. The new Paid to date is set taking into account the period covered by the order.
  3. The charge for the current billing period changes the status from New to Blocked without recalculation.

If a subscription is stopped for some reason within the grace period:

  1. The subscription gets the Stopped status.
  2. The charge for the current billing period is split:
    1. A part of the charge up to the stopping date changes the status from New to Blocked but does not change the account balance.
    2. Another part of the charge from the day after the stopping day remains in the New status.

If a customer does not pay for the prolong order within the grace period:

  1. The subscription gets the Stopped status.
  2. The charge for the current billing period is split:
    1. A part of the charge up to the stopping date changes the status from New to Blocked but does not change the account balance.
    2. Another part of the charge from the day after the stopping day remains in the New status.
  3. The Paid to date is not changed.

If a prolong order is cancelled (prolong order manual cancel, joined payment cancel, prolong order auto cancel on the expiration date):

  1. The charge in the Blocked status up to the stopping date is deleted.
  2. The charge in the New status from the day after the stopping day is deleted.
  3. The new Paid to date is not changed.
  4. For a new prolong order, charges are generated from the order creation date. The used part of the grace period is free for the account.

If a customer pays for the prolong order (without cancellation) after the grace period:

  1. The subscription gets the Active status.
  2. The new Paid to date is set taking into account the period covered by the order.
  3. The charge for the stopping period is recalculated for the activation date and gets the Blocked status.
  4. On the account balance, the funds are blocked for both charges in the Blocked status: for the grace period up to the stopping day and for the rest part of the billing period.

Manual prolonging a subscription

Manual prolonging allows changing the quantity of resources except for subscriptions in the Graced status (see Prolonging a subscription).

For manual prolonging, the following occurs:

  1. A new prolong order in the Waiting for payment status is created.
  2. The period for the created charges is defined as follows:
    • If the prolong order is created before the Paid to date — from the first day of the next billing period to the next billing period end.
    • If the prolong order is created on the Paid to date or later but the number of days to the next billing day is greater than Auto-renew point (days) — from the current day to the current billing period end. One charge is created in the New status.
    • If the prolong order is created on the Paid to date or later but the number of days to the next billing day is less than or equal to Auto-renew point (days) — from the current day to the next billing period end. Several charges are created in the New status.
  3. If the amount of resources is changed in the order:
    1. The charges amount is calculated for the new amount of the resources.
    2. If the prolong order is created before the Paid to date, the order is created as delayed (Delayed = Yes and Provisioning date = the Paid to date). For an order in the Waiting for provisioning status, the linked charges remain in the New status.
  4. For a prolong order with the following parameters: Delayed = NoProvisioning date = the order creation date, the charges are recalculated if the order is completed not on the order creation date.
  5. After provisioning the prolong order:
    1. The created charges get the Blocked status.
    2. The new Paid to date is set for the subscription taking into account the period covered by the charges.
    3. If the subscription is stopped, it gets the Active status.

Manual prolonging an expiring subscription

For a subscription with the expiration date in the next billing period, the final prolong order is created as follows:

  1. Charges are created for a period to the subscription expiration date.
  2. After completing the payment linked to the prolong order, the Paid to date is set to the subscription expiration date.

For a subscription with the expiration date in the billing period after the next billing period, a prolong order is automatically created as follows:

  • If between the current Paid to date and the subscription expiration date there are more than 1 month 8 days, a prolong order is created under the general rules.
  • If between the current Paid to date and the subscription expiration date there are 1 month 8 days or less, the final prolong order is created as follows:
    1. An additional charge is created with the following attributes:
      • The charge status: New.
      • operate_from = the start date of a billing period with the subscription expiration date.
      • operate_to = the subscription expiration date - 1.
      • close_date = the subscription expiration date.
    2. The charges are displayed in the order and payment description in one line with the joined period.

      Adding the second charge to a prolong order for a subscription with the expiration date close to the billing day helps prevent the unwilling stopping of the subscription. Without the second charge, the final prolong order would be created too close to the subscription expiration date. Since a subscription can be renewed only after its prolongation, a customer might not have enough time to pay for the renewal.

    3. The order expiration date is set to the subscription expiration date.

    4. After completing the payment linked to the prolong order, the charges get the Blocked status. The Paid to date is set to the subscription expiration date.

Renewing a subscription with the non-endless period

To extend a subscription to another period, delayed renewing is used with the ability to increase or reduce the quantity of resources (see Delayed renewing of a subscription).

When the subscription renewal order is submitted, Recurring fee charges for the additional resources renewal are generated. Separate charges are generated for each resource type. The generation and attributes changing of the charges of this type are similar to the generation and attributes changing of the Recurring fee charges for the subscription purchase.

When a subscription with the Stopped or Graced status is renewed, it is activated automatically after the order and the debt are paid.

Subscriptions are automatically renewed as follows:

  1. Before the specified number of days to the expiration date of a subscription ordered for 1 year, a renewal order is created.
  2. One Recurring fee charge is generated in the New status for the period till the next billing day.



  3. If there are enough funds on the account balance, the subscription is renewed:
    1. The charge gets the Blocked status.
    2. The expiration date of the subscription is set as its current expiration date + 1 year.
    3.  The Paid to date is set equal to the next billing day.



  4. If there are not enough funds on the account balance, the subscription is stopped. To activate the subscription, a customer need to pay for the renewal order.
  5. If a customer pays for the renewal order after the subscription expiration date:
    1. The period and expiration date of the subscription are calculated considering the Expired subscription is renewed settings in a service term (see Creating a service term).
    2. For a charge generated for the period till the next billing day, the start date is set to the renewal order payment date, and the charge amount is recalculated, respectively.

Manual renewing a subscription close to the billing day

If between the subscription expiration date (or the renewal order creating date — for manual renewing an expired subscription) and the next billing day there are 10 days or less:

  1. An additional charge is created with the following attributes:
    • The charge status: New.
    • operate_from = the start date of the next billing period.
    • operate_to = the end date of the next billing period.
    • close_date = the billing day after the next billing period.
  2. The charges are displayed in the order and payment description in one line with the joined period.
  3. The order expiration date is set, taking into account the covered period but limited by the Cancel unpaid order in setting (see Creating an account class).
  4. After completing the payment linked to the order, the charges get the Blocked status. The Paid to date is set to the billing day after the next billing period.

Adding a charge for the whole next billing period helps prevent the unwilling stopping of the subscription. Without this charge, a prolong order would be created too close to the next billing day, and a customer might not have enough time to pay for the prolongation.

Stopping a subscription

If a subscription was stopped during the paid billing period:

  1. The subscription gets the Stopped status.
  2. The platform splits the current billing period charge in the Blocked status in two:
    1. A charge in the Closed status from the previous billing day to the stopping day. If in the service term, the Stop and deletion day is included to charge option is selected, the stopping day is included in the charge in the Closed status.
    2. A charge in the Blocked status for the rest part of the billing period.
  3. The next billing period charge remains in the Blocked status (if exists).
  4. No refunds to the account balance.

  5. If the subscription is not activated till the next billing day, on the billing day:
    1. The previous billing period charge is deleted.
    2. The current billing period charge remains in the Blocked status.
    3. The customer gets a refund equal to the deleted charge.



  6. After that, if the subscription is not activated till the next billing day, the remained charge in the Blocked status is deleted too.

Activating a subscription

If a stopped subscription is activated during the paid billing period:

  1. The subscription gets the Active status without checking the account balance.
  2. The current billing period charge is recalculated taking into account the rest part of the period, and the customer gets a refund equal to the deleted part of the charge.
  3. The other charges remain in the Blocked status.

Change order. Upgrading resources

If a customer increases the quantity of a resource for a subscription:

  1. The platform creates the following entities:
    1. A change order in the Waiting for payment status.
    2. The linked payment in the Waiting for payment status with the amount required for the upgraded resources from the date when the change order was created till the Paid to date.
    3. Charges in the New status for upgraded resources from the date when the change order was created till the Paid to date.



  2. The customer completes the payment on the day the payment was created.
  3. The charges in the New status get the Blocked status.



  4. For the next prolong order, one charge is created for the total amount of resources.



Change order. Downgrading resources

If a customer reduces the quantity of a resource for a subscription:

  1. The customer gets a refund for the part of the charges corresponding to the reduced amount of a resource for the period from the date when the change order was created till the Paid to date.
  2. For the next prolong order, one charge is created for the total amount of resources.

Switching a subscription

Only the immediate switch is available (see Switching a plan).

For switching a prolonged subscription to another plan:

  1. For a switch plan order, charges are generated in the New status for the period till the next billing day.



  2. After completing the switch plan order, all generated charges get the Blocked status, and the Paid to date is updated taking into account the period covered by the charges.
  3. The customer gets refund to the account balance for the parts of the charges for the period till the previous Paid to date.


For switching a subscription from a trial to a paid plan:

  1. When the switch plan order is created, the platform generates a charge till the nearest date among the next billing day and new expiration date.
  2. When the switch plan order is completed:
    1. The charge gets the Blocked status.
    2. The subscription expiration date is updated.
    3. The Paid to date is set equal to the nearest date among the next billing day and new expiration date.

Deleting a subscription

If a subscription was deleted before the Paid to date, the platform performs the following steps:

  1. Moves the subscription to the Deleted status.
  2. Modifies the current charges in the Blocked status as follows:
    1. Creates a charge in the Closed status from the current billing day to the deleting day. If in the service term, the Stop and deletion day is included to charge option is selected, the deleting day is included in the charge in the Closed status.
    2. Moves to the Deleted status charges for the rest part of a period till the Paid to date and refunds the deleted charges to the account balance.

If a stopped subscription is deleted before the next billing day, the platform performs the following steps:

  1. Moves the subscription to the Deleted status.
  2. Moves charges in the Blocked status to the Deleted status and refunds the deleted charges to the account balance.