跳至主要內容

数字货币代付

TOPPAY Team大约 5 分钟

概述

数字货币代付 API 用于将商户余额中的数字货币转出至指定链上地址。下单成功后订单进入「已接单(处理中)」状态,平台完成出款后通过回调通知商户最终结果。

出款结果以异步结果为准

下单成功仅代表平台受理成功,响应固定返回 status = 1(已接单处理中),随后由平台发起链上出款。因此不能以下单响应判断出款结果,请以回调或查询接口为准。

公共请求头(含必填 Nonce)、公共请求体字段与统一响应结构见 数字货币接入总览


请求路径

域名:推荐使用统一域名 openapi.toppayment.com(路径不变);原数字货币域名(global-digit-openapi.toppayment.com)仍可用。

环境地址
沙箱https://openapi.toppayment.com/crypto/sandbox/disbursement/cash
生产https://openapi.toppayment.com/crypto/disbursement/cash

请求头参数

字段必填类型描述
Content-TypeMString固定值:application/json
NonceMString(16-64)防重放随机串,10 分钟内不可重复,不参与签名

IP 白名单

代付接口受出口 IP 白名单管控。请提前将调用方出口 IP 提交客服加入白名单,否则返回 1001(IP 白名单异常)或 1004(IP 白名单未配置)。

请求体参数

字段必填类型描述
mchNoMString(32)商户编号
沙箱需使用 SD 前缀的沙箱商户号
orderNumMString(64)商户订单号
同一商户下不可重复,重复返回 0001
moneyMString代付数量
数字字符串,最多 6 位小数
示例:10.5
currencyMString(16)币种
字符集 A-Z a-z 0-9 _,示例:USDT
netWorkMString(100)链网络
示例:TRC20
必须与 inAddress 所属链一致
inAddressMString(255)收款地址
链上收款方地址,请务必校验格式与所属链
feeTypeMString手续费承担方式
0:手续费从代付数量中扣除,收款方实收 money - fee
1:手续费另计,账户扣除 money + fee,收款方实收 money
downNotifyUrlMString(255)异步通知地址
须为可公网访问的 HTTP/HTTPS 地址,见 回调通知
timestampMString(13)请求时间戳(13 位毫秒级),偏差须在 ±5 分钟内
signMString签名,见 签名规则
nameOString(64)收款人姓名
emailOString(64)收款人邮箱
phoneOString(32)收款人电话
tenantCodeOString(32)子租户编码,不传使用默认租户
countryCodeOString(16)国家码,数字货币场景无需传

feeType 计费说明

money = 100fee = 1 为例:

feeType账户扣除收款方实收适用场景
010099手续费由收款方承担
1101100手续费由商户承担,保证收款方到账整数

fee 由商户费率模板(固定费 + 费率 × 数量)计算,实际值以下单响应与回调中的 fee 为准。若未匹配到可用费率模板或通道,返回 0003

请求示例

Content-Type: application/json
Nonce: c41f7ae9028b56d3f1a4

响应体参数

字段必填类型描述
successMBoolean是否成功
codeMString响应状态码
9999:成功;其他见 异常码
msgOString响应消息,成功时为 null
timeStampMNumber服务器响应时间(毫秒级)
dataMObject响应数据对象
orderNumMString商户订单号
platOrderNumMString平台订单号
后续查询与回调的唯一凭据
amountMNumber代付数量
与请求 money 一致
feeMNumber手续费
feeTypeMNumber手续费承担方式
0:代付数量内扣除;1:手续费另计
statusMNumber订单状态码
下单成功固定为 1(已接单处理中),取值见下表
statusMsgMString订单状态描述
下单与查询接口返回统一展示状态(如 PENDING
回调返回明细状态(如 ORDER_RECEIVED_PROCESSING),两者取值集合不同
currencyMString币种
netWorkMString链网络

代付状态码

status明细状态(回调 statusMsg)统一展示状态(下单/查询 statusMsg)说明是否终态
0INITIAL_STATE_PENDING_ORDERSPENDING初始态(待接单)
1ORDER_RECEIVED_PROCESSINGPENDING已接单(处理中)
2PROCESSED_SUCCESSFULLYSUCCESS出款成功
3CANCELED_SUCCESSFULLYCANCELLED已撤销(资金已解冻退回)
4PROCESSING_FAILEDFAILED出款失败(资金已解冻退回)
5LOANINGPROCESSING链上出款中
99PENDING_ORDERPENDING待接单

statusMsg 的两套取值

同一个 status 在不同接口下 statusMsg 文案不同:下单与查询返回统一展示状态(PENDING / PROCESSING / SUCCESS / FAILED / CANCELLED),回调返回明细状态(ORDER_RECEIVED_PROCESSING / PROCESSED_SUCCESSFULLY 等)。建议业务判断以数值 status 为准statusMsg 仅用于展示与日志。

响应示例

{
    "success": true,
    "code": "9999",
    "msg": null,
    "timeStamp": 1767840272829,
    "data": {
        "orderNum": "CW1788506801001",
        "platOrderNum": "CW20260825143024553",
        "amount": 10.500000,
        "fee": 0.700000,
        "feeType": 0,
        "status": 1,
        "statusMsg": "PENDING",
        "currency": "USDT",
        "netWork": "TRC20"
    }
}

注意事项

地址与链必须匹配

inAddressnetWork 必须属于同一条链。跨链地址会导致资产不可找回,平台无法追回错误地址的转账。请在提交前完成地址格式校验。

  • 下单成功即冻结相应余额(含手续费),撤销或失败后自动解冻。
  • 余额不足返回 1002;沙箱环境传 money = 20000000 可稳定触发该错误用于联调。
  • 同一 mchNo + orderNum 重复下单返回 0001The order already exists!);短时间并发同单返回 0004
  • 下单响应仅代表受理成功,最终结果请以 回调通知订单查询 为准。

后续步骤