Create Subscription on Account
The CRM / Ordering system creates an instance of the Offer Subscription on Account level in the OCS.io via the RESTful API. The request body contains the Subscription details, and the Account ID on which Subscription will be created. The OCS.io creates the Subscription, then returns Business Transaction containing created Offer Subscription as a payload of the response. Other systems may be notified about the Business Transaction via the Streaming Platform.
Basic Flow
Step | Actor | Action | Description |
---|---|---|---|
1. |
CRM / Ordering |
Call createSubscription API |
CRM / Ordering system calls Create Subscription on Account API exposed by OCS.io. |
2. |
OCS.io |
Request Validations |
OCS.io validates Request whether all mandatory attributes are populated, all data types are valid, ENUMs match with definition, etc. Additionally, OCS.io validates Request against Business Logic. This typically includes, that referenced entity exists in the system, entity has proper state, etc. |
3. |
OCS.io |
Perform Business Logic |
OCS.io performs Business Logic implemented for the Use-Case. |
4. |
OCS.io |
Publish Business Transaction |
OCS.io publishes zero to many messages to Streaming Platform that impacted entities have been changed. |
5. |
OCS.io |
Return createSubscription Response |
OCS.io returns Response to the CRM / Ordering System. |
6. |
DWH |
Subscribe for Business Transactions |
DWH subscribes for Business Transactions to be delivered by Streaming Platform. |
7. |
DWH |
Process Business Transactions |
DWH process Business Transactions internally. This typically includes storing of changed entities, update indexes, update metrics, etc. |
Request Validations
The following validations are performed when creating a subscription on an account:
-
Account must be provided in the request, it must be already created in the system and must not be in Deactivated State.
-
If External ID is provided in the request, it must be unique and must not be already assigned to another Offer Subscription even in Deactivated State.
-
State Reason must be configured in the system for given State.
-
If Pending State is provided in the request, it will be ignored and Subscription on Account will be created without Pending.
-
Offer must be configured in the system.
-
If Parent Offer Subscription is provided in the request, it must be already created in the system and must not be in Deactivated State.
Perform Business Logic
-
If External ID is provided, this is set to the newly created Offer Subscription.
-
System creates Offer Subscription on Account level.
Publish Business Transaction
Following entities will be published to Streaming Platform as part of Business Transaction:
-
Chargeable Event (in case Chargeable Event is created or updated during Subscription of the Offer)