Transfers points from one customer account to another customer account by validating the OTP issued for the points transfer.
- Rate limiter controls the number of incoming and outgoing traffic of a network
- Authentication verifies the identity of the current user or integration.
See Introduction > Authentication (Merchant Setup on Admin Portal) for more details
Body Parameter
Parameter | Type | Description |
---|---|---|
pointsToBeTransferred | Integer | Number of points to be transferred. |
programId | Integer | Program ID from which points has to be transferred. |
fromCustomerIdentifier | Object | Details of source customer - customer that wants to transfer points. |
toCustomerIdentifier | Object | Details of destination customer - customer to whom the points have to be transferred. |
type | String | Customer identifier type. |
value | String | The value of the specified identifier. |
groupProgramTransfer | Boolean | Indicates whether the transfer is part of a group program. (true/false) |
code | String | Pass the OTP received by the fromCustomer for the current points transfer. To issue OTP, use either |
{
"pointsTobeTransferred":1000,
"groupProgramTransfer": "false",
"programId": 973,
"fromCustomerIdentifier": {
"type": "MOBILE",
"value": "9148574269"
},
"toCustomerIdentifier": {
"type": "ID",
"value": "565039506"
}
}
Response Parameter
Parameter | Type | Description |
---|---|---|
toEntityId | Integer | Unique ID of the recipient customer |
toEntityType | String | Type of recipient entity |
fromEntityId | Integer | Unique ID of the sender customer |
fromEntityType | String | Type of sender entity |
pointsTransferDate | String | Timestamp when transfer occurred in format: YYYY-MM-DD HH:MM:SS |
pointsTransferred | Float | Total number of points transferred |
transferId | Integer | Unique transaction ID for this transfer |
transferType | String | Transfer operation type (e.g: "DEDUCTION" for sender side) |
-transferredFrom | Object | Details about the sender |
-userId | Integer | Sender's user ID |
-firstName | String | Sender's first name |
-lastName | String | Sender's last name |
transferredTo | Object | Details about the recipient |
-userId | Integer | Recipient's user ID |
-firstName | String | Recipient's first name |
-lastName | String | Recipient's last name |
-notes | String | Additional notes about the transfer |
-programName | String | Name of the loyalty program used |
pointsTransferBreakupByEarningPrograms | Object | Breakdown of points by sub-program |
-programId | Integer | ID of the earning sub-program |
-deductedPoints | Float | Points deducted from this program |
-programCurrentPoints | Integer | Remaining points balance in this program |
warnings | Array | List of non-critical warnings (if any) |
errors | Array | List of errors if transfer failed (empty on success) |
{
"data": [
{
"toEntityId": 565039506,
"toEntityType": "CUSTOMER",
"fromEntityId": 565039505,
"fromEntityType": "CUSTOMER",
"pointsTransferDate": "2025-06-02 07:24:58",
"pointsTransferred": 2000.0,
"transferId": 1037890,
"transferType": "DEDUCTION",
"transferredFrom": {
"userId": 565039505,
"firstName": "",
"lastName": ""
},
"transferredTo": {
"userId": 565039506,
"firstName": "Madhurima",
"lastName": "Basak"
},
"notes": "",
"programName": "DocDemoDefaultProgram",
"pointsTransferBreakupByEarningPrograms": [
{
"programId": 973,
"deductedPoints": 1000.000,
"programCurrentPoints": 7500
}
]
}
],
"warnings": [],
"errors": []
}
API specific error code
Error Code | Description | Reason |
---|---|---|
3316 | group redemption action executed for non group redemption payload | the value in groupProgramTransfer parameter passed as "true" when identifier belong to non group entity |
807 | Redemptions points not divisible | Only whole numbers are valid in pointsTobeTransferred parameter |
885 | Invalid program id passed | Invalid or missing programId |
8013 | Lookup,Invalid identifier passed | Invalid or missing "type" in fromCustomerIdentifier or toCustomerIdentifier parameter |
8015 | Customer not found for the given identifiers | Invalid or missing "value" in fromCustomerIdentifier or toCustomerIdentifier parameter |