Key Entities
In the OCS.io solution, several key entities are critical components of the solution and are essential for ensuring that the system operates smoothly and efficiently. Understanding these entities is crucial for anyone working with the OCS.io, as they provide the foundation for many of its key features and functionalities.
In this chapter, we will explore these key entities in more detail, including how they are used, how they interact with one another, and why they are essential for the overall operation of the OCS.io.
Customer - Account - Subscription Management
Customer
A Customer is a fundamental entity in OCS.io that represents a company or a person registered in the system. A customer may own one or multiple Accounts in the system. For example, "Big Company Ltd." is registered in Germany and has multiple branches, one in Munich, the second in Berlin, and the third in Dusseldorf. Each branch is represented as one Account responsible for their spending, and all may have the same Tax ID.
Creating a Customer entity is mandatory, even for Resident Prepaid Accounts. This is because the customer’s information is used for billing and invoicing purposes, and prepaid accounts still require an entity responsible for payment. |
Customers may have various attributes, such as a name, address, contact information, billing information, and tax identification number. These attributes are used in multiple processes, such as invoicing, payment, and customer support.
In OCS.io, the relationship between a customer and an account is one-to-many, meaning a customer may own multiple accounts, and each Account is linked to only one customer. This allows for efficient and organized customer management, making tracking customer spending easy and tailoring services to their needs.
Customer Segment
In OCS.io, a Customer can be linked with a Customer Segment to group them based on shared characteristics or attributes. By attaching a customer with a segment, operators can easily target these groups with customized offerings that cater to their specific needs and preferences.
More about Segments is described here. |
Customer Profile
In OCS.io, Customer Profiles are used to define the structure and characteristics of a customer in the system. Using profiles, accounts can be created with predefined attributes, such as customer segment, initial state, etc., making the creation process faster and more consistent.
By configuring Customer Profiles, you can streamline the onboarding process for new customers, ensure accurate categorization and assignment, and maintain consistency across your customer base.
For more information on how profiles are used in OCS.io, refer to the documentation on CASM Profiles. |
Account
The Account entity is a crucial component in the Invoicing and Billing process, as well as in the Revenue Management Processes of the OCS.io. OCS.io differentiates Accounts into two distinct types:
-
Billing Account, also known as the Payment Responsible Account or the Payer. The Currency is set for this type of account, and Invoices are issued against it.
-
Technical Account is used to group Subscribers that share the same Balance. This type of account is not associated with any currency or invoicing.
Account Type
In OCS.io, an Account must be linked with an Account Type. The Account Type determines whether an Account is a Payment Responsible Account or Technical Account within the hierarchy of Accounts. Multiple Account Types may be configured for either Payment Responsible or Technical Account Types.
A Payment Responsible Account is also known as a Payer within OCS.io. |
Account Segment
In OCS.io, an Account can be linked with an Account Segment to group them based on shared characteristics or attributes. By attaching an account with a segment, operators can easily target these groups with customized offerings that cater to their specific needs and preferences.
More about Segments is described here. |
Account Profile
In OCS.io, Account Profiles are used to define the structure and characteristics of an account in the system. Using profiles, accounts can be created with predefined attributes, such as billing cycle, account segment, initial state, etc., making the creation process faster and more consistent.
By configuring Account Profiles, you can streamline the onboarding process for new accounts, ensure accurate categorization and assignment, and maintain consistency across your account base.
For more information on how profiles are used in OCS.io, refer to the documentation on CASM Profiles. |
Subscriber
In the context of OCS.io, a Subscriber entity is a subordinate of an Account. A Subscriber owns Subscriptions of Offers, which are commonly referred to as Offer Subscriptions. These subscriptions often include metered services such as Data or Voice. A Subscriber is typically identified by one or more Subscriber Resources, including physical resources such as SIM cards or virtual resources like email addresses. It’s worth noting that Offer Subscriptions may also be owned directly by the Account. For example, this could include subscriptions for discounts or balances that are not directly tied to a specific Subscriber.
Subscriber Resource
In OCS.io, a Subscriber Resource maps a Subscriber and a specific Resource. The Subscriber Resource defines the relationship between the Subscriber and the Resource and is used to track the usage of the Resource by the Subscriber.
A Subscriber Resource can be created for any type of Resource that is relevant for billing purposes, such as a SIM card, a software license, an user ID, etc. The mapping of Subscriber to Resource is versioned in time.
For example, a Subscriber Resource could be created to map a specific subscriber to their SIM card. This would allow the system to track SIM card usages, such as data and voice usage, and associate it with the Subscriber for billing purposes.
Subscriber Segment
In OCS.io, a Subscriber can be linked with a Subscriber Segment to group them based on shared characteristics or attributes. By attaching a subscriber with a segment, operators can easily target these groups with customized offerings that cater to their specific needs and preferences.
More about Segments is described here. |
Subscriber Profile
In OCS.io, Subscriber Profiles are used to define the structure and characteristics of a subscriber in the system. Using profiles, subscribers can be created with predefined attributes, such as customer segment, initial state, etc., making the creation process faster and more consistent.
By configuring Subscriber Profiles, you can streamline the onboarding process for new subscribers, ensure accurate categorization and assignment, and maintain consistency across your subscriber base.
For more information on how profiles are used in OCS.io, refer to the documentation on CASM Profiles. |
Billing Cycle
Billing Cycle is a fundamental entity in OCS.io that defines how often and for which period Invoices will be created. A Billing Cycle typically includes the start and end date, billing period, and billing frequency. By linking a Payment Responsible Account with a billing cycle, OCS.io automatically generates invoices at the defined frequency and period.
Every Account must be linked with a Billing Cycle, including Prepaid Accounts. In the case of prepaid accounts, the billing cycle is a technicality that defines when the Itemized Bill will be generated. |
Currency
Account must be linked with specific Currency.
In OCS.io, multiple Currencies can be configured to support international business operations. These currencies can be used for various purposes, such as pricing, invoicing, and revenue management. The system also allows the configuration of virtual currencies, which are not tied to any physical currency but can be used for loyalty points, rewards, or other promotional programs.
Virtual currencies, like loyalty points, are valuable to businesses as they enable them to incentivize customers and promote customer loyalty. With virtual currencies, companies can create and manage their loyalty programs, which can attract and retain customers.
OCS.io support for multiple currencies and virtual currencies makes it easier for businesses to operate in multiple regions and offer customers customized pricing and promotional programs. The system also allows the management of currency exchange rates and conversion, ensuring accurate revenue management and reporting.
Country
Account may be linked to specific Country.
Country is a crucial entity in OCS.io that is primarily used to support the multi-country deployment of your CRM and OCS.io Product Catalogue. Each country may have its own regulatory requirements, pricing policies, and product offerings. By defining countries in OCS.io, operators can easily manage and customize their offerings based on the local conditions of each country.
In addition, country information may be used for various purposes, such as:
-
Pricing policies: operators may have different pricing policies for each country, depending on local market conditions, competitive landscape, or customer preferences.
-
Product offerings: operators may offer different products and services in each country, depending on local demand, network infrastructure, or regulatory constraints.
Overall, the country entity plays a crucial role in OCS.io, enabling operators to manage their business operations across multiple countries and customize their offerings based on local requirements and market conditions.
Product Catalogue
Product
In OCS.io, a Product is a template for creating Offers that are made available to customers for purchase or subscription. A product consists of at least one Service, but products with multiple services can also be created. A service is an essential part of OCS.io, as it brings the functionality behind rating, charging, invoicing, and billing.
More about Products is described here. |
Service
The Services that make up a product define the specific functionality that is delivered out-of-the-box by OCS.io. A service can be a simple or complex set of features, such as voice or data usage, messaging, or content delivery. Each service has a set of attributes that define its behavior, such as its pricing model, usage limits, and quality of service.
In addition to basic services, OCS.io supports the creation of advanced services that provide enhanced functionality, such as real-time charging, flexible rating, and dynamic policy enforcement. These advanced services can be customized to meet specific business needs and requirements.
Balance
Balance refers to the amount of a specific resource (e.g., data, SMS, events) available to an entity such as an Account or Subscriber. Balances may be either Monetary or Non-Monetary, depending on whether they are represented in a currency or as a resource quantity.
Each balance has a Validity period, which specifies its availability in terms of a start and end date. Additionally, a balance may have a Priority assigned to it, determining the order in which it is consumed. Balances may also be configured to allow the consumption of specific types of events, such as SMS on a national network.
Offer
An Offer is a specific instance of a Product definition that defines the essential characteristics of the offer, such as its name, description, price, and duration. It extends the Product definition by adding a rating, charging, and billing attributes like Charge, Tax used, GL Code, etc. Once an offer is created, it can be subscribed to a Customer, Account, or Subscribe.
The Priority attribute of the offer defines the order in which it will be processed during the rating, charging, invoicing, and billing processes. This ensures that offers are processed in a specific order, which can be necessary for promotions or discounts applied in a specific sequence.
Offer may be created only for specific Country.
State Lifecycle
Entity
In the context of OCS.io, an Entity refers to a Customer, Account, Subscriber, or Subscription. Each Entity is associated with a State and a State Reason, indicating its current status.
Optionally, an Entity can also be linked to a Pending State, representing its planned future status.
Entity State History
The Entity State History records all state changes of an Entity (which in the context of OCS.io refers to a Customer, Account, Subscriber, or Subscription). Each Entity is associated with a State and a State Reason, indicating the status of the entity at a given point in time.
State
In the context of OCS.io, State refers to the lifecycle state of an entity, such as a Customer, Account, Subscriber, or Subscription.
OCS.io defines several states that an entity can be in:
-
The Inactive state typically means that the entity has not yet been activated and is not currently available. This could be the case for a new subscription that has been created but has yet to be activated.
-
The Active state means the entity is active and available for use. This is typically the state that a subscription or an offer will be in during regular operation.
-
The Suspended state means that the entity has been temporarily suspended and is unavailable. This could be the case for a subscription that has been temporarily suspended due to non-payment or other reasons.
-
The Deactivated state means that the entity has been permanently deactivated and is no longer available. This could be the case for a subscription that has been canceled or has reached the end of its contract period.
State Reason
In the context of OCS.io, a State Reason is an additional detail associated with a specific state of an entity, such as a Customer, Account, Subscriber, or Subscription.
A State Reason provides more context about why an entity has entered a specific state. For example, if an Account is in the Suspended state, the State Reason may provide additional information about why the Account was suspended, such as an Invoice has not been paid.
Various State Reasons can be configured in the system, and users can select from a predefined list of reasons when changing the state of an entity. This helps ensure consistency and accuracy in tracking the state of entities.
State Reasons can also be used to trigger automated actions or workflows based on the state of an entity. For example, if an Account enters the Suspended state with a State Reason of "Debt Invoice," the system may automatically trigger an action to notify the Customer to prompt them to settle the due Invoice to reactivate the Account, including all subscriptions.
Pending State
Pending State refers to a state that is scheduled to be applied to an entity (such as a Customer, Account, Subscriber, or Subscription) at a future date. Once a pending state is set on an entity, it can either be confirmed or cancelled via the RESTful API. If neither confirmation nor cancellation is performed, OCS.io will automatically execute the operation at the specified time. The system configuration determines whether to commit or cancel the pending state automatically.
Invoicing
Invoice
In OCS.io, an Invoice is a document generated by the billing system that details the charges incurred by a customer or account during a specific period. It is a critical document in the billing and revenue management process, as it serves as the primary means of communicating charges to the customer or account and requesting payment.
The content of the invoice can vary depending on the specific configuration of the billing system. Still, generally, it includes information such as the customer or account name and address, invoice date, billing period, due date, a summary of the charges incurred during the billing period, and the total amount due. In addition to these basic details, invoices can include more detailed information about individual charges, such as usage patterns or itemized transactions.
The format and appearance of invoices can also be customized based on the operator’s preferences or the customer’s or account’s specific needs. This is typically done through the use of Invoice Layout, which defines the layout and content of the invoice.
Invoices are typically generated automatically by the billing system at regular intervals, such as monthly or quarterly. However, they can also be generated on demand if needed, such as in the case of a disputed charge or a customer request for a detailed billing statement.
Overall, the invoice is a critical component of the billing and revenue management process in OCS.io. It provides a clear and concise summary of the charges incurred by customers or accounts and is a crucial tool for ensuring timely payment and accurate payment revenue recognition.
Invoice Type
The OCS.io provides the flexibility to generate invoices of different Types, such as Electronic (PDF), Paper, etc. This allows businesses to cater to their customer’s diverse needs and preferences. For instance, some customers may prefer to receive their invoices electronically, while others may prefer a paper invoice.
Each Invoice Type can have a different Invoice Layout to ensure that the invoices are formatted correctly and are suitable for the specific delivery method.
Invoice Layout
Within OCS.io, you can configure multiple Invoice Layouts.
Invoice Layout is configuration, how the result of Invoicing process is formatted and may be consumed by external systems (e.g., Invoice Print-House system).
In OCS.io, the Invoice Layout is a crucial configuration that determines how the result of the invoicing process is formatted and presented to external systems, such as an invoice print-house system. The Invoice Layout defines the appearance and structure of the invoice, including the placement of different fields, logos, and other graphical elements.
The configuration of Invoice Layouts allows for the customization of invoices to meet specific business and legal requirements. For example, different countries may have different regulations for invoice formatting, and the Invoice Layout can be configured to meet these requirements. Additionally, different customers may have specific preferences for the appearance of their invoices, such as including specific branding elements or additional details.
Multiple Invoice Layouts can be configured within OCS.io to meet the needs of different customers or business requirements. The Invoice Layouts can be designed and customized using a variety of tools and formats, including HTML, PDF, or other file formats supported by the invoicing system.
Overall, the Invoice Layout configuration is a critical aspect of the invoicing process within OCS.io, allowing for flexibility and customization in how invoices are presented and processed by external systems.
Chargeable Event
A Chargeable Event is a crucial entity in OCS.io that represents any billable activity, such as one-time or recurring fees, data usage, voice calls, and SMS messages. These events are stored in OCS.io and can be published to external systems via the Streaming platform. These events are processed during the Billing and Invoicing process to generate accurate and timely invoices.
Charging Class
Charging Class is a fundamental entity within OCS.io that defines how charges for various services and events are calculated. A charging class is closely linked with other configurations within OCS.io and is used to determine the price and tariff applicable to a chargeable event.
OCS.io enables efficient and accurate charging and billing management by defining charging classes for different services and events. For example, charging classes may be defined for a one-time or recurring fee, data usage, voice calls, SMS messages, and other billable activities.
For more information on charging classes and their configuration within OCS.io, please refer to the documentation here. |
Revenue Management
Payer
Payer is an entity in the OCS.io that is linked with a Payment Responsible Account. It holds information about the payment method, delivery method, bank accounts, customized due date period, etc. This information is crucial for managing and processing payments efficiently.
Payment Method
In OCS.io, Payment Method refers to the different ways in which a customer can make a payment. Users can configure the list of available Payment Methods in the system, and these methods are often used by OCS.io implemented Revenue Management processes related to payment processing.
Examples of Payment Methods configured in OCS.io include Bank Transfer, Direct Debit, Credit Card, and PayPal, among others. The Payment Method a customer selects will determine the specific steps and processes involved in the payment processing.
The configuration of Payment Methods in OCS.io is typically done based on each organization’s specific needs and requirements, taking into account factors such as local regulations, customer preferences, and available payment channels.
Delivery Method
In OCS.io, the Delivery Method refers to delivering an Invoice to a customer. This can include methods such as email, postal mail, or self-service portals.
The Delivery Method is configurable in OCS.io. This allows users to define the available options for delivering invoices to customers.
When an Invoice is generated in OCS.io, the configured Delivery Method is passed to the Invoice. It is then up to the implementation of the physical Invoice delivery process to interpret and fulfill the delivery method specified in the Invoice. This physical delivery process is outside the scope of OCS.io, as it may vary depending on each organization’s specific requirements and capabilities.
Incoming Payment
Incoming Payment refers to a payment received by OCS.io. This payment is typically associated with a payer and is used to settle invoices or other charges. The details of the incoming payment, such as the amount, date, and payment method, are recorded in the OCS.io to ensure accurate tracking and reconciliation of financial transactions.
Outgoing Payment
Outgoing Payment refers to a payment made by OCS.io. This payment is typically associated with a payer and is used to return overpayments, unidentified payments, credit notes, etc., to the payer. The details of the outgoing payment, such as the amount, date, and payment method, are recorded in the OCS.io to ensure accurate tracking and reconciliation of financial transactions.
Document Type
Document Type is an entity defining the type of documents maintained in the OCS.io. It could be an OCS Invoice, Generic Invoice, Corrective Tax Document, Deposit, etc. This classification helps in organizing and managing different kinds of documents within the system.
Document Source
Document Source is an entity defining the source of the document. It could be OCS.io itself, a CRM system, an external financial application, etc. This classification helps in identifying and managing the origin of different documents within the system.
Document
Document is an entity mastered in the OCS.io. It records all document-relevant information such as reference to the payer, date of creation, issued date, due date, document number, payment references, and whether the document is paid or not. This information is essential for tracking and managing documents within the system.
Monetary Transaction
Monetary Transaction is an entity used for tracking financial transactions. It records the relationships between documents and payments. This includes payments made against documents, which can be partial, as well as documents that are settled by multiple payments. Additionally, it tracks payments that settle multiple documents and the transfers of incoming payments to outgoing payments. This information is essential for managing and reconciling financial transactions within the system.
Cancellation Reason
Cancellation Reasons are user-defined codes that can be used to categorize and track why a document or incoming / outgoing payment was canceled. The user can create and manage them to meet their specific business needs.
When a user cancels a document or incoming / outgoing payment, typically in the CRM system, they must select the appropriate Cancellation Reason from a list of available options. This allows the system to track and report on the reasons for cancellations, providing insights into potential problem areas that may require attention.