> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.hopnow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Deposit Flows

> How to receive fiat and crypto deposits into your account

## 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](/fx/api-reference/deposit-instructions/list-deposit-instructions) | Bank account details provided by HopNow |
| **Crypto** (USDC, USDT)        | [Wallets](/fx/api-reference/wallets/create-wallet)                                       | Blockchain address from wallet creation |

## Fiat Deposits

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

<Steps>
  <Step title="Get deposit instructions">
    Call [GET /v1/accounts/\{account\_id}/deposit-instructions](/fx/api-reference/deposit-instructions/list-deposit-instructions) to retrieve bank details for each enabled currency.

    ```bash theme={null}
    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.).
  </Step>

  <Step title="User sends fiat">
    Share the deposit details with your user. They initiate a bank transfer using their bank or payment provider.
  </Step>

  <Step title="Receive webhook">
    When the funds arrive, you receive a [`deposit.received`](/fx/webhooks/events#supported-hop-events) webhook and the account balance is updated.
  </Step>
</Steps>

<Info>
  **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.
</Info>

<Note>
  Deposit instructions are **fiat only**. To receive crypto deposits, use the Wallets API below.
</Note>

## Crypto Deposits

Use the **Wallets** API to create a blockchain wallet and get a deposit address for crypto.

<Steps>
  <Step title="Create a wallet">
    Call [POST /v1/accounts/\{account\_id}/wallets](/fx/api-reference/wallets/create-wallet) with the desired currency and network.

    ```bash theme={null}
    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 `address` — this is the deposit address.
  </Step>

  <Step title="User sends crypto">
    Share the deposit address with your user. They send USDC or USDT to that address on the correct network.
  </Step>

  <Step title="Receive webhook">
    When the transaction is confirmed on-chain, you receive a [`deposit.received`](/fx/webhooks/events#supported-hop-events) webhook and the account balance is updated.
  </Step>
</Steps>

### Supported Currency and Network Combinations

<Tabs>
  <Tab title="Sandbox">
    | Currency | Network         | Notes                                                    |
    | -------- | --------------- | -------------------------------------------------------- |
    | USDC     | `solana_devnet` | Fully functional — use a Solana Devnet faucet to test    |
    | USDT     | `solana_devnet` | Deposit **PYUSD** on Solana Devnet to test USDT deposits |
  </Tab>

  <Tab title="Production">
    | Currency | Network    |
    | -------- | ---------- |
    | USDC     | `ethereum` |
    | USDC     | `solana`   |
    | USDT     | `ethereum` |
    | USDT     | `solana`   |
  </Tab>
</Tabs>

<Warning>
  One wallet is allowed per currency + network combination. Attempting to create a duplicate will return an error.
</Warning>

## Tracking Deposits

Both fiat and crypto deposits create **payin** records. Use the [Payins API](/fx/api-reference/payins/list-payins) to query deposit history, or subscribe to [webhook events](/fx/webhooks/events) for real-time notifications.

| Event              | Description                   |
| ------------------ | ----------------------------- |
| `deposit.received` | Funds credited to the account |
| `deposit.returned` | Credited funds returned       |

## Quick Reference

<CardGroup cols={2}>
  <Card title="Fiat Deposit" icon="building-columns">
    `GET /deposit-instructions` → share bank details → `deposit.received`
  </Card>

  <Card title="Crypto Deposit" icon="wallet">
    `POST /wallets` → share address → `deposit.received`
  </Card>
</CardGroup>
