Subscription status info
Main Concepts
These are the mas-stack resources handle by Subscriptions
domain:
- Subscription: The different services that are offered to customers are modelled as subscriptions in mas-stack.
These subscriptions have common characteristics and lifecycle but specific attributes depending on its type.
Subscriptions
are always linked to a mas-stack customer via an account id - Bundle: Subscriptions are usually grouped bundles for commercial purpose, a bundle is a set of subscriptions
that are sold together with specific tariff conditions and requirements as long as they are part of the same bundle - Promotions: Promotions are special discount that may be applied to subscriptions or bundles. These promotions
have specific conditions, timeframes and commitments to be accomplished by the customer - Commitments: Subscriptions or promotions may have commitments associated that are required to the customer to
enjoy given conditions. The breach of these commitments may lead to penalties or changes in the subscription
conditions
These commitments are defined at mas-stack catalogue asterms
- Free Units packages: Subscriptions may have free units packages associated that are used to consume the service
without additional cost - Devices: Subscriptions may have devices associated that are used to consume the service
- Change Requests: Subscriptions can have different processes that dont impact directly in their status (change tariff for example) or must be scheduled to a future time, this entity gives response to this needs.
All these resources are the application of the products defined in the mas-stack
catalogue
to specific customers.
Subscription
The lifecycle of a subscription is the set of status that a subscription goes through from its creation request
until its deactivation. This general subscription lifecycle is common to all subscription types regardless of the
specific service they are associated with.
Besides the subscription status, some additional information about the reason why the subscription reached it could be
registered in reason
field.
The status of the of registered subscription can be consulted right after its creation request using endpoints of
API V2
. These status are applicable to any subscription
regardless its type. Here you can find the status catalog:
creation| Req([Requested]) Req -->|Business validations
are not passed| Hold([On Hold]) Req -.-|Subscription Cancelled| Cancelled([Cancelled]) Hold --> |Business validations
are passed| Provisioning Hold -.- |Subscription Cancelled| Cancelled([Cancelled]) Req -->|Business validations
are passed| Provisioning([Provisioning]) Provisioning -->|Cancel subscription request|Cancelling([Cancelling]) Cancelling -->|Cancellation process
completed|Cancelled([Cancelled]) Provisioning -->|Subscription ready
for service| Active([Active]) Active --> |Deactivation Requested| Deactivating([Deactivating]) Deactivating --> |Deactivation process
completed|Deactivated([Deactivated]) Provisioning -.-|Subscription Cancelled| Cancelled([Cancelled])
Status | Description |
---|---|
REQUESTED | The subscription creation request has been registered and accepted. Provisioning process is not started yet |
ON_HOLD | The subscription provisioning process is on hold because of a process dependency (e.g: fraud checks ongoing, provision conditioned to other subscription |
PROVISIONING | The subscription provisioning process has already started and is in progress, subscription service is not available yet |
ACTIVE | The subscription has been successfully provisioned and the service is ready for billing |
DEACTIVATING | Deactivation of the subscription has been requested and some actions are pending to complete (e.g: some devices must be collected) |
DEACTIVATED | The subscription has been deactivated and no actions related with it are pending |
CANCELLING | The subscription deactivation has been requested and some actions are pending to complete (e.g: revert some part of the provision) |
CANCELLED | The subscription creation was cancelled before its activation |
Bundle
The life cycle of a bundle is the set of status that a bundle goes through from its creation request until its
deactivation. This bundle status depends on the status of the subscriptions that are part of the bundle.
creation| Req([Requested]) Req --> Active([Active]) Active([Active]) -.->|Cancellation process
completed|Cancelled([Cancelled]) Active([Active]) -.->|Deactivation process
completed|Deactivated([Deactivated])
Status | Description |
---|---|
REQUESTED | The bundle creation request has been registered and accepted. Provisioning process of all the contained subscriptions is not started yet |
ACTIVE | At least one of the subscriptions of the bundle is active |
DEACTIVATED | The bundle has been deactivated and no actions related with it are pending |
CANCELLED | The bundle creation was cancelled before its activation and no actions related with it are pending |
Promotion
The life cycle of a promotion is the set of status that a promotion goes through from its creation request until its
expiration or deactivation. This promotion status depends on the status of the subscriptions or bundles they are
associated with.
creation| Req([Requested]) Req --> |Parent
subscription/bundle
is cancelled| Cancelled([Cancelled]) Req --> Ready{Parent
subscription/bundle
is active?} Ready -->|No| Req Ready -->|Yes| Active([Active]) Active --> |Parent
subscription/bundle
is deactivated|Deactivated([Deactivated]) Active --> |Expiration time
reached|Expired([Expired])
Status | Description |
---|---|
REQUESTED | The promotion creation request has been registered and accepted. Provisioning process of the linked subscription/bundle is not completed yet |
ACTIVE | The subscription or bundle linked to the promotion is active and the promotion is being applied |
EXPIRED | The promotion has reached its expiration date and is no longer applied to the linked subscription/bundle |
DEACTIVATED | The promotion has been deactivated manually before expiration date |
CANCELLED | The promotion has been cancelled before its activation |
Change Request
The lifecycle of a change request begins when it is requested and ends when it is processed, cancelled or it fails. Additionally, a change request may depend on another request, which we refer to as the main change request.
Additionally, it is possible to schedule a change request for the future, which will remain pending until the processing date arrives.
scheduled time or main
change request dependency| Hold([On Hold]) Req -.- |Change request Cancelled| Cancelled([Cancelled]) Hold --> |Change request
in progress| InProgress([In progress]) Hold -.- |Change request Cancelled| Cancelled([Cancelled]) InProgress([In progress]) -->|Change request
finished| Finished([Finished]) InProgress([In progress]) -->|Change request
failed| Failed([Failed])
Status Change Reasons
The status change of a subscription or bundle can be triggered by different reasons. These reasons are registered in the
reason
field associated to subscription and bundle events. These are the possible reasons depending on the status
and the resources it can be associated to
REQUESTED/PROVISIONING/ACTIVE
These reasons are applicable to status that are in the process of being provisioned or are already active
Reason | Description |
---|---|
BUNDLE_SALE | The origin of the subscription/bundle is a new bundle sale |
BUNDLE_MIGRATION | The subscription/bundle comes from a bundle migration |
SUBSCRIPTION_ADDED_TO_BUNDLE | The subscription is new and has been added to an existing bundle |
CONTRACT_MIGRATION | The subscription/bundle comes from a contract migration |
CUSTOMER_CHANGE | The subscription/bundle comes from a customer change |
ACCOUNT_MIGRATION | The subscription/bundle has been moved from one account to another |
PREPAID_TO_POSTPAID | The subscription has just changed from prepaid to postpaid |
POSTPAID_TO_PREPAID | The subscription has just changed from postpaid to prepaid |
ADDRESS_AND_TECH_CHANGE | The subscription/bundle comes from an address change involving a tech change |
ADDRESS_CHANGE | The subscription comes from an address change without tech change |
TECH_CHANGE | The subscription comes from a tech change |
PROVISIONING_ISSUE | The subscription provisioning process fails in third party system |
UNKNOWN | The status change of the bundle is unknown, typically due to legacy systems |
ON_HOLD
These reasons are applicable to status ON_HOLD and indicates there is some temporary blocker
Reason | Description | Billing Type |
---|---|---|
FRAUD_CHECK_ONGOING | The process is on hold because of fraud checks | Postpaid |
MAIN_SUBSCRIPTIONS_PENDING | Main subscriptions required in same bundle are pending to be activated | Postpaid |
INSTALLATION_PENDING | The subscription progress depends on the installation process | Postpaid |
LOGISTIC_PENDING | The subscription progress depends on the logistic process | Postpaid |
PENDING_PAYMENT | The subscription progress depends on the payment process | Prepaid |
SUSPENDED | The subscription service has been suspended | Prepaid |
UNKNOWN | The status change of the bundle is unknown, typically due to legacy systems | Both |
CANCELLING/CANCELLED/DEACTIVATING/DEACTIVATED
These reasons are applicable to status that are in the process of being deactivated or are already deactivated
Reason | Description | Billing Type |
---|---|---|
SUBSCRIBER_RESIGNATION | The subscription has been cancelled by subscriber request | Both |
BUNDLE_CANCELLATION | The whole bundle has been cancelled | Both |
BUNDLE_DEACTIVATION | The whole bundle has been deactivated | Both |
FRAUD_CHECK_REJECTION | The subscription has been cancelled because because it does not pass fraud check or scoring | Postpaid |
ACCOUNT_MIGRATION | The subscription has been cancelled/deactivated in the bundle of current account and created in a new one | Both |
OTHER | The subscription has been cancelled/deactivated for unknown or legacy reasons | Both |
PROVISIONING_ISSUE | The subscription activation/deactivation fails because of provisioning issues | Both |
PAYMENT_ERROR | The subscription payment process fails | Prepaid |
UNKNOWN | The status change of the bundle is unknown, typically due to legacy systems | Both |