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

# Remove Beneficiary

> Removes an existing beneficiary of the user in the PPI system.
- If `bene_instrument_id` is provided, only the specified instrument is removed from the beneficiary.
- If `bene_instrument_id` is not provided, the entire beneficiary along with all its `bene_instruments` is removed.




## OpenAPI

````yaml /openapi/ppi/ppi.yaml delete /ppi/user/bene/remove
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/bene/remove:
    delete:
      tags:
        - Beneficiary Management
      summary: Remove Beneficiary
      description: >
        Removes an existing beneficiary of the user in the PPI system.

        - If `bene_instrument_id` is provided, only the specified instrument is
        removed from the beneficiary.

        - If `bene_instrument_id` is not provided, the entire beneficiary along
        with all its `bene_instruments` is removed.
      operationId: removePPIBeneficiary
      parameters:
        - $ref: '#/components/parameters/global_x_api_version'
      requestBody:
        description: >-
          Request parameters to remove a beneficiary or a beneficiary instrument
          for a user.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - user_id
                - bene_id
              properties:
                user_id:
                  type: string
                  description: >-
                    Unique identifier for the user, as provided by you during
                    PPI user creation.
                  example: USER827364
                  minLength: 1
                  maxLength: 50
                bene_id:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    Unique identifier for the beneficiary, as provided by you
                    during beneficiary creation.
                  example: BENE28448
                bene_instrument_id:
                  type: string
                  minLength: 1
                  maxLength: 50
                  description: >-
                    Unique identifier for the instrument, as provided by you
                    during beneficiary creation. If not provided, the entire
                    beneficiary will be removed.
                  example: INST194947
            examples:
              removeInstrument:
                summary: Request to remove a specific instrument
                value:
                  user_id: USER827364
                  bene_id: BENE28448
                  bene_instrument_id: INST194947
              removeBeneficiary:
                summary: Request to remove the entire beneficiary
                value:
                  user_id: USER827364
                  bene_id: BENE28448
      responses:
        '200':
          description: Success response for removing a beneficiary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  user_id:
                    type: string
                    description: >-
                      Unique identifier for the user, as provided by you during
                      PPI user creation.
                    example: USER827364
                  bene_id:
                    type: string
                    description: >-
                      Unique identifier for the beneficiary, as provided by you
                      during beneficiary creation.
                    example: BENE28448
                  instrument:
                    description: >-
                      Instrument removed from the beneficiary (if provided in
                      request).
                    oneOf:
                      - title: Bank Account
                        type: object
                        properties:
                          bene_instrument_id:
                            type: string
                            description: >-
                              Unique identifier for the instrument, as provided
                              by you during beneficiary creation.
                            example: INST194947
                          type:
                            type: string
                            description: Type of instrument.
                            example: BANK_ACCOUNT
                          bank_bank_account_number:
                            type: string
                            description: Masked bank account number.
                            example: '3749378903'
                          ifsc:
                            type: string
                            description: IFSC code of the bank branch.
                            example: HDFC0001234
                          status:
                            type: string
                            description: Status of the instrument.
                            example: REMOVED
                          verification_status:
                            type: string
                            description: Verification status of the instrument.
                            example: VERIFIED
                          cf_bene_instrument_id:
                            type: string
                            description: Cashfree-generated unique ID for the instrument.
                            example: '8324782642946'
                      - title: VPA
                        type: object
                        properties:
                          bene_instrument_id:
                            type: string
                            description: >-
                              Unique identifier for the instrument, as provided
                              by you during beneficiary creation.
                            example: INST194947
                          type:
                            type: string
                            description: Type of instrument.
                            example: VPA
                          vpa:
                            type: string
                            description: Virtual Payment Address (UPI ID).
                            example: example@upi
                          status:
                            type: string
                            description: Status of the instrument.
                            example: REMOVED
                          verification_status:
                            type: string
                            description: Verification status of the instrument.
                            example: VERIFIED
                          cf_bene_instrument_id:
                            type: string
                            description: Cashfree-generated unique ID for the instrument.
                            example: '8324782642946'
                  status:
                    type: string
                    description: |
                      Status of the beneficiary. Possible values:
                      - ACTIVE
                      - REMOVED
                    example: ACTIVE
              examples:
                INSTRUMENT_REMOVED:
                  summary: Success response for instrument removal
                  value:
                    user_id: USER827364
                    bene_id: BENE28448
                    instrument:
                      bene_instrument_id: INST194947
                      type: BANK_ACCOUNT
                      bank_bank_account_number: '3749378903'
                      ifsc: HDFC0001234
                      status: REMOVED
                      verification_status: VERIFIED
                      cf_bene_instrument_id: '8324782642946'
                    status: ACTIVE
                BENEFICIARY_REMOVED:
                  summary: Success response for beneficiary removal
                  value:
                    user_id: USER827364
                    bene_id: BENE28448
                    status: REMOVED
        '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
                beneIdMissing:
                  summary: beneficiary ID missing
                  value:
                    message: bene id is missing
                    code: bene_id_missing
                    type: validation_error
                userBeneMismatch:
                  summary: User-Beneficiary mismatch
                  value:
                    message: beneficiary does not belong to provided user
                    code: bene_id_value_invalid
                    type: validation_error
                beneInstrumentMismatch:
                  summary: Beneficiary-Instrument mismatch
                  value:
                    message: instrument does not belong to provided beneficiary
                    code: instrument_id_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'
        '403':
          $ref: '#/components/responses/Response403'
        '404':
          description: Not found - Beneficiary or User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StructuredErrorResponse'
              examples:
                beneNotFound:
                  summary: Beneficiary not found
                  value:
                    code: beneficiary_not_found
                    type: invalid_request_error
                    message: The beneficiary with given id not found
                userNotFound:
                  summary: User not found
                  value:
                    code: user_id_not_found
                    type: invalid_request_error
                    message: The user_id with given id not found
                instrumentNotFound:
                  summary: Instrument not found
                  value:
                    code: instrument_id_not_found
                    type: invalid_request_error
                    message: The bene_instrument_id with given id not found
        '429':
          $ref: '#/components/responses/Response429'
        '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:
    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
  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
    Response403:
      description: Forbidden - Access denied.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StructuredErrorResponse'
          examples:
            ipNotWhitelisted:
              summary: IP not whitelisted
              value:
                code: ip_not_whitelisted
                type: authentication_error
                message: Authentication error (IP not whitelisted)
    Response429:
      description: Too Many Requests - Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StructuredErrorResponse'
          examples:
            internalError:
              summary: Internal server error
              value:
                code: too_many_requests_per_operation
                type: rate_limit_error
                message: Rate limit exceeded. Please try again after some time
    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).

````