Skip to content

06 · 附录:枚举、精度与错误码


1. 网络 ID

network_id名称类型生产环境
1Ethereum MainnetEVM✅ 已开通
56BSC MainnetEVM✅ 已开通
4TRX(TRON 主网)TRON✅ 已开通
11155111SepoliaEVM❌ 测试网,生产未启用
97BSC TestnetEVM❌ 测试网,生产未启用
5TRX ShastaTRON❌ 测试网,生产未启用
0All(仅用于查询过滤)

实时确认:curl https://linkepay-api.bestxx.com/api/v1/public/networks

⚠️ 早期文档中出现过 BSC Mainnet = 66、BSC Testnet = 67 的写法,那是旧版 SDK 常量, 服务端实际使用的是 56 / 97,请以本表为准。

确认数

网络确认区块数
Ethereum Mainnet6
BSC Mainnet6
TRON6

2. 币种 ID

asset_idasset_name说明
1usdcUSDC
2usdtUSDT
3native原生币(ETH / BNB / TRX)
0All仅用于查询过滤

生产环境合约地址

网络币种合约地址
Ethereum MainnetUSDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Ethereum MainnetUSDT0xdac17f958d2ee523a2206206994597c13d831ec7
BSC MainnetUSDC0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
BSC MainnetUSDT0x55d398326f99059fF775485246999027B3197955
TRONUSDTTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

TRON 主网目前只支持 USDT。


3. 金额精度(decimals)

结算时平台使用下表精度把可读金额换算成最小单位:

网络USDCUSDT原生币
Ethereum Mainnet6618
BSC Mainnet181818
TRON666

注意 同一种 USDT,在 Ethereum 上是 6 位精度、在 BSC 上是 18 位精度(BEP-20 版本确实是 18 位)。

商户一般不需要自己做精度换算

  • 提现请求传可读金额字符串"100.5"),平台自行换算;
  • 回调和查询返回里同时给出 amount(最小单位)和 float_amount(可读金额)与 decimal, 入账直接用 float_amount 即可。

若需要自行换算,请用大整数运算,切勿用浮点数。


4. 状态枚举

4.1 充值交易状态 tx_status

说明
pending已在链上发现,尚未达到确认数
confirmed已确认,可安全入账
timeout长时间(约 1 小时)未确认

4.2 提现状态 withdraw_status

说明是否推送回调
under_review金额达到免审阈值,等待平台审核
rejected审核拒绝
pending审核通过 / 免审,排队等待出金
processing正在构造/广播交易
success交易已广播
confirmed交易已确认
error出错(可重试)
failed最终失败

只有 success / confirmed 会触发回调。失败/拒绝类状态需要通过控制台或人工对账处理。

4.3 回调状态 call_back_status(平台内部,控制台可见)

说明
pending待推送
processing推送中
success商户已返回 201
error上次推送未成功,等待重试
failed商户返回 4xx,或已达 50 次上限
skipped内部流水(如归集转账),不推送

4.4 归集策略 collect_policy(控制台配置)

说明
after_every_deposit每笔充值后立即归集
every_fixed_duration固定周期归集(5 分钟 ~ 1 个月)
at_fixed_time每天固定时间归集
threshold累计金额达到阈值时归集
manually仅手动归集

5. 错误码

响应体里的 code 字段。200 为成功;4xx/5xx 为 HTTP 层错误;1xxx 为业务错误码。

5.1 商户常见业务错误码

codeerror含义与处理
1002invalid param参数非法(币种/网络/地址格式/金额)。检查请求体
1007project public key not set商户公钥未登记,去控制台登记
1009missing param缺少必填参数(如缺 X-Signature
1010project not foundproject_uid 不存在
1011invalid signature签名不匹配,见 04-签名规范 第 4 节
1012invalid public key已登记的公钥格式非法,联系平台
1018too many requests触发限流,退避后重试
1025invalid network id网络 ID 非法或未开通
1026address already exists地址已存在
1027user address not found该用户在该网络上还没有充值地址,先调创建接口
1028insufficient balance to withdraw归集地址余额不足。先查 consolidation/balances
1029withdraw uid already used提现单号重复。按已提交处理,不要换 uid 重发
1030withdraw daily times limit reached触发单日提现笔数上限
1031withdraw daily amount limit reached触发单日提现金额上限

5.2 HTTP 层错误

HTTP场景
400参数/签名格式错误、公钥未登记、uid 已占用
401签名验证失败;API Key 缺失或无效
403来源 IP 未在白名单或未审核通过;API Key 不属于该项目
429触发限流(约 125 req/s per IP)
500服务端错误,或部分业务错误(如 1029)以 500 承载
502网关到后端的转发失败,可重试

平台部分业务错误使用 HTTP 500 承载(如提现 uid 重复)。 判定逻辑请以响应体的 code / error 字段为准,不要只看 HTTP 状态码。


6. 快速自检命令

bash
BASE=https://linkepay-api.bestxx.com
PUID=<PROJECT_UID>
KEY=<API_KEY>

# 1. 服务是否健康
curl -s "$BASE/api/v1/admin/health/"

# 2. 平台公钥(用于回调验签)
curl -s "$BASE/api/v1/public/platform-public-key"

# 3. 支持的网络与币种
curl -s "$BASE/api/v1/public/networks"
curl -s "$BASE/api/v1/public/assets"

# 4. 我的出口 IP(对照白名单)
curl -s https://api.ipify.org; echo

# 5. API Key + IP 白名单是否通
curl -s "$BASE/api/v1/client/project/$PUID/consolidation/balances" -H "X-API-Key: $KEY"

第 5 步:

  • 返回 200 + 余额列表 → API Key 与 IP 白名单均正常
  • 返回 401 → API Key 无效
  • 返回 403 IP address not whitelisted → 出口 IP 未审核通过

本文档描述 LinkePay 生产环境(主网)接口。接口如有变更以本文档为准。