> ## 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.

# Update Profile

> Update an existing member's profile attributes.

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](/api-reference/members/get-member-profile) first. Custom attributes defined in your CPD schema can be updated the same way as standard fields.

<Note>
  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](/api-reference/members/create-profile#member-status-values) for the full status code reference.
</Note>

## Responses

<AccordionGroup>
  <Accordion title="200 — Success">
    | Path                       | Type    | Description                 |
    | -------------------------- | ------- | --------------------------- |
    | `results.IsSucessful`      | boolean | `true`                      |
    | `results.ErrorCode`        | string  | `000`                       |
    | `results.ExceptionMessage` | string  | `Success`                   |
    | `results.ReturnObject`     | boolean | `true` on successful update |
  </Accordion>
</AccordionGroup>

***

## 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`         |


## OpenAPI

````yaml POST /lbms-ingress/member/api/Member/UpdateProfileWithAttributes
openapi: 3.1.0
info:
  title: Loyalife LBMS API
  description: >-
    REST API for Loyalife's Loyalty Management System. Covers member management,
    OTP authentication, loyalty transactions, and points redemption.
  version: 1.0.0
  contact:
    name: Xoxoday Support
    email: support@xoxoday.com
servers:
  - url: https://loyalife-api.xoxoday.in
    description: Production
security:
  - bearerAuth: []
paths:
  /lbms-ingress/member/api/Member/UpdateProfileWithAttributes:
    post:
      tags:
        - Member Management
      summary: Update Profile
      description: Update an existing member's profile attributes.
      operationId: updateProfile
      parameters:
        - $ref: '#/components/parameters/pintProgramId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id
              properties:
                id:
                  type: integer
                  description: >-
                    Internal member ID from the `Id` field in Get Member Profile
                    response.
                  example: 12345
                data:
                  type: object
                  description: Profile fields to update. At least one attribute required.
                  properties:
                    email_id:
                      type: string
                      format: email
                      example: jane.smith@example.com
                    full_name:
                      type: string
                      example: Jane Smith
                    gender:
                      type: string
                      enum:
                        - M
                        - F
                        - O
                    dob:
                      type: string
                      format: date
                      example: '1990-06-15'
                    mobile_number:
                      type: string
                      example: '+919876543211'
                    address:
                      type: string
                      example: 456 New Street, Mumbai 400002
            example:
              id: 12345
              data:
                full_name: Jane Smith
                mobile_number: '+919876543211'
      responses:
        '200':
          description: Profile updated
          content:
            application/json:
              example:
                results:
                  IsSucessful: true
                  ErrorCode: '000'
                  ExceptionMessage: Success
                  ReturnObject: true
components:
  parameters:
    pintProgramId:
      name: pintProgramId
      in: query
      required: true
      description: Your loyalty program ID
      schema:
        type: integer
        example: 19
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT obtained from Generate Auth Token. Pass as `Authorization: bearer
        {token}`.

````