Skip to main content

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 typeAPIAddress source
Fiat (USD, EUR, GBP, etc.)Deposit InstructionsBank account details provided by HopNow
Crypto (USDC, USDT)WalletsBlockchain address from wallet creation

Fiat Deposits

Use the Deposit Instructions API to get bank account details your users can send fiat to.
1

Get deposit instructions

Call GET /v1/accounts/{account_id}/deposit-instructions to retrieve bank details for each enabled currency.
curl https://api.hopnow.io/v1/accounts/{account_id}/deposit-instructions
The response includes bank name, account number, IBAN, SWIFT/BIC, routing number, and supported payment rails (ACH, SWIFT, SEPA, etc.).
2

User sends fiat

Share the deposit details with your user. They initiate a bank transfer using their bank or payment provider.
3

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.
1

Create a wallet

Call POST /v1/accounts/{account_id}/wallets with the desired currency and network.
curl -X POST https://api.hopnow.io/v1/accounts/{account_id}/wallets \
  -d '{"currency": "USDC", "network": "solana_devnet", "label": "USDC Wallet"}'
The response includes the wallet’s blockchain addresses — this is the deposit address.
2

User sends crypto

Share the deposit address with your user. They send USDC or USDT to that address on the correct network.
3

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

CurrencyNetworkNotes
USDCsolana_devnetFully functional — use a Solana Devnet faucet to test
USDTsolana_devnetDeposit PYUSD on Solana Devnet (temporary workaround due to provider limitations)
One wallet is allowed per currency + network combination. Attempting to create a duplicate will return an error.

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.
EventDescription
payin.createdDeposit detected
payin.processingDeposit is being processed
payin.completedFunds credited to account
payin.failedDeposit failed

Quick Reference

Fiat Deposit

GET /deposit-instructions → share bank details → payin.completed

Crypto Deposit

POST /wallets → share address → payin.completed