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

# Edit VBA

> Update an existing Virtual Bank Account name



## OpenAPI

````yaml PUT /pg/vba/{virtual_account_id}/
openapi: 3.0.0
info:
  title: Eximpe Payment Gateway API
  description: >-
    API for payment processing and order management through Eximpe payment
    gateway. This specification includes v1, v2, and v3 API versions.
  license:
    name: Proprietary
  version: 2.0.0
servers:
  - url: https://api-pacb-uat.eximpe.com
    description: Payment Gateway Sandbox URL
security:
  - clientAuth: []
    clientSecretAuth: []
    apiVersionHeader: []
tags:
  - name: Card Tokens
  - name: Merchants
  - name: Orders
  - name: Payment Links
  - name: Payments
  - name: Refunds
  - name: Settlements
  - name: Subscriptions
paths:
  /pg/vba/{virtual_account_id}/:
    put:
      tags:
        - Virtual Bank Accounts
      summary: Edit VBA
      description: >-
        Update an existing Virtual Bank Account for the authenticated merchant.
        Editable fields: `virtual_account_name`, `remitter_lock_details`. Only
        provided fields are forwarded; omitted fields are left unchanged. The
        remitter-lock shape matches Create VBA.
      operationId: v2_put_pg_vba_virtual_account_id_
      parameters:
        - name: virtual_account_id
          in: path
          description: Virtual account ID of the VBA to update.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                virtual_account_name:
                  type: string
                  description: Display name for the VBA.
                remitter_lock_details:
                  type: object
                  nullable: true
                  description: >-
                    Optional. Replaces the existing remitter lock with the
                    supplied allowed-remitters list. Same shape as Create VBA.
                  properties:
                    allowed_remitters:
                      type: array
                      items:
                        type: object
                        required:
                          - account_number
                          - ifsc
                        properties:
                          account_number:
                            type: string
                            minLength: 9
                            maxLength: 30
                            description: Remitter bank account number (9–30 chars).
                            example: '26291800001191'
                          ifsc:
                            type: string
                            description: Remitter bank IFSC.
                            example: YESB0000262
            example:
              virtual_account_name: Updated Trade Name
              remitter_lock_details:
                allowed_remitters:
                  - account_number: '26291800001191'
                    ifsc: YESB0000262
      responses:
        '200':
          description: VBA updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: VBA updated successfully
                  data:
                    type: object
                    properties:
                      uid:
                        type: string
                        example: 550e8400-e29b-41d4-a716-446655440000
                      virtual_account_id:
                        type: string
                        example: a1b2c3d4
                      vba_account_name:
                        type: string
                        example: Updated Trade Name
                      vba_bank_code:
                        type: string
                        example: UTIB
                      vba_account_number:
                        type: string
                        example: '12345678901234'
                      vba_ifsc:
                        type: string
                        example: UTIB0001234
                      vba_status:
                        type: string
                        example: ACTIVE
                      remitter_lock_details:
                        type: object
                        nullable: true
                        description: >-
                          Canonical remitter lock after the update. `null` when
                          no lock is set.
                        properties:
                          allowed_remitters:
                            type: array
                            items:
                              type: object
                              properties:
                                account_number:
                                  type: string
                                  example: '26291800001191'
                                ifsc:
                                  type: string
                                  example: YESB0000262
              example:
                success: true
                message: VBA updated successfully
                data:
                  uid: 550e8400-e29b-41d4-a716-446655440000
                  virtual_account_id: a1b2c3d4
                  vba_account_name: Updated Trade Name
                  vba_bank_code: UTIB
                  vba_account_number: '12345678901234'
                  vba_ifsc: UTIB0001234
                  vba_status: ACTIVE
                  remitter_lock_details:
                    allowed_remitters:
                      - account_number: '26291800001191'
                        ifsc: YESB0000262
        '400':
          description: >-
            Validation error — invalid remitter lock details or no editable
            fields provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1_ErrorResponse'
        '401':
          description: Merchant account not identified
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1_ErrorResponse'
        '403':
          description: VBA feature not enabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1_ErrorResponse'
        '404':
          description: VBA not found for this merchant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1_ErrorResponse'
        '500':
          description: Failed to update VBA details or configuration error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1_ErrorResponse'
        '502':
          description: Payment gateway API error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1_ErrorResponse'
      security:
        - clientAuth: []
          clientSecretAuth: []
          merchantAuth: []
          apiVersionHeader: []
components:
  schemas:
    v1_ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
          description: >-
            Indicates if the request was successful. Always false for error
            responses.
        error:
          $ref: '#/components/schemas/v1_ErrorDetails'
    v1_ErrorDetails:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Error code (e.g., ERR_ORDER_002)
        message:
          type: string
          description: Error message
        details:
          type: object
          description: Detailed validation error information with field-specific errors
          additionalProperties:
            type: string
            description: Error message for the specific field
  securitySchemes:
    clientAuth:
      type: apiKey
      name: X-Client-ID
      in: header
      description: >-
        **Client Application ID** - Your unique application identifier used to
        authenticate API requests. You can find your Client ID in the Developer
        Settings section of the merchant dashboard.
      x-displayName: Client ID
      x-example: your-client-id
    clientSecretAuth:
      type: apiKey
      name: X-Client-Secret
      in: header
      description: >-
        **Client Secret Key** - Your secret key used alongside the Client ID for
        secure authentication. Keep this confidential and never expose it in
        client-side code. Available in the Developer Settings section of the
        merchant dashboard.
      x-displayName: Client Secret
      x-example: your-client-secret
    apiVersionHeader:
      type: apiKey
      name: X-API-Version
      in: header
      description: >-
        **API Version** - Specifies which version of the API to use (e.g.,
        '1.X.X', '2.X.X', or '3.X.X'). This header allows you to control which
        API version your integration uses. Default version information is
        available in the Developer Settings.
      x-displayName: API Version
      x-example: 3.0.0
    merchantAuth:
      type: apiKey
      name: X-Merchant-ID
      in: header
      description: >-
        **Merchant Identifier** - The unique ID for the merchant account. This
        is required for PSP (Payment Service Provider) merchants who manage
        multiple merchant accounts. You can find merchant IDs in the Merchant
        Management section of the dashboard.
      x-displayName: Merchant ID
      x-example: your-merchant-id

````