---
title: "Update a virtual account"
method: POST
path: "/v2/users/{userId}/virtual-accounts/{accountId}/update"
tags: ["Virtual Account"]
---

# Update a virtual account

`POST /v2/users/{userId}/virtual-accounts/{accountId}/update`

## Request

- Base URL: `https://production.hifibridge.com`
- URL: `https://production.hifibridge.com/v2/users/{userId}/virtual-accounts/{accountId}/update`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/hifibridge/apis/hifi-api/docs/v2/users/:userId/virtual-accounts/:accountId/update/post.ts> (a function with typed inputs; its response is checked against the schema)

Update an existing virtual account.

## Path parameters

- `userId` string, required
- `accountId` string, required

## Request body

- UpdateVirtualAccount
  - `sourceCurrency` 'usd', required
  - `destinationCurrency` 'usdc' | 'usdt', required: usdt is only supported on ethereum
  - `destinationChain` 'POLYGON' | 'ETHEREUM' | 'SOLANA' | 'BASE': Either `externalWalletId` or `destinationChain` must be provided.
  - `externalWalletId` string: Either `externalWalletId` or `destinationChain` must be provided.

## Response `200`

Success

- UpdateVirtualAccountObject
  - `message` string
  - `accountInfo` VirtualAccountObject
    - `id` string, uuid
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `userId` string, uuid
    - `source` object
      - `paymentRail` string[]
      - `currency` string
    - `destination` object
      - `chain` string
      - `currency` string
      - `walletAddress` string
      - `externalWalletId` string
    - `status` 'activated' | 'deactivated'
    - `microDeposits` object
      - `count` integer
      - `data` object[]
        - `createdAt` string, date-time
        - `currency` string
        - `amount` integer
        - `sourceBankInfo` InboundObject
          - `bankName` string
          - `senderName` string
          - `routingNumber` string
          - `accountNumber` string
          - `accountType` string
          - `fedBatchId` string
          - `imad` string
          - `omad` string
          - `traceNumber` string
          - `bankAddress` string
          - `description` string
          - `paymentRail` 'ach' | 'wire' | 'rtp'
    - `depositInstructions` object
      - `bankName` string
      - `bankAddress` string
      - `swiftCode` string
      - `beneficiary` object
        - `name` string
        - `address` string
      - `ach` object
        - `routingNumber` string
        - `accountNumber` string
      - `wire` object
        - `routingNumber` string
        - `accountNumber` string
      - `rtp` object
        - `routingNumber` string
        - `accountNumber` string
      - `reference` string
      - `depositBy` string, date-time
      - `instruction` string
    - `settlementRuleId` string, uuid

## Other responses

- `401`: Unauthorized
- `404`: Resource not found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/hifibridge/apis/hifi-api.md) - [All operations](https://skmtc.dev/hifibridge/apis/hifi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hifibridge/apis/hifi-api/revisions/74d9e530fbea?raw)
