Onramp Methods
HIFI supports two onramp methods:| Method | Description | Best For |
|---|---|---|
| Virtual Account | Reusable bank account for USD deposits | Recurring USD deposits, simplified flows |
| Onramp API | One-time virtual account per transaction | USD and Africa currencies via API |
Virtual Accounts for USD: For recurring USD deposits, use reusable Virtual Accounts which provide permanent bank account numbers. The Onramp API generates one-time virtual accounts per transaction and currently supports USD and Africa currencies.
Using the Onramp API
The Onramp API generates a one-time virtual account for a specific transaction. This method currently supports USD and Africa currencies. The flow is similar to regular virtual accounts, but the bank account details are valid only for this single transaction.Request Quote
Create an onramp to get a conversion quote using the Create Onramp endpoint. Request:Response
Response
Unique onramp ID. Save this for tracking the transaction status.
Current status.
AWAITING_FUNDS means the quote is ready and waiting for your deposit.Conversion details including rates and amounts.
Most Important: Bank account details for sending your fiat deposit.
Send Payment
After receiving the quote, send the exact amount specified indepositInfo to the provided bank account.
Critical requirements:
- Use the reference ID - Include the
referenceIdin your bank transfer memo/reference field - Send exact amount - The amount must match
depositInfo.amountexactly - Send before expiration - Deposit must arrive before
quoteInformation.expiresAt
Reference ID Required: Always include the reference ID with your deposit. Deposits without the correct reference ID cannot be matched to your onramp and may be lost or delayed.
Processing
Once HIFI detects your deposit:- Fiat validation - Confirms amount and reference ID match
- Conversion - Exchanges fiat for stablecoins at the quoted rate
- Delivery - Sends stablecoins to the destination wallet
- Completion - Transaction hash becomes available in
receipt.transactionHash
- ACH: 1-3 business days
- Wire: Same day
- International transfers: 1-5 business days depending on country
Transaction Status
Onramps progress through several phases:Creation & Quote Phase
| Status | Description |
|---|---|
| CREATED | Onramp request created successfully |
| NOT_INITIATED | Request not submitted due to validation error |
| OPEN_QUOTE | Quote generated and awaiting deposit |
| QUOTE_FAILED | Quote expired before deposit was received |
| AWAITING_FUNDS | Waiting for fiat deposit with reference ID |
Fiat Processing Phase
| Status | Description |
|---|---|
| FIAT_INITIATED | Deposit detected, fiat processing started |
| FIAT_PENDING | Fiat clearing and validation in progress |
| FIAT_PROCESSED | Fiat successfully received and validated |
| FIAT_FAILED | Fiat processing failed (e.g., invalid amount, missing reference) |
| FIAT_RETURNED | Fiat returned to sender after failure |
Crypto Processing Phase
| Status | Description |
|---|---|
| CRYPTO_INITIATED | Converting fiat to stablecoins |
| CRYPTO_PENDING | Sending stablecoins on blockchain |
| CRYPTO_FAILED | Blockchain transaction failed |
| COMPLETED | Stablecoins delivered to wallet, transaction complete |
Tracking Onramps
Status Updates: Subscribe to
ONRAMP.CREATE and ONRAMP.UPDATE webhook events to receive real-time status notifications. See Webhooks for setup instructions.transactionHash in the response to view the stablecoin delivery on a blockchain explorer.
Quote Validity
Quote expiration times vary by currency. This ensures:- Current market rates
- Prevention of stale pricing
- Timely transaction processing
QUOTE_FAILED):
- Create a new onramp request
- Get updated pricing
- Complete the deposit with the new reference ID
Quote Expiration: The
expiresAt timestamp in quoteInformation shows exactly when the quote expires for your specific currency. Always check this timestamp and plan to send your deposit with enough time for bank processing before this deadline.Key Concepts
Virtual Account vs Onramp API
Virtual Account vs Onramp API
Both methods use virtual accounts, but with different characteristics:Virtual Accounts (reusable):
- Permanent bank account number
- Can be used for multiple deposits
- USD currency only
- Created via Virtual Accounts API
- One-time virtual account per transaction
- Generated per transaction via Onramps API
- Currently supports USD and Africa currencies
- Bank details valid only for that transaction
Reference ID Requirements
Reference ID Requirements
The Onramp API works like one-time virtual accounts. The reference ID functions similarly to how deposits are matched to virtual accounts:
- Each onramp generates a unique reference ID
- Include it in your bank transfer memo/reference field
- HIFI uses it to match your deposit to the correct transaction
- Missing reference IDs cause delays or lost funds
Exact Amount Matching
Exact Amount Matching
The deposit amount must match exactly:
- Send the exact amount shown in
depositInfo.amount - Include all decimal places (e.g., 100)
- Don’t round or adjust for fees
- Mismatched amounts may be rejected or require manual intervention
USDT Fee
USDT Fee
USDT onramps incur an additional 0.1% exchange fee beyond standard rates. This fee appears on your monthly invoice, not deducted from the transaction amount.
External Wallets
External Wallets
By default, stablecoins go to the user’s HIFI wallet. To send to an external wallet instead, include
externalWalletId in the destination.Getting Help
- 📧 Email: support@hifibridge.com
- 💬 Slack: Message us in our shared Slack channel
Related Resources
- Quickstart Guide - Complete onramp tutorial
- Virtual Accounts - Automatic onramp solution (recommended)
- Users - KYC requirements for onramping
- Webhooks - Real-time onramp status notifications
- API Reference - Complete endpoint documentation