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

# Customer Deposits

> Accept fiat and crypto deposits using temporary bank accounts and addresses.

This example shows you how to accept deposits into your Busha account via fiat (temporary bank accounts) or crypto (deposit addresses).

## Use Cases

* Customer funding their wallet
* Accepting payments from users
* Processing incoming transfers
* Topping up account balances

## Fiat Deposit via Temporary Bank Account

<Steps>
  <Step title="Get a Quote for the Deposit">
    Create a quote to generate a temporary bank account:

    ```bash theme={null}
        curl -X POST https://api.sandbox.busha.so/v1/quotes \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{
            "source_currency": "NGN",
            "target_currency": "NGN",
            "source_amount": "50000",
            "pay_in": {
              "type": "temporary_bank_account"
            }
          }'
    ```

    **Response:**

    ```json theme={null}
    {
      "status": "success",
      "message": "Created quote successfully",
      "data": {
        "id": "QUO_vxcF2svmjMbxDp4T5dcD8",
        "profile_id": "BUS_tg6yujbZ1nMu5BLQkPGGO",
        "source_currency": "NGN",
        "target_currency": "NGN",
        "source_amount": "50000",
        "target_amount": "49500",
        "rate": {
          "rate": "1",
          "side": "sell",
          "type": "FIXED",
          "source_currency": "NGN",
          "target_currency": "NGN"
        },
        "fees": [
          {
            "amount": {
              "amount": "500",
              "currency": "NGN"
            },
            "name": "payment gateway fee",
            "type": "FIXED"
          }
        ],
        "pay_in": {
          "type": "temporary_bank_account"
        },
        "status": "pending",
        "expires_at": "2025-02-21T10:46:56.232278869Z",
        "created_at": "2025-02-21T10:16:54.40130914Z",
        "updated_at": "2025-02-21T10:16:54.401309215Z"
      }
    }
    ```
  </Step>

  <Step title="Finalize the Transfer to Get Bank Account Details">
    Use the quote ID to generate the temporary bank account:

    ```bash theme={null}
        curl -X POST https://api.sandbox.busha.so/v1/transfers \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{
            "quote_id": "QUO_vxcF2svmjMbxDp4T5dcD8"
          }'
    ```

    **Response:**

    ```json theme={null}
    {
      "status": "success",
      "message": "Created transfer successfully",
      "data": {
        "id": "TRF_LJB2GQb55Cs98LbpqgRMx",
        "profile_id": "BUS_tg6yujbZ1nMu5BLQkPGGO",
        "quote_id": "QUO_vxcF2svmjMbxDp4T5dcD8",
        "source_currency": "NGN",
        "target_currency": "NGN",
        "source_amount": "50000",
        "target_amount": "49500",
        "rate": {
          "rate": "1",
          "side": "sell",
          "type": "FIXED",
          "source_currency": "NGN",
          "target_currency": "NGN"
        },
        "fees": [
          {
            "amount": {
              "amount": "500",
              "currency": "NGN"
            },
            "name": "payment gateway fee",
            "type": "FIXED"
          }
        ],
        "pay_in": {
          "expires_at": "2025-02-21T10:46:56.232278869Z",
          "recipient_details": {
            "account_name": "Payaza(Business 1 Business)",
            "account_number": "7000384620",
            "bank_name": "78 FINANCE COMPANY LIMITED",
            "email": "support@busha.co"
          },
          "type": "temporary_bank_account"
        },
        "status": "pending",
        "created_at": "2025-02-21T10:16:54.40130914Z",
        "updated_at": "2025-02-21T10:16:54.401309215Z"
      }
    }
    ```
  </Step>

  <Step title="Display Bank Details to Customer">
    Show the temporary bank account details to your customer:

    **Account Details:**

    * Bank Name: 78 FINANCE COMPANY LIMITED
    * Account Number: 7000384620
    * Account Name: Payaza(Business 1 Business)
    * Amount to Send: 50,000 NGN
    * Expires: 2025-02-21 at 10:46 AM

    Customer transfers money to this account from their bank app.
  </Step>

  <Step title="Monitor Deposit Status">
    Check the transfer status to confirm when funds are received:

    ```bash theme={null}
        curl -X GET https://api.sandbox.busha.so/v1/transfers/TRF_LJB2GQb55Cs98LbpqgRMx \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN"
    ```

    **Possible Statuses:**

    * `pending` - Awaiting customer's bank transfer
    * `processing` - Funds received, being processed
    * `funds_received` - Successfully credited to your balance
    * `cancelled` - Transfer cancelled
  </Step>
</Steps>

***

## Crypto Deposit via Address

