Update Account’s Tax Exemption
The CRM / Ordering system updates an Account’s Tax Exemption flag in the OCS.io via the RESTful API. The request body contains updated Account details. The OCS.io updates the instance of the Account, then returns Business Transaction containing updated Account as a payload of the response. Other systems may be notified about the Business Transaction via the Streaming Platform.
The attribute Tax Exemption in the OCS.io is not versioned. Any changes to this attribute take effect immediately upon update. Please note that these changes do not have a retrospective effect, meaning they do not alter the tax exemption of documents that were created prior to the update. |
Basic Flow
Step | Actor | Action | Description |
---|---|---|---|
1. |
CRM / Ordering |
Call updateAccount API |
CRM / Ordering system calls Update Account’s Tax Exemption 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 updateAccount 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 updating an account’s tax exemption:
-
Account must be provided in the request, it must be already created in the system and must not be in Deactivated State.