Skip to main content
Update a Virtual Account
curl --request PATCH \
  --url https://api.spherepay.co/v2/virtual-account/{virtualAccountId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "destinationCurrency": "usdc",
  "network": "ethereum",
  "walletAddress": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97",
  "integratorFeeBps": "100"
}
'
{
  "id": "virtualAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "active": true,
  "depositInstructions": {
    "currency": "usd",
    "bankName": "Lead Bank",
    "bankAddress": "1801 Main St, Kansas City, MO 64108",
    "bankAccountNumber": "9876543210",
    "bankRoutingNumber": "021000089",
    "bankBeneficiaryName": "Bridge Financial Inc.",
    "bankBeneficiaryAddress": "123 Finance St, San Francisco, CA 94105",
    "iban": "DE89370400440532013000",
    "bic": "COBADEFFXXX"
  },
  "destination": {
    "currency": "usdc",
    "walletAddress": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97",
    "network": "ethereum"
  },
  "created": "2025-01-15T10:30:00.000Z",
  "updated": "2025-01-15T12:00:00.000Z",
  "customer": "customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7",
  "fee": {
    "totalBpsRate": "130",
    "integratorFee": {
      "bpsRate": "100"
    },
    "platformFee": {
      "bpsRate": "30"
    }
  }
}
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.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

virtualAccountId
string
required

Body

application/json
destinationCurrency
enum<string>
required

The crypto currency deposited funds are converted into. See Supported Rails & Currencies.

Available options:
usdc,
usdt,
eurc
Example:

"usdc"

network
enum<string>
required

The blockchain network the destination wallet is on. See Supported Rails & Currencies.

Available options:
arbitrum,
avalanche,
base,
ethereum,
polygon,
sol,
tron
Example:

"ethereum"

walletAddress
string
required

The on-chain wallet address where converted crypto is sent. Must be valid for the selected network.

Example:

"0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97"

integratorFeeBps
string

Integrator fee in basis points (1 bps = 0.01%). Defaults to 0 if not provided.

Example:

"100"

Response

id
string
required

Unique identifier for the virtual account.

Example:

"virtualAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

active
boolean
required

Whether the virtual account is currently active and accepting deposits.

Example:

true

depositInstructions
object
required

Bank account details that depositors should use to send fiat funds into the virtual account.

destination
object
required

The crypto destination where converted funds are sent after deposit.

created
string
required

Timestamp when the virtual account was created (ISO 8601).

Example:

"2025-01-15T10:30:00.000Z"

updated
string
required

Timestamp when the virtual account was last updated (ISO 8601).

Example:

"2025-01-15T12:00:00.000Z"

customer
string

The customer ID who owns the virtual account.

Example:

"customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7"

fee
object

Fee breakdown for the virtual account, including integrator and platform fees.

Last modified on June 18, 2026