Skip to main content

Account Structure

This document outlines the customer hierarchy and the detailed database schema for the new CBS implementation.

Hierarchy Overview

The customer hierarchy is structured as follows: Registered CustomerPayment AccountSubscriber.

Core Business Logic

  • Account-Subscriber Relationship: Multiple subscribers can exist under a single payment account.
  • Balance Sharing: For prepaid accounts with multiple subscribers, all subscribers share the same recharge balance tied to the account.
  • Flex Subscriber Logic: A flex subscriber is attached to two accounts: a prepaid account (for balance deduction) and a postpaid account (for billing).
  • Identity Management: While CBS provides both *_id and *_code for all modules, Dhiraagu exclusively uses the ID field.
  • CRM Integration: Customer code is not used; the Customer KEY is sourced from the CRM.

1. Registered Customer

The following tables manage the legal identity and high-level attributes of the customer.

Table NameBrief Description
BC_CUSTOMERMain customer table for new registrations.
Individual Information About a PersonDetails for individual consumer customers.
Organisation Information (BC)Details for corporate/business customers.
BC_CUST_PROPSupplemental customer attributes in long format.

BC_CUSTOMER (Customer Information)

This is the primary table hit when a new customer is created.

  • Note: Fields like Parent Customer ID are redundant and can be ignored, as there is no hierarchy within the Customer module itself.

Individual Information About a Person

Contains details for consumer customers. This table includes an address ID which links to the master address table.

Organisation Information (BC)

Contains details for corporate customers. Similar to individual customers, this includes an address ID linked to the master address table.

BC_CUST_PROP (Additional Property Instance of Customer)

A long-format table used to add new attributes without changing the schema.

  • property_code: Stores the name of the attribute.
  • property_value: Stores the value of the attribute.

2. Payment Account

The financial layer responsible for monetary balances and payment settings.

Table NameBrief Description
BC_ACCTMaster registry of all payment accounts.
Account PropertySupplemental account-level attributes.
Balance AccountRecords monetary balances at the account level.

BC_ACCT (Account)

The central table containing all payment accounts for all customers.

Account Property

A long-format table for additional account fields.

  • attribute_code: Stores the property name.
  • attribute_value: Stores the property value.

Balance Account

In the new CBS, monetary balances are recorded at the account level rather than the individual subscriber level.


3. Subscriber

The service layer where MSISDNs and non-monetary units are managed.

Table NameBrief Description
BC_SUBSCRIBERMain table for service IDs and status.
Subscriber Identity InformationPrimary and secondary customer information.
Default Subscriber AccountMaps a subscriber to their billing/recharge account.
Additional Property Instance of SubscriberService types and supplemental columns.
Free UnitRecords non-monetary balances (Data, SMS, etc.).

BC_SUBSCRIBER (Subscriber Information)

The main table containing the Subscriber ID (service ID) and current service status.

  • latest_activation_time: Expiration time for SIM cards that have not been activated.
  • actual_activation_time: The Prepaid FCA and service creation time for all service types.
  • Expiration Date: Indicates when the subscriber_id <> msisdn relationship was broken (e.g., after termination or ownership change).

Subscriber Identity Information

Stores the primary and secondary identification data for the customer.

Default Subscriber Account

Defines the default billing and recharge account for each subscriber. All recharges are automatically directed to this account.

Additional Property Instance of Subscriber

Used for service types and custom attributes in long format.

  • property_code: The attribute name.
  • property_value: The attribute value.

Free Unit

Contains all non-monetary balances. Unlike monetary balances, these are tracked at the subscriber level.


4. Subscriber Lifecycle

Tables dedicated to tracking the status transitions and timelines of subscribers.

Table NameBrief Description
Subscriber Status Change HistoryAudit log of all status transitions.
Subscriber Status Expiration Time InstanceTimestamps for future status changes.
CM_SUB_STATUS_DEFINITONInternal mapping for statuses and SS_SEQ fields.

Subscriber Status Change History

Provides a full historical record of every status change a subscriber has undergone.

Subscriber Status Expiration Time Instance

Contains the specific timestamps for when subscribers are scheduled to hit various service statuses.

CM_SUB_STATUS_DEFINITON

An internal mapping table used to align service statuses with the statuses defined in the SS_SEQ field.


5. All Addresses

Address data is centralized to maintain consistency across modules.

Table NameBrief Description
BC_ADDRESSCentral repository for all addresses.

BC_ADDRESS

All modules (Customer, Account, Subscriber) link to this table via address ID to retrieve location details.