Overview
There are two ways to receive deposits, depending on whether the funds are fiat or cryptocurrency. Each uses a different API and flow.| Deposit type | API | Address source |
|---|---|---|
| Fiat (USD, EUR, GBP, etc.) | Deposit Instructions | Bank account details provided by HopNow |
| Crypto (USDC, USDT) | Wallets | Blockchain address from wallet creation |
Fiat Deposits
Use the Deposit Instructions API to get bank account details your users can send fiat to.Get deposit instructions
Call GET /v1/accounts/{account_id}/deposit-instructions to retrieve bank details for each enabled currency.The response includes bank name, account number, IBAN, SWIFT/BIC, routing number, and supported payment rails (ACH, SWIFT, SEPA, etc.).
User sends fiat
Share the deposit details with your user. They initiate a bank transfer using their bank or payment provider.
Receive webhook
When the funds arrive, you receive a
payin.completed webhook and the account balance is updated.Fiat currencies must be enabled for your account. If a currency returns
"status": "unavailable", contact support to enable it. Supported currencies include USD, EUR, GBP, JPY, and HKD.Deposit instructions are fiat only. To receive crypto deposits, use the Wallets API below.
Crypto Deposits
Use the Wallets API to create a blockchain wallet and get a deposit address for crypto.Create a wallet
Call POST /v1/accounts/{account_id}/wallets with the desired currency and network.The response includes the wallet’s blockchain
addresses — this is the deposit address.User sends crypto
Share the deposit address with your user. They send USDC or USDT to that address on the correct network.
Receive webhook
When the transaction is confirmed on-chain, you receive a
payin.completed webhook and the account balance is updated.Supported Currency and Network Combinations
- Sandbox
- Production
| Currency | Network | Notes |
|---|---|---|
| USDC | solana_devnet | Fully functional — use a Solana Devnet faucet to test |
| USDT | solana_devnet | Deposit PYUSD on Solana Devnet (temporary workaround due to provider limitations) |
Tracking Deposits
Both fiat and crypto deposits create payin records. Use the Payins API to query deposit history, or subscribe to webhook events for real-time notifications.| Event | Description |
|---|---|
payin.created | Deposit detected |
payin.processing | Deposit is being processed |
payin.completed | Funds credited to account |
payin.failed | Deposit failed |
Quick Reference
Fiat Deposit
GET /deposit-instructions → share bank details → payin.completedCrypto Deposit
POST /wallets → share address → payin.completed