How it works
1
Create the Virtual Account
Call create once, specifying the destination wallet and the stablecoin it should mint. HIFI provisions a dedicated bank sub-account behind the scenes and returns its
depositInstructions immediately.2
Share the deposit instructions
Pass the returned
depositInstructions to whoever is going to send USD - your user, or a third party paying them. Unlike an Onramp, there’s no specific expected amount or deadline attached.3
Funds arrive, any time
The sender sends USD via wire, ACH, or RTP to those instructions whenever they want, for any amount. No API call is needed to “expect” the deposit - the account is always listening.
4
HIFI detects the deposit
The bank notifies HIFI, which matches the incoming payment to this Virtual Account’s sub-account. If it’s a small (under $1.00) bank verification payment instead of a real deposit, it surfaces as a microdeposit rather than triggering a conversion.
5
HIFI converts automatically
HIFI creates an Onramp transaction on the user’s behalf at the live rate - no quote, no accept call, no action required from you. Subscribe to the
ONRAMP.CREATED webhook to get notified when there’s a new incoming deposit.6
Stablecoin lands in the destination wallet
Once the Onramp completes, the destination wallet’s balance updates. Subscribe to
ONRAMP.STATUS.* webhooks to track an individual deposit’s progress instead of polling.Create a Virtual Account
Provisions the account and returns its deposit instructions immediately - the account isACTIVE and ready to receive funds as soon as this call returns. Requires an Idempotency-Key header. Set destination.walletId to land on a HIFI Wallet, or destination.externalWalletId to land on an External Wallet - exactly one is required.
Request
Unlike an Onramp’s deposit instructions,
reference and depositBy are always null here - a Virtual Account isn’t tied to one expected amount or deadline. Deposit any amount, any time, and it converts automatically.If
destination.currency is USDT, a $10 minimum deposit applies - smaller deposits are returned to sender rather than converted (fees applied).Deactivate a Virtual Account
Closes the account so it no longer accepts deposits. All future deposits will automatically bounce back to the original sender.Status
Microdeposits
Some sending banks require the account holder to confirm small (under $1.00) verification deposits in their own banking app before releasing the real payment. When this happens,microDeposits populates on the Virtual Account - pass the amount(s) along to your user so they can complete that verification step.
A microdeposit never counts toward a real payment and never changes the account’s
status. Subscribe to the VIRTUAL_ACCOUNT.MICRODEPOSIT webhook to get notified the moment one lands, instead of polling.Simulate deposits (sandbox only)
Mocks an inbound deposit hitting the Virtual Account’s bank sub-account, so you can trigger the mint flow in sandbox without a real bank transfer. RequestAdditional information
Settlement Rules
Settlement Rules
A Virtual Account can have a Settlement Rule attached that automatically splits each incoming deposit across multiple destination wallets (e.g. by percentage or fixed amount, with tiered breakpoints).Check out Settlement Rules for more information.
Routing Eligibility
Routing Eligibility
Before creating a Virtual Account, you can check whether a given country/currency/transfer-rail/destination-chain combination is currently supported via
GET /v3/virtual-accounts/routes/eligibility.Check out Virtual Account Routing for more information.Getting Help
- 📧 Email: support@hifi.com
- 💬 Slack: Message us in our shared Slack channel
Related Resources
- Orchestration Overview - Orchestration resources
- Orchestration Address - The inverse: automated crypto-to-fiat
- Onramps - The transaction each deposit produces
- HIFI Wallet / External Wallet - Valid destinations
- Virtual Account Routes - Available routes for virtual account