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

# Update User

> Updates user details in the PPI system. Only the fields provided in the request body will be updated; 
all other user fields remain unchanged.




## OpenAPI

````yaml /openapi/ppi/ppi.yaml post /ppi/user/update
openapi: 3.0.3
info:
  title: PPI Wallet API
  description: >-
    API for managing PPI (Prepaid Payment Instrument) wallets and sub-wallets,
    including credit and debit operations.
  version: 1.0.0
  contact:
    name: PPI Service Team
    email: support@cashfree.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://api.cashfree.com
    description: Production server.
  - url: https://sandbox.cashfree.com
    description: Sandbox server.
security:
  - XClientID: []
    XClientSecret: []
tags:
  - name: Wallet Management
    description: Operations related to PPI wallet management.
  - name: User Management
    description: Operations related to user management within the PPI system.
  - name: Beneficiary Management
    description: Operations related to beneficiary management for users.
  - name: KYC Management
    description: Operations related to KYC (Know Your Customer) management.
  - name: Transfers
    description: Operations related to transfer.
paths:
  /ppi/user/update:
    post:
      tags:
        - User Management
      summary: Update User
      description: >
        Updates user details in the PPI system. Only the fields provided in the
        request body will be updated; 

        all other user fields remain unchanged.
      operationId: updatePPIUser
      parameters:
        - $ref: '#/components/parameters/global_x_api_version'
      requestBody:
        description: Request parameters to update an existing user's details or status.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserRequest'
      responses:
        '200':
          description: Success response for updating user details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUserResponse'
              examples:
                SUCCESS_BLOCKED:
                  summary: Successful status update to BLOCKED
                  value:
                    user_id: USER827364
                    first_name: John
                    last_name: Doe
                    phone: '9876543210'
                    email: john.doe@example.com
                    status: BLOCKED
                    cf_user_id: '859473832123456789'
                SUCCESS_ACTIVE:
                  summary: Successful status update to ACTIVE
                  value:
                    user_id: USER827364
                    first_name: John
                    last_name: Doe
                    phone: '9876543210'
                    email: john.doe@example.com
                    status: ACTIVE
                    cf_user_id: '859473832123456789'
        '400':
          description: Bad request - Invalid input parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StructuredErrorResponse'
              examples:
                userIdMissing:
                  summary: user ID missing
                  value:
                    message: user id is missing
                    code: user_id_missing
                    type: validation_error
                statusMissing:
                  summary: Status missing
                  value:
                    message: status parameter is missing
                    code: status_missing
                    type: validation_error
                invalidStatus:
                  summary: Invalid status value
                  value:
                    message: status invalid value
                    code: status_value_invalid
                    type: validation_error
                statusAlreadyActive:
                  summary: User already active
                  value:
                    message: User is already active
                    code: status_value_invalid
                    type: validation_error
                statusAlreadyBlocked:
                  summary: User already blocked
                  value:
                    message: User is already blocked
                    code: status_value_invalid
                    type: validation_error
                statusTransitionNotAllowed:
                  summary: Status transition not allowed
                  value:
                    message: Status transition is not allowed
                    code: status_value_invalid
                    type: validation_error
                missingClientId:
                  summary: Missing client ID
                  value:
                    message: x-client-id is missing in the request
                    code: x-client-id_missing
                    type: validation_error
                missingClientSecret:
                  summary: Missing client secret
                  value:
                    message: x-client-secret is missing in the request
                    code: x-client-secret_missing
                    type: validation_error
        '401':
          $ref: '#/components/responses/Response401'
        '404':
          description: Not found - User ID not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_user_id:
                  summary: user_id not found
                  value:
                    code: user_id_not_found
                    type: invalid_request_error
                    message: The user_id with given id not found
        '500':
          $ref: '#/components/responses/Response500'
      security:
        - XClientID: []
          XClientSecret: []
components:
  parameters:
    global_x_api_version:
      description: API version to be used. Format is in YYYY-MM-DD.
      name: x-api-version
      in: header
      required: true
      schema:
        type: string
        default: '2025-11-01'
        example: '2025-11-01'
      example: '2025-11-01'
  schemas:
    UpdateUserRequest:
      type: object
      required:
        - user_id
        - status
      properties:
        user_id:
          type: string
          description: >-
            Unique identifier for the user, as provided by you during PPI user
            creation.
          example: USER827364
        status:
          type: string
          description: >
            New status to be assigned to the user account. Supported values:

            - ACTIVE : The user account is authorised to perform transactions.
            This status can be set when the current user status is BLOCKED.

            - BLOCKED : The user account is restricted from performing any
            transactions. This status can be set when the current user status is
            ACTIVE.
          example: BLOCKED
    CreateUserResponse:
      type: object
      properties:
        user_id:
          type: string
          description: >-
            Unique identifier for the user, as provided by you during PPI user
            creation.
          example: USER827364
        first_name:
          type: string
          description: First name of the user.
          example: John
        last_name:
          type: string
          description: Last name of the user.
          example: Doe
        phone:
          type: string
          description: Phone number of the user without country code.
          example: '9876543210'
        email:
          type: string
          description: Email address of the user.
          example: john.doe@example.com
        status:
          type: string
          description: |
            Current status of the user account. Possible values:
            - ACTIVE
            - BLOCKED
          example: ACTIVE
        cf_user_id:
          type: string
          description: Unique identifier of the user generated by Cashfree.
          example: '859473832123456789'
    StructuredErrorResponse:
      type: object
      properties:
        type:
          type: string
          description: A broad category of the error.
          example: internal_error
        code:
          type: string
          description: A machine-readable error code specific to the issue.
          example: internal_server_error
        message:
          type: string
          description: >-
            A message providing more details about the error, dynamic based on
            the specific issue.
          example: Internal server error
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Specific error code identifier.
          example: invalid_parameter_value
        type:
          type: string
          description: Error type or category.
          example: validation_error
        message:
          type: string
          description: Human-readable error message.
          example: Invalid request parameter value provided
        occurred_at:
          type: string
          format: date-time
          description: Timestamp when the error occurred.
          example: '2025-05-01T12:00:00Z'
        details:
          type: object
          nullable: true
          description: Additional error details.
          additionalProperties:
            type: string
  responses:
    Response401:
      description: Unauthorised - Invalid or missing authentication.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StructuredErrorResponse'
          examples:
            invalidCredentials:
              summary: Invalid client credentials
              value:
                code: authentication_failed
                type: authentication_error
                message: Invalid client ID and client secret combination
    Response500:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StructuredErrorResponse'
          examples:
            internalError:
              summary: Internal server error
              value:
                code: internal_server_error
                type: internal_error
                message: An internal error occurred while processing the request
  securitySchemes:
    XClientID:
      type: apiKey
      in: header
      name: x-client-id
      description: >-
        Your unique client identifier issued by Cashfree. You can find this in
        your [Merchant
        Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).
    XClientSecret:
      type: apiKey
      in: header
      name: x-client-secret
      description: >-
        The secret key associated with your client ID. Use this to authenticate
        your API requests. You can find this in your [Merchant
        Dashboard](https://merchant.cashfree.com/merchants/landing?env=prod).

````