Payout(付款/代付)是商户通过 NUSDpay 向收款方发起付款的能力。商户集成 Payout API 后,可以从自己的 NUSD 钱包余额向收款方付款,实现提现、分润、退款、给 NUSD Wallet 用户打款等业务场景。 NUSDpay 提供两种付款方式,二者效果不同,请根据收款方类型选择:
关键区别:链上付款(提币)的钱真正离开 NUSDpay 走到区块链上的外部地址;站内付款(划转)的钱始终留在 NUSDpay 体系内,只是改变归属钱包。前者用于付给链上加密钱包,后者用于付给 NUSD Wallet 体系内的收款方。

一、链上付款(提币)

向外部链上钱包地址发起加密货币付款,经区块链网络转账,适合提现、分润、退款到加密钱包。

时序图

以下是一笔链上付款(提币)交易的完整生命周期:
Payout 付款时序

Payout 付款时序(点击放大)

操作步骤

1

确认币种开放状态与费率

发起提币前,请先调用 GET /nps/configs(平台设置) 确认目标币种的 can_withdraw 为 true,并获取当前费率(fee_ratio / fee_fixed)。
支持的币种与公链 为静态参考列表,各币种实际的充提开放状态与费率以 /nps/configs 实时返回为准。该配置修改频率较低,可短期缓存,建议每次付款前刷新确认。
2

发起提币请求

调用 POST /nps/withdraw/onchain 接口,传入收款链上地址、金额、链和币种。
request_id 必须全局唯一,用于防止重复提交。相同的 request_id 不会创建新交易。可使用贵方系统的订单号作为此值,并可凭其查询交易。
3

系统校验与冻结

NUSDpay 系统执行以下校验:
  • 余额是否充足(含手续费)
  • 链和币种是否支持
  • 收款地址格式是否合法
校验通过后,对应金额从可用余额(available)转入冻结余额(hold)。
4

风控审核

交易进入风控流程:
  • AML/KYC 审核:反洗钱与客户身份验证
  • 地址白名单检查:收款地址是否在允许列表内
  • 风控规则引擎:交易金额、频率等是否触发风控规则
5

链上广播与确认

审核通过后,系统构造链上交易并广播到区块链网络。等待区块确认后,交易完成。
6

Webhook 通知

交易完成后,系统向商户配置的 Webhook 地址推送提币结果事件。详见 提币 Webhook。

二、站内付款(划转)

向 NUSDpay 体系内的钱包付款(如 NUSD Wallet 终端用户)。资金在系统账本内从一个钱包转到另一个钱包,实时到账、不上链、无 Gas 费,适合给 NUSD Wallet 用户打款、项目间结算。

时序图

站内付款(划转)时序

站内付款(划转)时序(点击放大)

操作步骤

1

发起划转请求

调用 POST /nps/withdraw/internal 接口,传入转出钱包、接收钱包和金额。与提币不同,划转不需要链和币种(因为不上链)。
其中 user_token、user_email、user_phone、user_name、notes 为可选字段:当收款方是 NUSD Wallet 终端用户时,可用 user_token 指定对应的 app 用户、user_email 与 user_phone 记录收款人邮箱与手机号、user_name 记录收款人姓名、notes 备注用途。
2

系统校验

NUSDpay 校验转出钱包可用余额是否充足、接收钱包是否有效。
3

站内账本入账

校验通过后,金额从 wallet_from 的可用余额扣除,实时计入 wallet_to。不构造链上交易、无需区块确认、无 Gas 费。
4

Webhook 通知

划转完成后,系统向商户配置的 Webhook 地址推送划转结果事件。详见 划转 Webhook。
站内付款(划转)与 划转方案 使用同一接口能力:本页侧重通过 API 向 NUSD 体系内收款方(如 NUSD Wallet 用户)付款;划转方案 侧重商户在自有项目钱包之间调拨备款。两者都不涉及链上交易。

资金流转

余额模型

商户钱包余额分为两部分: 余额变动示例(链上提币):
站内付款(划转)在系统账本内实时完成,金额直接从转出钱包可用余额扣减、计入接收钱包,一般不经过「冻结」中间态。

备款模式

付款资金来自商户的 NUSD 钱包余额。商户需确保钱包中有足够的可用 NUSD 余额,备款方式有两种:
  • 方式一:内部划转 — 通过站内划转,从商户的其他项目钱包(如 Payin 收款钱包)调拨 NUSD 到付款钱包(详见 划转方案)
  • 方式二:外部充值 — 商户直接向付款钱包地址转入 USDT/USDC,系统自动换算为 NUSD 入账
建议在管理后台设置余额告警,当可用余额低于阈值时及时补充资金,避免付款因余额不足失败。

手续费模型

链上提币的两种手续费模式:

App 付费模式(商户承担手续费)

手续费由商户承担,收款方全额到账。
适用场景:商户希望确保收款方收到约定的精确金额(如退款、发薪)。

User 付费模式(收款方承担手续费)

手续费从支付金额中扣除,收款方实际到账金额减少。
适用场景:商户希望控制成本,由收款方承担手续费(如提现)。

费率说明

具体费率以签约协议为准。您可通过 查询平台费用 接口获取当前费率配置。

交易状态

链上付款(提币)交易的完整状态流转:
Payout 状态流转

Payout 状态流转(点击放大)

站内付款(划转)不上链,没有 Confirming(链上确认)阶段,校验通过后即实时完成。
详细的状态与子状态说明请参阅 交易状态说明。

异常处理

余额不足

发起付款时,如果可用余额不足(链上提币还需含手续费),接口将返回错误。请确保钱包中有足够的可用余额。

风控拦截

链上提币被风控规则拦截时,状态变为 Failed,冻结资金自动释放。Webhook 通知中包含具体的失败原因。常见拦截原因:
  • 收款地址未在白名单中
  • 单笔金额超过限额
  • 触发 AML 规则

链上失败(仅链上付款)

极少数情况下,提币在链上执行失败(如 Gas 不足、合约异常)。NUSDpay 系统会自动重试或将交易标记为失败,并释放冻结 NUSD 资金。站内付款(划转)不上链,不存在此类异常。

Webhook 未收到

如果 Webhook 推送失败(超时或非 200/201 响应),系统会自动重试,最多 10 次。建议:
  • 确保 Webhook 端点在 2 秒内响应
  • 使用 request_id 做幂等处理
  • 定期调用 交易记录 接口做对账兜底

下一步

Payin 收款方案

了解如何接收客户的加密货币充值。

划转方案

了解商户自有项目钱包间资金调拨的使用方式。