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

````