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 as terms
  • 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:

flowchart TD Client((Client)) Client -->|Request subscription
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.

flowchart TD Client((Client)) Client -->|Request 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.

flowchart TD Client((Client)) Client -->|Request promotion
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.

flowchart TD Client((Client)) Client -->|Change request creation| Req([Requested]) Req -->|Change request waiting for
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