Loyalty
Rebalance loyalty points
A service called RebalanceLoyaltyPoints can be used together with our Loyalty EVA Handler.
The service is mainly used for the following:
- Process a large volume of user loyalty point rebalancing at once;
- Removing or keeping a users old balance of loyalty points;
- Deposit new points while specifying an expiration span (if no specific expiration span is specified, the loyalty program expiration date will be automatically applied).
Loyalty points mutated stencil
A stencil called LoyaltyPointsMutated can be used to keep your customers informed about any loyalty point changes on their accounts.
Here is a sample where we:
- Kept the users pending points
true
- Added a new points balance
300
- Applied the programs expiration to the new points balance
true
{
"LoyaltyProgramID": 1,
"UserID": 49,
"KeepPendingPoints": true,
"NewPointBalance": 300,
"ApplyProgramExpiration": true
}
{}
Loyalty balance & mutations
The GetUserLoyaltyBalance service is used to:
- Check a users current balance of loyalty points pertaining to a certian loyalty program
- Get an overview of loyalty points movement (how points were gained/deducted, when (date), and the type). Whereas type would be one of the enum values:
Here is a sample of how a request and response would look like:
{
"LoyaltyProgramID": "1",
"UserID": "49"
}
{
"LoyaltyProgramID": 1,
"LoyaltyProgramName": "NB loyalty",
"CurrentBalance": 300,
"IsExternalProvider": false,
"Mutations": [
{
"Type": 0,
"Points": 50
},
{
"Type": 0,
"Points": 10
},
{
"Type": 0,
"Points": 20
},
{
"Type": 0,
"Points": 10
},
{
"Type": 2,
"Points": 10
},
{
"Type": 0,
"Points": 20
},
{
"Type": 0,
"Points": 10
},
{
"Type": 4,
"Points": 110
},
{
"Type": 0,
"Points": 200
},
{
"Type": 4,
"Points": 200
},
{
"Type": 0,
"Points": 300
},
{
"Type": 4,
"Points": 300
},
{
"Type": 0,
"Points": 300
},
{
"Type": 4,
"Points": 300
},
{
"Type": 0,
"Points": 300,
"ExpireAfter": "2023-10-30T00:00:00Z"
}
]
}
Useful link(s)
Deposit and withdraw loyalty points
The services DepositLoyaltyPoints and WithdrawLoyaltyPoints can be used to influence just that.
Here is a sample for depositing:
{
"LoyaltyProgramID": 1,
"UserID": 49,
"Points": 20
}
{}
Here is a sample for withdrawing:
{
"LoyaltyProgramID": 1,
"UserID": 49,
"Points": 10
}
{}