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

# Update an Onramper Account Destination Wallet

> Update the destination, network, or fee configuration of a virtual account.

Use this endpoint to update the destination configuration of an existing Onramper Account. You can change the destination stablecoin, blockchain network, wallet address, and integrator fee. All fields in the request body are optional — include only the fields you want to change. Future deposits will use the updated destination configuration immediately after the update.


## OpenAPI

````yaml openapi/spherepay.yaml PATCH /v2/virtual-account/{virtualAccountId}
openapi: 3.0.0
info:
  title: ''
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.spherepay.co
    description: Production
security:
  - bearer: []
tags: []
paths:
  /v2/virtual-account/{virtualAccountId}:
    patch:
      summary: Update a Virtual Account
      description: >-
        Update the destination, network, or fee configuration of a virtual
        account.
      parameters:
        - name: virtualAccountId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVirtualAccountRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualAccountResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
              examples:
                Bad Request:
                  summary: Bad Request
                  value:
                    status: 400
                    detail: Invalid request parameters
                    code: address/invalid
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
              examples:
                Not Found:
                  summary: Not Found
                  value:
                    status: 404
                    detail: Resource not found
                    code: resource/not-found
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
        '422':
          description: Unprocessable Entity - Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
              examples:
                Validation Error:
                  summary: Validation Error
                  value:
                    status: 422
                    detail: Validation failed
                    code: validation/failed
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
                    errors:
                      - detail: Invalid email format
                        pointer: /email
                      - detail: Name is required
                        pointer: /name
components:
  schemas:
    UpdateVirtualAccountRequestDto:
      type: object
      properties:
        destinationCurrency:
          description: >-
            The crypto currency deposited funds are converted into. See
            [Supported Rails & Currencies](/concepts/transfers/supported-rails).
          example: usdc
          type: string
          enum:
            - usdc
            - usdt
            - eurc
        network:
          description: >-
            The blockchain network the destination wallet is on. See [Supported
            Rails & Currencies](/concepts/transfers/supported-rails).
          example: ethereum
          type: string
          enum:
            - arbitrum
            - avalanche
            - base
            - ethereum
            - polygon
            - sol
            - tron
        walletAddress:
          description: >-
            The on-chain wallet address where converted crypto is sent. Must be
            valid for the selected network.
          example: '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97'
          type: string
        integratorFeeBps:
          description: >-
            Integrator fee in basis points (1 bps = 0.01%). Defaults to 0 if not
            provided.
          example: '100'
          type: string
      required:
        - destinationCurrency
        - network
        - walletAddress
    VirtualAccountResponseDto:
      type: object
      properties:
        id:
          description: Unique identifier for the virtual account.
          example: virtualAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
          type: string
        customer:
          description: The customer ID who owns the virtual account.
          example: customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7
          type: string
        active:
          description: >-
            Whether the virtual account is currently active and accepting
            deposits.
          example: true
          type: boolean
        depositInstructions:
          description: >-
            Bank account details that depositors should use to send fiat funds
            into the virtual account.
          type: object
          properties:
            currency:
              description: >-
                The fiat currency accepted for deposits into the virtual
                account.
              example: usd
              type: string
              enum:
                - usd
                - eur
            bankName:
              description: Name of the bank holding the virtual account.
              example: Lead Bank
              type: string
            bankAddress:
              description: Address of the bank holding the virtual account.
              example: 1801 Main St, Kansas City, MO 64108
              type: string
            bankAccountNumber:
              description: >-
                Bank account number for deposits (USD accounts). Null for EUR
                accounts.
              example: '9876543210'
              type: string
              nullable: true
            bankRoutingNumber:
              description: >-
                Bank routing number for deposits (USD accounts). Null for EUR
                accounts.
              example: '021000089'
              type: string
              nullable: true
            bankBeneficiaryName:
              description: Name of the beneficiary on the account.
              example: Bridge Financial Inc.
              type: string
            bankBeneficiaryAddress:
              description: Address of the beneficiary on the account.
              example: 123 Finance St, San Francisco, CA 94105
              type: string
            iban:
              description: IBAN for deposits (EUR accounts). Null for USD accounts.
              example: DE89370400440532013000
              type: string
              nullable: true
            bic:
              description: >-
                BIC/SWIFT code for deposits (EUR accounts). Null for USD
                accounts.
              example: COBADEFFXXX
              type: string
              nullable: true
          required:
            - currency
            - bankName
            - bankAddress
            - bankAccountNumber
            - bankRoutingNumber
            - bankBeneficiaryName
            - bankBeneficiaryAddress
            - iban
            - bic
        destination:
          description: The crypto destination where converted funds are sent after deposit.
          type: object
          properties:
            currency:
              description: The crypto currency deposited funds are converted into.
              example: usdc
              type: string
              enum:
                - usdc
                - usdt
                - eurc
            walletAddress:
              description: The on-chain wallet address where converted crypto is sent.
              example: '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97'
              type: string
            network:
              description: The blockchain network the destination wallet is on.
              example: ethereum
              type: string
              enum:
                - arbitrum
                - avalanche
                - base
                - ethereum
                - polygon
                - sol
                - tron
          required:
            - currency
            - walletAddress
            - network
        fee:
          description: >-
            Fee breakdown for the virtual account, including integrator and
            platform fees.
          type: object
          properties:
            totalBpsRate:
              description: >-
                Total fee rate in basis points (integrator + platform). 1 bps =
                0.01%.
              example: '130'
              type: string
            integratorFee:
              description: Fee charged by the integrator.
              type: object
              properties:
                bpsRate:
                  description: Integrator fee rate in basis points (1 bps = 0.01%).
                  example: '100'
                  type: string
              required:
                - bpsRate
            platformFee:
              description: Fee charged by the platform.
              type: object
              properties:
                bpsRate:
                  description: Platform fee rate in basis points (1 bps = 0.01%).
                  example: '30'
                  type: string
              required:
                - bpsRate
          required:
            - totalBpsRate
            - integratorFee
            - platformFee
        created:
          description: Timestamp when the virtual account was created (ISO 8601).
          example: '2025-01-15T10:30:00.000Z'
          type: string
        updated:
          description: Timestamp when the virtual account was last updated (ISO 8601).
          example: '2025-01-15T12:00:00.000Z'
          type: string
      required:
        - id
        - active
        - depositInstructions
        - destination
        - created
        - updated
    ProblemDetailsDto:
      type: object
      properties:
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        code:
          type: string
        errors:
          type: array
          items:
            type: object
            properties:
              detail:
                type: string
              pointer:
                type: string
              parameter:
                type: string
              header:
                type: string
            required:
              - detail
        correlationId:
          type: string
      required:
        - status
        - detail
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````