Move Subscription (Upgrade / Downgrade)

A Move Subscription can give customers the opportunity to change an already purchased subscription and move to another one.

Overview

This functionality within REST API allows a customer to change their subscription (or upgrade/downgrade) whilst they have an existing subscription.
At the heart of this functionality are the nuanced financial settlements that will facilitate a successful move subscription, paying attention to refunding and tax.

Pre-Conditions:

In order to qualify to switch a subscription, a customer record must have:

o an Account
o a Wallet
o a Subscription

Pre-requisites for a customer to successfully move their subscrption:

The system must verify all available subscriptions which the user can switch to.
An endpoint has been created for retrieving all valid options for switching the subscription.

In order to qualify for a valid option for switching a subscription must meet the following conditions:
- the source service the customer can up or downgrade from must have Upgrades / downgrades permitted enabled in eSuite HQ against the service. The destination service does not need this enabled;
- the service associated to subscription should belong to same service group as the current service;
- the service associated to subscription should belong to same Affiliate that the current service belongs to;
- subscriptions having services with dynamic price type set up will not be displayed as an option in the list;
- currency of new subscription should be the same with the currency of old subscription;
- payment method of new subscription must be the same with payment method of old subscription;
- a subscription can be switched with another subscription only if it is in “Active” or “FailureRetryMode” status; in case the subscription is in a different status than the two mentioned the system should not allow the switch;
- in case current subscription is “locked in” base on “lock period” of the related service should not be allowed by the system to be switched;
- if the subscription to be moved is “gift subscription” or is a zero-priced service it is not qualified to be moved;
- the most recent Order for the Subscription must not be in a status of Refunded;
- if the subscription to be moved has a payment type of "Offline", its Orders must be in a status of Completed.

This endpoint can use two different values for “optionType” parameter:

o Available;
o Confirmed.
By default in Swagger is set “Available”.

Subscription switch reflected in orders:

In case the service credits are used for the refund, the account will receive the refund value as service credits from which will be subtracted the value of the new service.
In case the refund is not enough to cover for the cost of the new service, a transaction will be made to the payment wallet to cover for the difference.
For the two cases above will be possible following cases:

1. Case 1:

Pre-Conditions:

o Account has been created
o Two new services have been created
o A wallet was created
o A subscription (for first service) has been created

Price of Service 1 is smaller than the price of Service 2:
In this case in eSuite HQ platform, in “Orders” page will appear following orders:

o the order for the subscription;
o the order for refunded credits;
o the order for charged service credits;
o the order for the charge to the payment Wallet.

2. Case 2:

Pre-Conditions:

o Account has been created
o Two new services have been created
o A wallet was created
o A subscription (for first service) has been created

Price of Service 1 is bigger than the price of Service 2:
In this case in eSuite HQ platform, in “Orders” page will appear following orders:
the order for the subscription;
the order for refunded credits;
the order for charged service credits.

3. Case 3:

Pre-Conditions:

o Account has been created
o Two new services have been created
o A wallet was created
o A subscription (for first service) has been created

Price of Service 1 is smaller than the price of Service 2 OR Price of Service 1 is bigger than the price of Service 2 (doesn’t matter which service price is bigger):
In this case in eSuite HQ platform, in “Orders” page will appear following orders:
the order for the subscription;
the order for refunded amount for Service 1;
the order for full charged amount for service 2.

Limitations:

There are some limits for the use of subscription upgrade / downgrade. These limits are:
"BankTransfer", "Paypal" and "3D Secure" will not be allowed on subject endpoint;

Immediate Subscription switch will not be allowed if the order for last contract period was "Refunded" or "Partial Refunded".

Subscription switches do not apply Trial period discounts on the moved to Service price.

Entitlements and Vouchers:

Vouchers:
A voucher can be created inside an Offer, which is linked to a Service. In case of a subscription switch or “immediate switch” (made for a service) the vouchers will be deactivated.

Pre-Conditions:
Account has been created
Two new services have been created. At creation moment should be created also Entitlements for each service. The Entitlements should be non-recurring.
An offer has been created and linked with Service 1
A wallet was created
A subscription (for first service) has been created
"immediateSwitch": false

1. On Auto-Renew process for scheduled subscription switch the vouchers will be deactivated (in the database in table "Subscriptions.SubscriptionVoucherCodeStatus" it’s status will be 4 (Removed), which is considered that the voucher has been deactivated.
2. For “immediate switch” ("immediateSwitch": false) response will not have RemovedOffers object as deactivation will be done on auto-renew.

Entitlements:
An entitlement can be created inside a Service. In case of a scheduled subscription switch or an “immediate switch” the entitlements will be deleted.

Pre-Conditions:
Account has been created
Two new services have been created. At creation moment should be created also Entitlements for each service. The Entitlements should be non-recurring.
An offer has been created and linked with Service 1
A wallet was created
A subscription (for first service) has been created
"immediateSwitch": true
Non-recurring entitlements will be deleted for the old service on subscription switch for both immediate and scheduled.