# 参考资料

> 2328.io API 中使用的网络代码、币种与网络的对应关系以及支付状态值。

本页列出了 API 请求和响应中使用的所有参考值。

## 网络代码

以下代码用于所有出现 `network` 字段的位置：

| 代码 | 网络 |
|------|------|
| `TRX-TRC20` | Tron TRC-20 |
| `BSC-BEP20` | BNB Smart Chain |
| `ETH-ERC20` | Ethereum (ERC-20) |
| `BASE` | Base |
| `AVAX-C` | Avalanche C-Chain |
| `POL-MATIC` | Polygon (Matic) |
| `TON` | TON |
| `BTC` | Bitcoin |
| `LTC` | Litecoin |
| `DASH` | Dash |
| `SOL` | Solana |
| `DOGE` | Dogecoin |
| `ZEC` | Zcash |
| `XRP` | XRP Ledger |
| `XMR` | Monero |

## 币种与网络的对应关系

每种币种仅在部分网络上可用。请使用此表选择有效的组合：

| 币种 | 允许的网络 |
|------|-----------|
| `USDT` | TRX-TRC20, BSC-BEP20, ETH-ERC20, BASE, AVAX-C, POL-MATIC, TON, SOL |
| `USDC` | BSC-BEP20, ETH-ERC20, BASE, AVAX-C, POL-MATIC, SOL |
| `BTC` | BTC |
| `ETH` | ETH-ERC20, BASE |
| `BNB` | BSC-BEP20 |
| `TRX` | TRX-TRC20 |
| `LTC` | LTC |
| `DASH` | DASH |
| `GRAM` | TON |
| `AVAX` | AVAX-C |
| `POL` | POL-MATIC |
| `SOL` | SOL |
| `DOGE` | DOGE |
| `ZEC` | ZEC |
| `XRP` | XRP |
| `XMR` | XMR |

`GRAM` 是 TON 原生货币的规范资产代码。支付、静态钱包和支付创建 API 目前接受旧版 `TON` 输入并将其标准化为 `GRAM`；集成应该存储和处理 API 返回的规范值。 Polygon原生资产为`POL`，其网络代码为`POL-MATIC`。切勿将 `MATIC` 作为网络代码发送。

启用的方向是操作配置，可以独立于该目录进行更改。在呈现选择之前查询 `/v1/directions`；将此表视为有效的代码映射，但不能保证当前每对都已启用。

## 支付状态

支付的 `payment_status` 字段以及 `/v1/payment/list` 过滤参数可取以下值：

| 状态 | 描述 |
|------|------|
| `pending` | 已创建，等待初始化 |
| `check` | 等待客户支付 |
| `paid` | 支付成功 |
| `underpaid_check` | 支付不足（可补足） |
| `underpaid` | 支付不足 |
| `overpaid` | 支付超额（已入账） |
| `cancel` | 已取消 / 已过期 |
| `aml_lock` | 交易因 AML 风控被锁定 |

> **INFO:** 监听支付成功时，应同时将 `paid` 和 `overpaid` 视为成功状态，并为客户订单入账。

### 状态处理策略

| 状态 | 履行订单吗？ | 继续等待吗？ | 操作动作 |
|--------|----------------|-------------------|--------------------|
| `pending` / `check` | 否 | 是的，直到到期为止 | 显示挂起状态并正常协调。 |
| `underpaid_check` | 默认无 | 是的，充值可以到账 | 幂等地存储每个 txid 并显示剩余付款工作流程。 |
| `paid` | 是的，一次 | 否 | 从已验证的事件中原子地履行。 |
| `overpaid` | 是的，一次 | 否 | 履行并保留 merchant 保单的超额/实际金额。 |
| `underpaid` | 产品特定 | 否 | 应用明确的部分付款/人工审核政策。 |
| `cancel` | 否 | 否 | 标记已过期/取消，但升级任何后续的链上证据。 |
| `aml_lock` | 否 | 没有自动履行 | 合规性/支持审查；不自动释放价值。 |

状态描述了平台对付款的看法。它们不会取代您当地的履行状态。存储两者，以便已退款、手动审核或已履行的订单不会被旧的 webhook 损坏。

`/v1/payment/list` 请求过滤器当前接受 `pending`、`check`、`paid`、`underpaid_check`、`underpaid`、 `overpaid` 和 `cancel`。即使其他支付端点可以返回 AML 锁定支付，它也不接受 `aml_lock` 作为过滤器。

## 提现状态

`/v1/payout` 与 `/v1/payout/status/{uuid}` 返回的 `status` 字段可取以下值之一：

| 状态 | 描述 |
|------|------|
| `pending` | 已创建，等待处理 |
| `completed` | 已成功完成 — `txid` 已设置 |
| `failed` | 发送失败 — 详情见 `error_type` |
| `cancelled` | 已取消 |

## 提现错误类型

当提现 `status = failed` 时，`error_type` 字段说明失败原因：

| 代码 | 描述 |
|------|------|
| `aml_risk` | 提现被 AML 风控拦截（收款地址被标记为高风险） |