PAYMENTS / REPORTS
商户报表与对账
按当前应用拉取支付订单、充值、提现与统一账单流水,以及按日生成的对账单。全部需要 AppSign 签名,只能看到当前 X-Api-Key 所属应用的数据。
/api/v1/payment/merchant/orders/page HMAC 报表组共 8 个接口(4 类资源 × 分页 / 导出),参数一致,下表列出。
Header 参数
X-Api-Keystring required | 应用 apiKey。沙箱前缀 pk_test_,正式 pk_live_。 例: pk_test_4f9d8ab1c0e74... |
X-Timestampinteger (UNIX 毫秒) required | 请求发起时刻的 UNIX 毫秒时间戳(13 位整数)。与服务端时差不能超过 ±300000ms(5 分钟)。 例: 1746450000000 |
X-Noncestring required | 本次请求的随机串,建议 UUID v4 或 16 字节 hex。同一 (apiKey, nonce) 在 10 分钟窗口内不可重复。 例: 8e3a1c2f7b6d4a90 |
X-Signaturestring required | HMAC-SHA256 签名(小写 hex,64 字符)。算法: HMAC(secret, METHOD + "\n" + PATH + "\n" + ts + "\n" + nonce + "\n" + SHA256(body))。详见 鉴权章节。 例: 6e4a8c1f...(64 字符) |
通用 Query 参数
applicationIdinteger optional | 可选;传了必须等于当前 X-Api-Key 所属应用,否则报错。 |
statusstring optional | 可选,按状态过滤(各资源自己的状态枚举;bills 为字符串,按大写匹配)。 |
beginTime / endTimestring optional | 可选,按创建时间过滤,ISO 日期时间,如 2026-10-01T00:00:00(服务器时区,东八区)。 |
pageNo / pageSizeinteger optional | 分页接口使用,全站通用分页参数。 |
formatstring optional | 导出接口使用: xlsx(默认,实际文件名后缀为 .xls)或 csv(UTF-8 带 BOM)。 |
报表接口
GET /api/v1/payment/merchant/orders/page分页 optional | 支付订单:id、appOrderNo、checkoutUrl、fiat/pay 金额与币种、chainCode、tokenSymbol、paidAmount、payAddress、memo、status、txHash、callbackTaskId、expireTime、createTime、updateTime。status 取 PaymentOrderStatusEnum。 |
GET /api/v1/payment/merchant/orders/export导出 optional | 支付订单导出(中文表头)。 |
GET /api/v1/payment/merchant/recharges/page分页 optional | 充值记录(含 confirmations、collectionStatus 等)。status 取充值确认状态。 |
GET /api/v1/payment/merchant/recharges/export导出 optional | 充值记录导出。 |
GET /api/v1/payment/merchant/withdraws/page分页 optional | 提现记录(含 failReason)。status 取提现状态。 |
GET /api/v1/payment/merchant/withdraws/export导出 optional | 提现记录导出。 |
GET /api/v1/payment/merchant/bills/page分页 optional | 统一账单流水:聚合支付订单 / 充值 / 提现。额外参数 type = PAYMENT_ORDER / RECHARGE / WITHDRAW。字段:type、businessId、businessNo、applicationId、chainCode、tokenSymbol、direction(IN / OUT)、amount、status、txHash、createTime,按 createTime 倒序。 |
GET /api/v1/payment/merchant/bills/export导出 optional | 统一账单流水导出。 |
请求示例
# 签名算法(stringToSign / 4 个 header)见 /docs/api/auth
API_KEY=pk_test_xxx
SECRET=sk_test_xxx
METHOD=GET
REQ_PATH='/api/v1/payment/merchant/orders/page?status=PAID&pageNo=1&pageSize=20'
BODY='' # GET 无 body,SHA-256 取空串
TS=$(( $(date +%s) * 1000 ))
NONCE=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')
BODY_SHA=$(printf "%s" "$BODY" | openssl dgst -sha256 -hex | awk '{print $2}')
SIG=$(printf "%s\n%s\n%s\n%s\n%s" "$METHOD" "$REQ_PATH" "$TS" "$NONCE" "$BODY_SHA" \
| openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')
curl -X GET "https://api.pqpa.com$REQ_PATH" \
-H "X-Api-Key: $API_KEY" \
-H "X-Timestamp: $TS" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIG"分页接口返回 data = { list: [...], total };时间字段为毫秒时间戳。导出接口直接返回文件流。
/api/v1/payment/reconciliation/daily HMAC 对账组:Query 参数只有 date(必填,日期,如 2026-10-22)。
对账接口
GET /api/v1/payment/reconciliation/dailyJSON optional | 商户日账单;不存在时按现有明细生成快照。字段:id、applicationId、statementDate、rechargeCount / rechargeAmount、withdrawCount / withdrawAmount、feeAmount、paymentOrderCount、paymentPaidAmount、paymentOverpaidAmount、chainTxCount、callbackTotal / callbackSuccess / callbackFailed / callbackPending、statementJson、generatedAt。 |
GET /api/v1/payment/reconciliation/recharge-detailsJSON 数组 optional | 当日充值明细:id、chainId、chainTokenId、address、fromAddress、amount、fee、txHash、blockHeight、status、riskLevel。 |
GET /api/v1/payment/reconciliation/withdraw-detailsJSON 数组 optional | 当日提现明细:id、appOrderNo、chainId、chainTokenId、toAddress、amount、fee、txHash、status、riskLevel。 |
GET /api/v1/payment/reconciliation/callback-detailsJSON 数组 optional | 当日回调任务明细:id、bizType、bizId、status、retryTimes、lastError、createTime。 |
GET /api/v1/payment/reconciliation/exportCSV optional | 日账单 CSV,文件名 payment-statement-{applicationId}-{date}.csv。 |
请求示例
# 签名算法(stringToSign / 4 个 header)见 /docs/api/auth
API_KEY=pk_test_xxx
SECRET=sk_test_xxx
METHOD=GET
REQ_PATH='/api/v1/payment/reconciliation/daily?date=2026-10-22'
BODY='' # GET 无 body,SHA-256 取空串
TS=$(( $(date +%s) * 1000 ))
NONCE=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')
BODY_SHA=$(printf "%s" "$BODY" | openssl dgst -sha256 -hex | awk '{print $2}')
SIG=$(printf "%s\n%s\n%s\n%s\n%s" "$METHOD" "$REQ_PATH" "$TS" "$NONCE" "$BODY_SHA" \
| openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')
curl -X GET "https://api.pqpa.com$REQ_PATH" \
-H "X-Api-Key: $API_KEY" \
-H "X-Timestamp: $TS" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIG"明细接口的 status 是各业务原始枚举名
对账明细与报表里的status 分别是充值确认状态、提现状态、回调任务状态、支付订单状态的枚举名;导出文件里则是中文描述。 错误码
| code | 名称 | 说明 |
|---|---|---|
1007001005 | APPLICATION_SCOPE_MISMATCH | 只能操作当前 AppSign 对应的应用:传入的 applicationId 与当前 X-Api-Key 所属应用不一致。 |