Update Profile
curl --request POST \
--url https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": 12345,
"data": {
"full_name": "Jane Smith",
"mobile_number": "+919876543211"
}
}
'import requests
url = "https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes"
payload = {
"id": 12345,
"data": {
"full_name": "Jane Smith",
"mobile_number": "+919876543211"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: 12345, data: {full_name: 'Jane Smith', mobile_number: '+919876543211'}})
};
fetch('https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 12345,
'data' => [
'full_name' => 'Jane Smith',
'mobile_number' => '+919876543211'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes"
payload := strings.NewReader("{\n \"id\": 12345,\n \"data\": {\n \"full_name\": \"Jane Smith\",\n \"mobile_number\": \"+919876543211\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": 12345,\n \"data\": {\n \"full_name\": \"Jane Smith\",\n \"mobile_number\": \"+919876543211\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 12345,\n \"data\": {\n \"full_name\": \"Jane Smith\",\n \"mobile_number\": \"+919876543211\"\n }\n}"
response = http.request(request)
puts response.read_body{
"results": {
"IsSucessful": true,
"ErrorCode": "000",
"ExceptionMessage": "Success",
"ReturnObject": true
}
}Member Management
Update Profile
Update an existing Loyalife member’s profile attributes via the API.
POST
/
lbms-ingress
/
member
/
api
/
Member
/
UpdateProfileWithAttributes
Update Profile
curl --request POST \
--url https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": 12345,
"data": {
"full_name": "Jane Smith",
"mobile_number": "+919876543211"
}
}
'import requests
url = "https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes"
payload = {
"id": 12345,
"data": {
"full_name": "Jane Smith",
"mobile_number": "+919876543211"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: 12345, data: {full_name: 'Jane Smith', mobile_number: '+919876543211'}})
};
fetch('https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 12345,
'data' => [
'full_name' => 'Jane Smith',
'mobile_number' => '+919876543211'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes"
payload := strings.NewReader("{\n \"id\": 12345,\n \"data\": {\n \"full_name\": \"Jane Smith\",\n \"mobile_number\": \"+919876543211\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": 12345,\n \"data\": {\n \"full_name\": \"Jane Smith\",\n \"mobile_number\": \"+919876543211\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://loyalife-api.xoxoday.in/lbms-ingress/member/api/Member/UpdateProfileWithAttributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 12345,\n \"data\": {\n \"full_name\": \"Jane Smith\",\n \"mobile_number\": \"+919876543211\"\n }\n}"
response = http.request(request)
puts response.read_body{
"results": {
"IsSucessful": true,
"ErrorCode": "000",
"ExceptionMessage": "Success",
"ReturnObject": true
}
}Updates one or more profile fields for an existing member. Only the fields you include in the
data object are changed — omitted fields are left unchanged. The internal id (not RelationReference) is required as the update key; obtain it from Get Member Profile first. Custom attributes defined in your CPD schema can be updated the same way as standard fields.
At least one
data.* field must be present. Custom attributes from your CPD schema can also be included under data. Member status (Active, Suspended, etc.) can be managed via the Loyalife Admin portal or via API — see Create Profile for the full status code reference.Responses
200 — Success
200 — Success
| Path | Type | Description |
|---|---|---|
results.IsSucessful | boolean | true |
results.ErrorCode | string | 000 |
results.ExceptionMessage | string | Success |
results.ReturnObject | boolean | true on successful update |
Error Codes
| Code | ExceptionMessage | Cause |
|---|---|---|
000 | Success | Profile updated successfully |
E202 | Member nonexistent | Member with the provided internal id does not exist |
E204 | Record updation failed — cancelled member | Cannot update a cancelled member |
E205 | Duplicate Email: The email already exists | Updated email_id already belongs to another member |
E206 | Duplicate Mobile: The mobile number already exists | Updated mobile_number already belongs to another member |
103 | Member does not exist | Member not found in the program |
104 | Failed to update member profile | Update operation failed |
113 | Member is cancelled | Member account has been cancelled |
999 | Bad request | Malformed payload or missing internal member id |
Authorizations
JWT obtained from Generate Auth Token. Pass as Authorization: bearer {token}.
Query Parameters
Your loyalty program ID
Example:
19
Body
application/json
Response
200 - application/json
Profile updated
⌘I