Starknet: USDC On/OffRamp live.   Details →
Sphere Paysphere
Virtual account

Update Virtual Account

PATCH
/v2/virtual-account/{virtual_account_id}
AuthorizationBearer <token>

JWT Bearer token authentication

In: header

Path Parameters

virtual_account_idstring

The virtual account's unique ID generated by SpherePay upon virtual account creation.

Pattern"^virtualAccount_[a-z0-9]+$"
destinationCurrencystring

The currency of the stable coin received from sending funds to the virtual account.

Value in"USDC" | "USDT"
networkstring

The currency of the source bank-account or wallet. Please refer to the Virtual Account Guide for more information.

walletAddressstring

The wallet address to send the funds to.

integratorBpsFee?string

The basis point percentage fee for the integrator.

Default"0"
Pattern"^[0-9]+$"

Response Body

curl -X PATCH "https://api.sandbox.spherepay.co/v2/virtual-account/virtualAccount_1ab2c3d4" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceCurrency": "USD",
    "destinationCurrency": "USDC",
    "network": "ethereum",
    "walletAddress": "0x1234...abcd"
  }'
const body = JSON.stringify({
  "sourceCurrency": "USD",
  "destinationCurrency": "USDC",
  "network": "ethereum",
  "walletAddress": "0x1234...abcd"
})

fetch("https://api.sandbox.spherepay.co/v2/virtual-account/virtualAccount_1ab2c3d4", {
  body
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
  "strings"
)

func main() {
  url := "https://api.sandbox.spherepay.co/v2/virtual-account/virtualAccount_1ab2c3d4"
  body := strings.NewReader(`{
    "sourceCurrency": "USD",
    "destinationCurrency": "USDC",
    "network": "ethereum",
    "walletAddress": "0x1234...abcd"
  }`)
  req, _ := http.NewRequest("PATCH", url, body)
  req.Header.Add("Content-Type", "application/json")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://api.sandbox.spherepay.co/v2/virtual-account/virtualAccount_1ab2c3d4"
body = {
  "sourceCurrency": "USD",
  "destinationCurrency": "USDC",
  "network": "ethereum",
  "walletAddress": "0x1234...abcd"
}
response = requests.request("PATCH", url, json = body, headers = {
  "Content-Type": "application/json"
})

print(response.text)
{
  "id": "virtualAccount_987xyz654",
  "active": true,
  "fees": {
    "totalBpsRate": "20",
    "integratorFee": {
      "bpsRate": "10"
    },
    "platformFee": {
      "bpsRate": "10"
    }
  },
  "depositInstructions": {
    "currency": "USD",
    "bankName": "Bank of Example",
    "bankAccountNumber": "000123456789",
    "bankRoutingNumber": "1234567890",
    "bankBeneficiaryName": "John Doe",
    "bankBeneficiaryAddress": "123 Main St, Anytown, USA"
  },
  "destination": {
    "currency": "USDC",
    "walletAddress": "0x1234...abcd",
    "network": "ethereum"
  },
  "created": "2025-04-20T21:49:46.697Z",
  "updated": "2025-04-20T21:50:18.854Z"
}
{
  "ts": "2025-04-20T00:09:16.870Z",
  "error": {
    "information": [
      "Required"
    ]
  }
}
{
  "ts": "2025-04-20T00:09:16.870Z",
  "error": {
    "general": "{{information}} Not Found"
  }
}