API REFERENCE
派付 API 总览
一套 API 串通 BTC / EVM / TRON / SOL 全家桶。所有接口走 HMAC-SHA256 鉴权,所有响应是 JSON 且统一 CommonResult 封装,时间戳是 UNIX 毫秒。
Base URL
https://api.pqpa.com 沙箱 / 正式由 apiKey 前缀区分:pk_test_ / pk_live_
当前版本
v1 路径前缀:/api/v1/... · Breaking change 会以新版本号发布
按资源浏览
每一类资源对应一组开放 API 端点,路径形如 /api/v1/<biz>/<resource>/<action>。
充值 / 收款
生成用户专属充值地址、查充值记录
- POST/api/v1/wallet/address/create
- GET/api/v1/wallet/address/list-by-user
- GET/api/v1/wallet/recharge/page
提现 / 出款
发起链上转账、按业务单号查状态、批量提现
- POST/api/v1/wallet/withdraw/create
- GET/api/v1/wallet/withdraw/get-by-business-id
- POST/api/v1/wallet/withdraw/batch-create
回调 (Webhooks)
验签、回调任务查询、重发回调
- GET/api/v1/wallet/callback/tasks
- POST/api/v1/wallet/callback/replay-recharge
元数据 / 自查
应用自查、公链、币种、余额
- GET/api/v1/application/self/info
- GET/api/v1/wallet/support/chains
- GET/api/v1/wallet/balance/summary
全站约定
请求格式
- 所有请求都通过 HTTPS 调用,不接受明文 HTTP。
- 写接口 (POST) 的 body 是
application/json; charset=utf-8,UTF-8 编码。 - 读接口 (GET) 用 query string;query 参数不参与签名。
- 必须带 4 个 HMAC header:
X-Api-Key、X-Timestamp、X-Nonce、X-Signature。详见 鉴权章节。
响应格式
派付的所有响应都是 JSON,并统一按 CommonResult 封装:
// 成功(业务码 code = 0)
{
"code": 0,
"data": { ... },
"msg": ""
}
// 失败(HTTP 仍是 200,业务码 code != 0)
{
"code": 1007002000,
"data": null,
"msg": "签名校验失败:请检查 apiSecret 与待签字符串拼装顺序"
}为什么 200 响应里还有 code?
HTTP status 给基础设施层(CDN / 网关 / 监控)用;业务code 给应用层用。 开放 API 的业务异常统一以 HTTP 200 + code != 0 + msg 返回; 做错误分支时请按 code 判断,不要按 msg 文案(文案会随版本调整)。 幂等
会产生副作用的接口都有业务幂等键:
- 创建充值地址:按
(应用, chainCode, externalUserId)幂等,重复调返回已有地址。 - 发起提现:按
(应用, appOrderNo)幂等,重复appOrderNo返回1007004000 WITHDRAW_BUSINESS_DUPLICATE。
分页
列表接口走 pageNo(从 1 开始)+ pageSize,响应是 PageResult:
GET /api/v1/wallet/recharge/page?pageNo=1&pageSize=20
// 响应
{
"code": 0,
"data": {
"list": [ ... ],
"total": 127
},
"msg": ""
}pageSize 上限是 200,传更大值会被拒绝。
时间戳、金额与地址
- 签名用的
X-Timestamp是UNIX 毫秒(13 位整数);响应里的业务时间字段是 ISO 形式的本地时间(如"2026-05-05T12:34:56")。 - 所有金额都是字符串形式的精确 decimal(如
"150.000000"),别用 number——浮点丢精度。 - 所有地址是各链原始大小写形式(EVM 走 EIP-55 校验和、TRON 走 Base58)。
错误码
业务码(code)是稳定常量,前 3 位 1-007 = 钱包平台。做错误分支时请按 code 判断,不要按 msg 文案。
| code | 名称 | 说明 |
|---|---|---|
1007002001 | SIGN_HEADER_MISSING | 4 个签名 header 缺一;msg 会指明缺哪个。 |
1007002000 | SIGN_INVALID | 签名校验失败:检查 stringToSign 拼接(含换行符)、apiSecret、SHA256(body) 小写。 |
1007002002 | SIGN_TIMESTAMP_EXPIRED | X-Timestamp 与服务器时差 > 5 分钟;检查时区 / NTP 同步,并确认用的是毫秒。 |
1007002004 | SIGN_TIMESTAMP_INVALID | X-Timestamp 不是合法毫秒时间戳(应为 13 位纯数字)。 |
1007002003 | SIGN_NONCE_DUPLICATE | 同一 (apiKey, nonce) 在 10 分钟内重复;nonce 必须真随机,不要用计数器。 |
1007001004 | APP_KEY_NOT_FOUND | X-Api-Key 不存在或与任何应用都不匹配。 |
1007001002 | APPLICATION_DISABLED | 应用已被停用,请联系平台管理员重新启用。 |
1007001006 | APPLICATION_IP_NOT_ALLOWED | 当前来源 IP 不在应用开放 API 白名单内。 |
1007003005 | CHAIN_NOT_ENABLED_BY_APP | 应用未开通该链;请先在管理后台启用对应代币。 |
1007004000 | WITHDRAW_BUSINESS_DUPLICATE | appOrderNo 已存在;商户业务单号需全局唯一。 |
1007004002 | WITHDRAW_BALANCE_INSUFFICIENT | HOT / WITHDRAW 钱包余额不足。 |
1007004003 | WITHDRAW_FEE_INSUFFICIENT | 出币地址原生币不够支付 gas。 |
1007004004 | WITHDRAW_RECORD_NOT_FOUND | 提现记录不存在或不属于当前应用(按 appOrderNo)。 |
1007004011 | RECHARGE_RECORD_NOT_FOUND | 充值记录不存在或不属于当前应用(按 id)。 |
1007011000 | WITHDRAW_NOT_IN_WHITELIST | 提现地址不在应用提现白名单内。 |
调试与排错
派付不强制使用 SDK——curl 也能跑通全部接口。每个端点页都给了 curl / Node.js / Python 三语言签名示例。