curl --request POST \
--url https://production.hifibridge.com/v2/users/{userId}/virtual-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceCurrency": "usd",
"destinationCurrency": "usdc",
"destinationChain": "POLYGON",
"externalWalletId": "<string>"
}
'{
"message": "Virtual account created successfully",
"accountInfo": {
"id": "cfbc005d-8640-57a4-89e1-539c974fa780",
"createdAt": "2025-09-27T03:08:11.548Z",
"updatedAt": "2025-09-27T03:08:11.548Z",
"userId": "840c28f2-ea7d-5c3a-9271-b10fd8b6ae6d",
"source": {
"paymentRail": [
"ach",
"wire",
"rtp"
],
"currency": "usd"
},
"destination": {
"chain": "POLYGON",
"currency": "usdc",
"walletAddress": "0xd102C4130985B7fcB95697616eaf5542c4f98d49",
"externalWalletId": null
},
"status": "activated",
"depositInstructions": {
"bankName": "Bank of NoWhere",
"bankAddress": "123 Main St, New York, NY 10001, USA",
"beneficiary": {
"name": "Henry Wu",
"address": "Example St 1., Apt 123, New York, NY, 10010, US"
},
"ach": {
"routingNumber": "028000024",
"accountNumber": "123456789"
},
"wire": {
"routingNumber": "021000021",
"accountNumber": "123456789"
},
"rtp": {
"routingNumber": "021000021",
"accountNumber": "123456789"
},
"instruction": "Please deposit usd to the bank account provided. Please ensure that the beneficiary name matches the account holder name provided, or the payment may be rejected."
},
"settlementRuleId": null
}
}Generate a virtual bank account to onramp from sourceCurrency to destinationCurrency on chain destinationChain. (note: virtual accounts are billable)
curl --request POST \
--url https://production.hifibridge.com/v2/users/{userId}/virtual-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sourceCurrency": "usd",
"destinationCurrency": "usdc",
"destinationChain": "POLYGON",
"externalWalletId": "<string>"
}
'{
"message": "Virtual account created successfully",
"accountInfo": {
"id": "cfbc005d-8640-57a4-89e1-539c974fa780",
"createdAt": "2025-09-27T03:08:11.548Z",
"updatedAt": "2025-09-27T03:08:11.548Z",
"userId": "840c28f2-ea7d-5c3a-9271-b10fd8b6ae6d",
"source": {
"paymentRail": [
"ach",
"wire",
"rtp"
],
"currency": "usd"
},
"destination": {
"chain": "POLYGON",
"currency": "usdc",
"walletAddress": "0xd102C4130985B7fcB95697616eaf5542c4f98d49",
"externalWalletId": null
},
"status": "activated",
"depositInstructions": {
"bankName": "Bank of NoWhere",
"bankAddress": "123 Main St, New York, NY 10001, USA",
"beneficiary": {
"name": "Henry Wu",
"address": "Example St 1., Apt 123, New York, NY, 10010, US"
},
"ach": {
"routingNumber": "028000024",
"accountNumber": "123456789"
},
"wire": {
"routingNumber": "021000021",
"accountNumber": "123456789"
},
"rtp": {
"routingNumber": "021000021",
"accountNumber": "123456789"
},
"instruction": "Please deposit usd to the bank account provided. Please ensure that the beneficiary name matches the account holder name provided, or the payment may be rejected."
},
"settlementRuleId": null
}
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
ID of the user
usd usdt is only supported on ethereum
usdc, usdt Either externalWalletId or destinationChain must be provided.
POLYGON, ETHEREUM, SOLANA, BASE Either externalWalletId or destinationChain must be provided.
Success
Show child attributes
activated, deactivated Show child attributes
Show child attributes
Show child attributes
ach, wire, rtp Show child attributes