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

# Receive deposits

> Generate deposit addresses, track incoming crypto deposits, and handle deposit webhooks.

[Stablecoin Account API Publisher Disclaimer](/stablecoin-account/v1.6/guide/stablecoin-account-api-publisher-disclaimer)

A deposit is an on-ramp: your account receives cryptocurrency sent to a deposit address that UQPAY manages for you. You request an address per asset–network pair, share it with the sender, and the system credits your balance and notifies you as the transaction confirms.

<Info>
  **Prerequisites**

  * An API token sent as the `x-auth-token` header
  * The asset and network you want to receive on, chosen from [List Supported Assets and Networks](/stablecoin-account/v1.6/api-reference/list-supported-assets) with `deposit_enabled: true`
</Info>

## Step 1: Get a deposit address

Call [Deposit Wallet Address](/stablecoin-account/v1.6/api-reference/deposit-wallet-address) with the asset and network. The first call generates the address; later calls return the same one, so it is safe to call repeatedly.

```bash theme={null}
curl "https://api-sandbox.uqpaytech.com/api/v1/ramp/deposit/address?asset=USDT&network=ETH" \
  -H "x-auth-token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Response:**

```json theme={null}
{
  "code": 200,
  "message": "Success",
  "data": {
    "asset": "USDT",
    "network": "ETH",
    "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "qr_code": "https://cdn.uqpaytech.com/qr/...",
    "minimum_deposit": "10.00",
    "create_time": "2024-07-18T14:19:52+08:00"
  }
}
```

Show the sender the `wallet_address` (or the hosted `qr_code`) together with the `minimum_deposit`.

<Warning>
  The address only accepts the requested asset on the requested network. Funds sent as a different token, or the right token over a different network, cannot be credited automatically. Make this unmissable in your UI.
</Warning>

To audit every address generated on the account, page through [List Deposit Addresses](/stablecoin-account/v1.6/api-reference/list-deposit-addresses), filtering by `asset` or `network` as needed.

## Step 2: Handle the deposit webhook

When an incoming transaction is detected, the system creates a deposit order and pushes [Deposit webhook](/stablecoin-account/v1.6/webhooks/deposit) events to your endpoint:

| Event type             | Meaning                                 |
| ---------------------- | --------------------------------------- |
| `ramp.deposit.pending` | Deposit detected, awaiting confirmation |
| `ramp.deposit.success` | Deposit confirmed and credited          |
| `ramp.deposit.failed`  | Deposit failed                          |

The event's `source_id` is the deposit `order_id`; `data` carries the order including the sender's `from_address` and the on-chain `txid`.

<Note>
  If the event's `data` includes `"need_travel_rule": true`, the deposit is held until you submit the sender's originator information — see [Travel Rule for deposits](/stablecoin-account/v1.6/guide/travel-rule-for-deposits). The field is omitted when no action is needed.
</Note>

## Step 3: Query deposit orders

Reconcile with [List Deposits](/stablecoin-account/v1.6/api-reference/list-deposits), or fetch one order with [Retrieve Deposit](/stablecoin-account/v1.6/api-reference/retrieve-deposit):

```bash theme={null}
curl "https://api-sandbox.uqpaytech.com/api/v1/ramp/deposit?page_num=1&page_size=20&asset=USDT&status=Success" \
  -H "x-auth-token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

Each deposit order carries:

| Field                            | Description                                          |
| -------------------------------- | ---------------------------------------------------- |
| `order_id` / `short_order_id`    | Order identifiers (long UUID / short human-readable) |
| `order_status`                   | `Pending`, `Success`, or `Failed`                    |
| `balance_currency`               | The currency credited                                |
| `network`                        | Network the deposit arrived on                       |
| `amount`                         | Deposit amount                                       |
| `deposit_address`                | The address that received the funds                  |
| `transaction_id`                 | On-chain transaction hash                            |
| `create_time` / `completed_time` | Order timestamps                                     |

Once `order_status` is `Success`, the amount appears in the wallet's `available_balance` — verify with [Retrieve Asset](/stablecoin-account/v1.6/api-reference/retrieve-asset).

## Related

* [Deposit Wallet Address API](/stablecoin-account/v1.6/api-reference/deposit-wallet-address)
* [List Deposits API](/stablecoin-account/v1.6/api-reference/list-deposits)
* [Deposit webhook](/stablecoin-account/v1.6/webhooks/deposit)
* [Travel Rule for deposits](/stablecoin-account/v1.6/guide/travel-rule-for-deposits) — when `need_travel_rule` is `true`
* [Manage asset balances](/stablecoin-account/v1.6/guide/manage-asset-balances)
