v7.23 — February 2026
Released: February 2026Points & Calculations
Decimal-Based Point Calculation
Points are now calculated, stored, and reported using decimal values as the standard:- Rule engine computes points to 2 decimal places; stored with 1 decimal place (single rounding applied at the second decimal)
- Ceiling rounding examples: 13.68 → 13.70; 13.35 → 13.40
- Floor rounding example: 13.32 → 13.30
- Point spoilage displays up to 2 decimal places (e.g., 0.04)
- Stored values are used consistently across balances and reports — no additional rounding occurs during display
- Historical data is not recalculated or migrated
Accrual Reversal via Bulk Upload
- Negative values in the upload file are accepted exclusively for accrual reversals
- All other transaction types continue to require non-negative values
- File handling updated from “Debit – Accrual Reversal” to “Credit – Accrual Reversal”
Transaction API
Additional Loyalty Transaction Types Parameter
A newAdditionalLoyaltyTxnTypes parameter allows passing multiple loyalty transaction types in a single API call:
- Values are comma-separated: e.g.,
"AdditionalLoyaltyTxnTypes": "1,8" - The system evaluates both
LoyaltyTxnTypeandAdditionalLoyaltyTxnTypestogether - Invalid or incorrect combinations return
ErrorCode 204: "No Transaction details are available" LoyaltyTxnTypecontinues to accept only a single value
Reports
View All Generated Reports
All report types are now accessible from a unified view — Auto-generated, Manual, Exported, One-time, Custom, and Shared:- Pagination adapts based on available data; horizontal scroll enabled when columns exceed viewport width
- Member search is enabled when the report contains Member ID, Relation Reference, or Relation Reference fields
- Date filter is enabled when the report contains Processing Date or Enrollment Date
Empty Report Tabs Hidden
- Report tabs (e.g., Transaction, Members) no longer appear when no data is available for that section
- Users only see tabs with available report data
Transaction Summary Default View
- No automatic date range is pre-selected; the system displays the latest 10 transactions by default (most recent first)
- Helper text shown: “Showing latest 10 transactions. Select a date range to view more”
- When a date range is applied and results exceed 10 records, pagination activates (10 per page)
Role-Based Report Sharing
- Reports can now be shared at the role level, giving access to all users in that role
- Individual user sharing continues to work as before
- Reports shared to a role without “View Report” permission will only become visible once that permission is granted to the role
Persistent Column Configuration
- Column preferences in the Member Transaction Summary are saved per user
- Configuration persists across logouts, browser refreshes, and session timeouts
- Default columns for first-time users: Transaction Date, Transaction Amount, Transaction Type
Four New Custom Reports
- Expiry Report — member-level points expiry with columns for Member ID, BIN, Month, Year, Earning, Bonus Rewards, Rewards Expired, and Expiry Status
- Projected Expiry Report — forward-looking version of the Expiry Report showing points expiring in future months (up to 3 years of schedule data)
- Detailed Customer Profile Report — customisable profile columns with support for monthly and custom date-range generation
- Admin User Audit Report — captures User ID (email), Activity, Date, Time, IP, Device, and Browser from the Loyalife audit trail; supports monthly and custom generation
Security
BDI Credential Encryption
- Client credentials (Client ID, Secret Key, Access Token, Refresh Token) are now encrypted using SHA-256
Access Control
Advanced Configuration Permissions
- Advanced Configuration is now restricted for default roles: Program Admin, Program Manager, and Customer Executive
- User-created custom roles continue to show the Advanced Configuration permission
Rule Engine
Dynamic Segment Linkage with Rule Groups
Rule Groups can now be linked to Dynamic (Smart) Segments for automatic member eligibility:- When a member attribute changes (e.g., tier upgrade), a MemberProfileUpdated event triggers the Segment Evaluation Service
- The service re-evaluates members against linked segments and updates membership automatically
- Members become eligible or ineligible for associated Rule Groups without manual intervention
- Constraint: Once a segment is configured to a Rule Group, it cannot be changed
Additional Improvements
- MemberActivation API now returns specific error messages per scenario (e.g., “Member is already active”, “Member is suspended”, “Member is cancelled”) instead of generic errors
- BNS and CRD email notifications now include an error log link so recipients can view failure reasons directly from the notification
- Disabled template display in campaigns: disabled templates appear in a locked state with the tooltip “This template is disabled and cannot be selected”
- Inactive Rule Groups (time-bound, expired): editing is now prevented; groups appear as read-only with an expiry message
- Cashback requests: no daily limit — multiple cashback requests are allowed per day as long as sufficient points are available; existing Pay with Rewards restriction (one active request at a time) is unchanged
- Max Points field now enforces integer-only input; decimal values (e.g., 10.50) are rejected
- Loyalife branding is now optionally hideable at environment and program level via a configuration toggle