--- title: "Award Transaction" type: OpenSpec status: Draft domain: Customer Management --- # Award Transaction ## Requirement Definition Allows users to review, verify, and manually create Award Transactions to grant points/rewards to a customer's account. ## Process Flow ### Pre-Conditions - Users must have access rights in both the "Customer Profile" and "Award Transaction" modules. - The user must select a customer on the customer profile listing page. - Dependent on access rights, users can view, add, edit, or approve manual Award Transaction records. ## Business Rules ### Data Schema #### General Information | Field Name | Description | Logic Type | Constraints / Rules | |---|---|---|---| | Posted Transaction By | Card, Account, or CIF. | Enum | Required. | | Card / Account / CIF | Identifier based on above selection. | String | Required. | | Store | Store of transaction. | Enum (Lookup) | Required. | | Transaction Date | Transaction date time. | Date | Required. | | Reason Code | Reason for the award. | Enum (Lookup) | Required. | | Transaction Code | OLS transaction code. | Enum (Lookup) | Required. | | Remarks | Additional notes. | String (100) | Optional. | #### Award Details | Field Name | Description | Logic Type | Constraints / Rules | |---|---|---|---| | Pool Id | Pool to be awarded. | Enum (Lookup) | Required. Must respect entity level logic. | | Award Quantity | Points to award. | Decimal | Required. Must be > 0. | | Expiry Date | Expiry date of the awarded points bucket. | Date | Required. Defaults based on pool's expiry policy. | ### Execution - **Pending/Approve Flow**: New award transactions go to a Pending state. An authorized user must approve them. - Manual awards act similarly to positive Adjustments but follow the Award business logic path (potentially triggering Campaign Rules if configured). - Points are added to a new bucket with the specified Expiry Date. ## Post-Conditions - Pool balance buckets are updated. - Transaction is logged in history. ## Exception Flow - Validation failures or insufficient permissions.