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

# 沙盒测试

> 在上线前完整演练 Stablecoin Account 各流程，并验证你的 webhook 处理。

[Stablecoin Account API 发布方声明](/zh/stablecoin-account/v1.6/guide/stablecoin-account-api-publisher-disclaimer)

沙盒环境使用与生产完全相同的 API，只是运行在测试余额之上，你可以在不动用真实资金的情况下完成各流程的集成与验证。

<h2 id="sandbox-base-url">
  沙盒 Base URL
</h2>

```
https://api-sandbox.uqpaytech.com/api
```

所有接口路径与生产一致 —— 只有 Base URL 不同。使用**沙盒**凭证认证：通过 [Access Token](/zh/account-center/v1.6/api-reference/access-token) 接口获取 token，并放在 `x-auth-token` 请求头中发送。

<h2 id="what-to-test">
  测试内容
</h2>

<Steps>
  <h3 id="read-endpoints-and-pagination">
    读接口与分页
  </h3>

  先从不需要资金的接口开始：[List Supported Assets and Networks](/zh/stablecoin-account/v1.6/api-reference/list-supported-assets)、[List Assets](/zh/stablecoin-account/v1.6/api-reference/list-assets) 和 [Estimate Network Fee](/zh/stablecoin-account/v1.6/api-reference/estimate-network-fee)。对照 `total_pages` / `total_items` 验证你的分页处理，并验证金额字段的十进制字符串解析。

  <h3 id="the-deposit-flow">
    充值流程
  </h3>

  请求一个[充值地址](/zh/stablecoin-account/v1.6/api-reference/deposit-wallet-address)并按[快速开始](/zh/stablecoin-account/v1.6/guide/quickstart)走一遍流程。测试资金或沙盒环境的模拟入账充值，请联系你的 UQPAY 解决方案工程师。

  <h3 id="the-withdrawal-flow">
    提现流程
  </h3>

  在[地址簿](/zh/stablecoin-account/v1.6/guide/address-book)中登记目标地址 —— 包括一条带 Travel Rule `meta_data` 的和一条不带的，以便验证 `need_travel_rule` 的处理 —— 然后创建一笔小额提现，并通过[提现 webhook](/zh/stablecoin-account/v1.6/webhooks/withdrawal) 事件跟踪它。

  <h3 id="quotes-and-conversions">
    报价与兑换
  </h3>

  创建一个[报价](/zh/stablecoin-account/v1.6/api-reference/create-quote)并让它过期（`valid_to` 通常只有几分钟），以验证你的续期逻辑；然后在有效期内执行一笔兑换。

  <h3 id="idempotency-and-error-handling">
    幂等性与错误处理
  </h3>

  用同一个 `x-idempotency-key` 把同一个创建请求发送两次，确认只产生一个订单而不是两个。然后演练你的错误路径 —— 过期 token（401）、低于最小金额、余额不足 —— 对照[错误码](/zh/stablecoin-account/v1.6/guide/error-codes)上的响应结构。
</Steps>

<h2 id="webhook-testing">
  Webhook 测试
</h2>

配置你的沙盒 webhook 端点，然后触发每种订单类型并确认你的处理程序：

* 能接受[充值](/zh/stablecoin-account/v1.6/webhooks/deposit)、[提现](/zh/stablecoin-account/v1.6/webhooks/withdrawal)、[换汇](/zh/stablecoin-account/v1.6/webhooks/conversion)和[转账](/zh/stablecoin-account/v1.6/webhooks/transfer)页面列出的每个事件。
* 用 `event_id` 去重 —— 同一事件可能被投递多次。
* 用 `source_id` 反查订单，而不是只信任报文内容。
* 能处理乱序投递：`success` 事件可能先于迟到重发的 `pending` 事件到达。
* 能容忍 `data` 中的未知字段，例如只在被标记的充值上出现的 `need_travel_rule`。

<h2 id="moving-to-production">
  切换到生产
</h2>

* 把 Base URL 换成 `https://api.uqpay.com/api`，并切换到生产凭证。
* 在生产环境重新检查 [List Supported Assets and Networks](/zh/stablecoin-account/v1.6/api-reference/list-supported-assets) —— 沙盒与生产的可用性、最小金额和费用可能不同。
* 重新配置生产 webhook 端点，并端到端验证每种类型至少一个事件。

<h2 id="related">
  相关页面
</h2>

* [快速开始](/zh/stablecoin-account/v1.6/guide/quickstart)
* [错误码](/zh/stablecoin-account/v1.6/guide/error-codes)
* [核心概念](/zh/stablecoin-account/v1.6/guide/core-concepts) —— 请求约定与幂等性
