> ## Documentation Index
> Fetch the complete documentation index at: https://help-loyalife.xoxoday.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v7.15 — April 2025

> Loyalife v7.15 introduces peer-to-peer point transfers, decimal redemption, rule engine versioning, custom bonus expiry, and GraphQL performance improvements.

# v7.15 — April 2025

**Released:** April 2025

## Performance

* GraphQL API performance enhanced with improved TPS (transactions per second) and response times
* Duplicate tier tables removed from the database, reducing load; tier data consolidated into the primary tier configuration and mapping structures

***

## Members

### Peer-to-Peer Point Transfers

Members can now transfer points to other members within the same program:

* Cross-program transfers are not supported
* Eligible statuses: all except Cancelled and Closed
* Transfers appear in Reports with the *"Peer-to-Peer Transfers"* filter

### Decimal Point Redemption

* Redemption API now accepts up to **5 decimal places**
* Values beyond 5 decimal places are truncated
* Rounding is applied to the nearest whole number; excess is recorded as spoilage in reports
* Reversal returns the full amount including spoilage

### Auto-Claim for Future Transactions

* Once a member manually claims a transaction for the first time, **all subsequent transactions are auto-claimed**, regardless of transaction type (CR/DR)
* Works across all claim states: claimed, pending, ready to redeem

### Profile Editing

* Members can edit their **first name**, **last name**, and **mobile number**
* Mobile number uniqueness is enforced across the program
* Changes are reflected in the admin panel after update

***

## Rule Engine

### Rule Versioning with Full Audit Trail

* All rule edits are version-controlled — each edit creates a new version and the latest version is used for computation
* Users can view the full edit history and download a version summary
* Archived rules must be unarchived before they can be edited
* Maker-Checker applies to rule edits if enabled for the program
* "Created by" displays as "NA" for rules imported from another program

### Transaction Template Events

* Communication events now support both **pending** and **completed** transaction states
* Pending mail trigger: runs every 2 minutes; the pending status must persist for at least 2 minutes before a pending notification is sent
* If the transaction completes within the 2-minute window, only the completed mail is sent
* Status eligibility for receiving templates: Active, Suspended, Blocked receive mail; Cancelled, Closed, and Inactive do not

***

## Access Control

### Role Permission Improvements

* A new non-selectable **"Create Program"** permission has been introduced
* Role permission counts now include this permission in the total after role creation
* Import/export role access counts reflect the exported program's state

***

## Points & Expiry

### Custom Expiry Dates for Bonus Points

Custom expiry dates can now be passed when awarding bonus points:

* Applicable across: Bonus API, BNS file, Manual Points, and Campaigns
* The custom expiry date **overrides** the program-level expiry configuration
* **Validation rules:**
  * Bonus requests: expiry date must be ≥ current date
  * Campaign context: expiry date must be > campaign end date
  * Custom expiry can exceed the program's standard expiry date
  * Negative point entries: expiry is not applied
* Campaign limitation: custom expiry applies to reward-type campaigns only, not promotional campaigns

***

## User Management

### Enhanced Username Autofill

* When an email already exists in the system, the username auto-populates and the field becomes locked
* For new emails, the username is entered manually
* A user whose email is already mapped to a username in another program cannot be re-added with a different username
* Archived or locked users can be re-added; archived users are moved to the home page, locked accounts are unlocked automatically

***

## Claim Messaging

* Error and success messages for the claim transaction flow are now specific to each scenario: missing parameters, invalid values, duplicate claims, pending state, confirmed state, and successful claim
