Introduction to Virtual Accounts
Last updated: February 2, 2026
What is a Virtual Account?
A Virtual Account is a dedicated bank account that automatically converts fiat deposits into stablecoins. When users send money via bank transfer (ACH, wire, or RTP), the funds are instantly converted to stablecoins and delivered to their wallet.
How Virtual Accounts Work (Fiat → Stablecoins)
Create virtual account - Specify source currency (e.g., USD), destination currency (e.g., USDC), and blockchain (e.g., POLYGON)
User deposits fiat - User sends money to the provided bank account details
Automatic conversion - HIFI detects the deposit, converts it to stablecoins
Delivery - Stablecoins are sent to the user's wallet
Virtual Accounts vs One-Time Accounts
TypeUse Case | |
Virtual Account | Reusable, permanent bank account for recurring USD deposits |
Onramp API | One-time virtual account per transaction; supports USD and Africa currencies |
Use virtual accounts for recurring deposits with a simplified flow. Use the Onramp API when you need one-time accounts or support for Africa currencies.
How Micro-Deposits Work
Micro-deposits are small payments used to verify bank account ownership. When you fetch a virtual account, the microDeposits object shows these verification payments with details like amount, source bank info, and payment rail. They help confirm the user controls the linked bank account.
Payment Rails
Virtual accounts support multiple payment methods to accommodate different use cases:
Payment RailSpeedCostUse Case | |||
ACH | 1-3 business days | Low | Domestic US bank transfers |
Wire | Same day | Medium | Larger amounts, faster processing |
RTP | Real-time | Medium | Instant transfers |
Users can deposit via any supported rail using the same account number. The conversion and delivery happens automatically regardless of which payment method is used.
Deposit Processing
When a deposit is detected, HIFI automatically:
Validates the deposit - Confirms amount and sender details
Converts to stablecoin - Exchanges fiat for stablecoins at current rates
Sends to wallet - Delivers stablecoins to the configured destination
Triggers webhooks - Sends
ONRAMP.CREATEandONRAMP.UPDATEevents
Processing times vary by payment rail:
ACH: 1-3 business days for funds to clear, then instant conversion
Wire: Same-day processing, then instant conversion
RTP: Real-time processing and instant conversion