<Steps>
  <Step title="Get a Quote for Crypto Deposit">
    Create a quote to generate a crypto deposit address:

    ```bash theme={null}
        curl -X POST https://api.sandbox.busha.so/v1/quotes \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{
            "source_currency": "USDT",
            "target_currency": "USDT",
            "source_amount": "100",
            "pay_in": {
              "type": "address",
              "network": "TRX"
            }
          }'
    ```

    **Response:**

    ```json theme={null}
    {
      "status": "success",
      "message": "Created quote successfully",
      "data": {
        "id": "QUO_GxYibGxTIN5c",
        "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
        "source_currency": "USDT",
        "target_currency": "USDT",
        "source_amount": "100",
        "target_amount": "100",
        "rate": {
          "product": "",
          "rate": "1",
          "side": "sell",
          "type": "FIXED",
          "source_currency": "USDT",
          "target_currency": "USDT"
        },
        "fees": [],
        "pay_in": {
          "network": "TRX",
          "type": "address"
        },
        "pay_out": {
          "type": "balance"
        },
        "reference": "QUO_GxYibGxTIN5c",
        "status": "pending",
        "created_at": "2025-10-30T14:35:16.487382045Z",
        "updated_at": "2025-10-30T14:35:16.487382045Z"
      }
    }
    ```
  </Step>

  <Step title="Create Transfer to Get Deposit Address">
    Use the quote ID to generate the crypto deposit address:

    ```bash theme={null}
        curl -X POST https://api.sandbox.busha.so/v1/transfers \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{
            "quote_id": "QUO_GxYibGxTIN5c"
          }'
    ```

    **Response:**

    ```json theme={null}
    {
      "status": "success",
      "message": "Created transfer successfully",
      "data": {
        "id": "TRF_abc123xyz",
        "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
        "quote_id": "QUO_GxYibGxTIN5c",
        "source_currency": "USDT",
        "target_currency": "USDT",
        "source_amount": "100",
        "target_amount": "100",
        "rate": {
          "product": "",
          "rate": "1",
          "side": "sell",
          "type": "FIXED",
          "source_currency": "USDT",
          "target_currency": "USDT"
        },
        "fees": [],
        "pay_in": {
          "type": "address",
          "address": "TXYZabc123def456ghi789jkl",
          "network": "TRX",
          "memo": null
        },
        "status": "pending",
        "created_at": "2025-10-30T14:35:20.123456Z",
        "updated_at": "2025-10-30T14:35:20.123456Z"
      }
    }
    ```
  </Step>

  <Step title="Display Deposit Address to Customer">
    Show the crypto deposit details to your customer:

    **Deposit Instructions:**

    * Network: TRX (Tron)
    * Address: TXYZabc123def456ghi789jkl
    * Asset: USDT
    * Amount: 100 USDT (minimum)

    Customer sends USDT to this address from their wallet.
  </Step>

  <Step title="Monitor Deposit Status">
    Check the transfer status to confirm when crypto is received:

    ```bash theme={null}
        curl -X GET https://api.sandbox.busha.so/v1/transfers/TRF_abc123xyz \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN"
    ```

    **Possible Statuses:**

    * `pending` - Awaiting blockchain confirmation
    * `processing` - Transaction confirmed, processing deposit
    * `funds_received` - Crypto credited to balance
    * `cancelled` - Deposit cancelled
  </Step>
</Steps>

***

## Deposit for a Customer

To process deposits on behalf of a customer, include the customer's profile ID in the header:

```bash theme={null}
curl -X POST https://api.sandbox.busha.so/v1/quotes \
  -H "X-BU-PROFILE-ID: CUSTOMER_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source_currency": "NGN",
    "target_currency": "NGN",
    "source_amount": "50000",
    "pay_in": {
      "type": "temporary_bank_account"
    }
  }'
```

The deposit will be credited to the customer's account instead of your business account.

***

## Supported Networks for Crypto Deposits

* **USDT**: TRX (Tron), ERC20 (Ethereum), BEP20 (BSC), POLYGON
* **BTC**: BTC (Bitcoin)
* **ETH**: ETH (Ethereum)
* **Other cryptos**: Check supported networks via the Pairs API

***

## Important Notes

### Fiat Deposits

* Temporary bank accounts expire after 30 minutes
* Always check the `expires_at` field
* If expired, create a new quote and transfer
* Fees are deducted from the deposited amount

### Crypto Deposits

* Always specify the correct network
* Deposits require blockchain confirmations
* Minimum deposit amounts apply per asset
* Wrong network = lost funds (unrecoverable)

***

## Learn More

* [Process Fiat Deposits Guide](/guides/deposits/process-fiat-deposits) - Detailed fiat deposit guide
* [Process Crypto Deposits Guide](/guides/deposits/process-crypto-deposits) - Detailed crypto deposit guide
* [Understanding Quotes](/overview/quotes) - How quotes work
* [Webhooks Setup](/guides/webhooks/setup) - Monitor deposits in real-time
* [Initiate Transactions on Behalf of Customers](/guides/customers/transactions-on-behalf) - Customer transactions
