Overview

Introduction

This guide has been prepared with the aim of providing a generalized view of the life of the client in the company and the different processes that are involved. We are going to go through the complete cycle from when a client gets registered in the company.

The beggining

In order to talk about the life cycle of a client, the first thing we are going to see is how a client is generated. The moment a person accesses or becomes interested in any of the telecommunications products, products that can be consulted in MasCatalogue , within MasStack , and decides to make a contract, there are two possible channels to do this selling:

  • Physical or face-to-face (stores)
  • Not in person (Online)

Once the client uses either of the two options, a sale is generated, from which the life or life cycle of the client begins in the company. The sale process is described in Signup. All the information can be checked in Signups site

Post-sale

Once the sale or Signups is made, a unique identifier is generated to the customer. This unique identifier is called userId. We are going to see the different fields that a client has within our Api.

User

This object includes all the information related to the customer’s data, for example: address, bank account, mail … etc., as well as the different packages contracted in the sale.

  • Own information: can be accessed from Get user detail . In this object we will find everything related to customer data, from their address, identification document, email … It is accessed thanks to the userId

  • Information of the contracted packages: can be consulted in Get customer full tree This information can be accessible by email, identity document or subscription phone. This tree will return all accounts and subscriptions the client has contracted already along with their current status . We will see their structure below.

A first approach to how the hierarchy of our API is, with the different fields and how they relate to each other, can be seen in the following diagram. You can click on the squares to expand the differents sections.

erDiagram SIGNUP ||--|| USER : creates SIGNUP ||--|| ACCOUNT : creates SIGNUP ||--|| SUBSCRIPTION : creates USER { int64 userId } USER ||--|{ ACCOUNT : "has" ACCOUNT { int64 accountId } ACCOUNT ||--|{ SUBSCRIPTION : "is composed by" SUBSCRIPTION { int64 subscriptionId }

Accounts

This object encompasses the different “contracts” made by the client. This contract or contracts is going to be a sum of different lines or services. Each contract will have a different account associated with its own accountId. All the different methods that we have in our MasStack APIs can be consulted here Accounts
For example: a customer goes to the store and hires a package which is made up of: a fixed line, a mobile line and the internet. In this case we will have a contract with 3 different subscriptions.

  • Fixed line
  • mobile line
  • Internet

Subscriptions

Each of the services contracted within a contract is what we call Subscription. Each of them may have different peculiarities. Everything related to this field can be consulted in Subscriptions

There are 4 types of services that you can have a subscription:

  • Fixed Line
  • Mobile
  • Internet
  • Television

In the following diagram we can see the different types of subscriptions that we can have:

graph TB A[Account] --> |subscription1|1[Fixed Line]; 1 -.-> 11(New number) & 12(Portability); A --> |subscription2|2[Internet]; A --> |subscription3|3[Mobile Number]; 3 -.-> 31(New number) & 32(Portability); A --> |subscription4|4[Television];

The hierarchy

As we have seen in previous sections, all the fields are related to each other as can be seen in the diagram at the beginning of this page.

Bellow you can find a first approach on how these fields connect and which are the parameters needed when searching:

classDiagram Signups --|> User User .. Customer_tree User .. Customer_info User --|> Accounts Accounts .. Account_Info Accounts .. Compatible_bundles Accounts .. Customer_account Accounts --|> Subscriptions Subscriptions .. Subscription_Info Subscriptions .. Replace_SIM Subscriptions .. Recharge_Details Subscriptions .. in_flight_mobile_subscription class User{ Customer_tree Customer_info } class Customer_tree{ Email Msisdn Document_Number } class Customer_info{ userId } class Accounts{ Account_Info Compatible_bundles Customer_account } class Account_Info{ accountId } class Compatible_bundles{ accountId } class Customer_account{ userId } class Subscriptions { Subscription_Info Replace_SIM Recharge_Details in_flight_mobile_subscription } class Subscription_Info{ subscriptionId } class Replace_SIM{ subscriptionId } class Recharge_Details{ subscriptionId start_date end_date } class in_flight_mobile_subscription{ subscriptionId motive_id }

Now, we are going to see an overview of how the photo would look with all the fields integrated with each other and their method possibilities.

classDiagram Signups --|> User User --|> Accounts Accounts --|> Subscriptions Accounts .. Invoices Accounts .. Terms Accounts .. Payment_Info Subscriptions .. Account_migrations Signups .. Account_migrations : Bundle migration Subscriptions .. Products Subscriptions .. Services Subscriptions .. Bonuses Subscriptions .. Promotions Accounts .. Promotions : Get promotions Subscriptions .. Barrings Subscriptions .. Consumption_Balance class Signups { Post new_client Get master_data_information Get availables_msisdns_by_network Get simcard_ICC Post register_sell_payment Activate SIM_card Add new_subscription_to_bundle } class User { Get customer_tree_by_client_info Get customer_full_tree Get user_detail Update user_data Get expedition_user_details Update expedition_user_details Agile TV_change_email_subscription } class Accounts { Get account_information Get compatible_bundles Get customer_accounts } class Subscriptions { Get subscription_info Replace sim_icc_to_a_new_one Get recharge_details Cancel in-flight_mobile_subscription } class Invoices { Get invoices_list } class Terms { Get Account_Terms } class Payment_Info { Get payment_info Update payment_info } class Account_migrations { Add Subscription_to_new_account Add Subscription_to_existing_account Migrate Prepaid_to_new_postpaid_account Prepaid subscription_to_postpaid_existing_account Postpaid subscription_to_new_prepaid_account Postpaid subscription_to_prepaid_existing_account Bundle migration } class Products{ Get info_products Update subscription_product } class Services{ Get info_services Update aservice_status } class Bonuses{ Get bonus_info Add new_bonus Delete bonus } class Promotions{ Get promotions Add new_promotion_to_subscription Delete promotion_of_a_subscription } class Barrings{ Get blocks_info Update SIM_Status_to_Blocked_or_Unblocked Patch MasBarrings_call } class Consumption_Balance{ Get prepaid_balance Get consumption_details Get consumption_limit Set consumption_limit Delete consumption_limit } class Workorders{ Post changeOrder_mysimWS's_calls }

Next steps to this section can be seen in Signup’s site .