Files
loyalty-agent-service/docs/specs/customer_management/transfer_balance.md

2.0 KiB

title, type, status, domain
title type status domain
Transfer Balance OpenSpec Draft Customer Management

Transfer Balance

Requirement Definition

Allows manual transfer of points from a customer/account to another customer/account (External) or between the customer's own accounts (Internal).

Process Flow

Pre-Conditions

  • Users must have access rights in the "Transfer Balance" module.
  • Requires Maker-Checker approval.

Business Rules

Data Schema

Field Name Description Logic Type Constraints / Rules
Transfer Mode Internal (self) or External (to another). Enum Required.
Transfer Type Entity type to transfer from (Card, Account, Client). Enum Required.
From Card/Account/CIF Number to transfer from. String Required.
To Card/Account/CIF Number to transfer to. String Required.
Pool ID The pool from which to transfer. Enum (Lookup) Required. Must respect "From" entity level.
Store The store where transaction is logged. Enum (Lookup) Required.
Amount to Transfer Amount. Decimal Required. > 0. Defaults to whole pool balance.
Expiry Date Expiry date of transferred points. Date Required. Defaults to source expiry date.
Transaction Code OLS transaction code. Enum (Lookup) Required.
Reason Code Pre-defined reason for transfer. Enum (Lookup) Required. Determines GL posting accounts.
Remarks Additional remarks. String (100) Optional.

Execution

  • Pending/Approve Flow: Goes to a pending list. Authorised user approves.
  • OLS validates status, block codes, and permissions for both "From" and "To".
  • Rejected if "From" pool balance is insufficient.
  • Execution transfers all linked pools directly from "From" to "To".
  • Logged as a negative Adjustment on "From" and positive Adjustment on "To".

Post-Conditions

  • Pool balances updated.

Exception Flow

  • Insufficient balance, TP validation failures, or input errors block the action.