PAYMENTS / REPORTS

商户报表与对账

按当前应用拉取支付订单、充值、提现与统一账单流水,以及按日生成的对账单。全部需要 AppSign 签名,只能看到当前 X-Api-Key 所属应用的数据。

GET/api/v1/payment/merchant/orders/page HMAC

报表组共 8 个接口(4 类资源 × 分页 / 导出),参数一致,下表列出。

Header 参数

X-Api-Key
string required
应用 apiKey。沙箱前缀 pk_test_,正式 pk_live_。
例: pk_test_4f9d8ab1c0e74...
X-Timestamp
integer (UNIX 毫秒) required
请求发起时刻的 UNIX 毫秒时间戳(13 位整数)。与服务端时差不能超过 ±300000ms(5 分钟)。
例: 1746450000000
X-Nonce
string required
本次请求的随机串,建议 UUID v4 或 16 字节 hex。同一 (apiKey, nonce) 在 10 分钟窗口内不可重复。
例: 8e3a1c2f7b6d4a90
X-Signature
string required
HMAC-SHA256 签名(小写 hex,64 字符)。算法:HMAC(secret, METHOD + "\n" + PATH + "\n" + ts + "\n" + nonce + "\n" + SHA256(body))。详见 鉴权章节。
例: 6e4a8c1f...(64 字符)

通用 Query 参数

applicationId
integer optional
可选;传了必须等于当前 X-Api-Key 所属应用,否则报错。
status
string optional
可选,按状态过滤(各资源自己的状态枚举;bills 为字符串,按大写匹配)。
beginTime / endTime
string optional
可选,按创建时间过滤,ISO 日期时间,如 2026-10-01T00:00:00(服务器时区,东八区)。
pageNo / pageSize
integer optional
分页接口使用,全站通用分页参数。
format
string 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 };时间字段为毫秒时间戳。导出接口直接返回文件流。

GET/api/v1/payment/reconciliation/daily HMAC

对账组:Query 参数只有 date(必填,日期,如 2026-10-22)。

对账接口

GET /api/v1/payment/reconciliation/daily
JSON 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-details
JSON 数组 optional
当日充值明细:id、chainId、chainTokenId、address、fromAddress、amount、fee、txHash、blockHeight、status、riskLevel。
GET /api/v1/payment/reconciliation/withdraw-details
JSON 数组 optional
当日提现明细:id、appOrderNo、chainId、chainTokenId、toAddress、amount、fee、txHash、status、riskLevel。
GET /api/v1/payment/reconciliation/callback-details
JSON 数组 optional
当日回调任务明细:id、bizType、bizId、status、retryTimes、lastError、createTime。
GET /api/v1/payment/reconciliation/export
CSV 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名称说明
1007001005APPLICATION_SCOPE_MISMATCH只能操作当前 AppSign 对应的应用:传入的 applicationId 与当前 X-Api-Key 所属应用不一致。