Skip to content

/cashin/check-refund 代收退款订单查询接口介绍 ​

接口背景 ​

/cashin/check-refund 提供给合作商的代收退款订单查询接口。合作商可以通过商户退款订单号 merchantOrderNo 或平台退款订单号 platOrderNo 查询退款订单的当前状态、退款金额、累计退款金额、退还手续费及原代收订单信息。

merchantOrderNo 和 platOrderNo 至少填写一个。如果两个字段同时填写,必须指向同一笔退款订单。退款查询成功仅表示系统已返回退款订单的当前信息,不代表退款最终成功;退款结果应以 orderStatus 为准。

接口请求地址 ​

项目内容
请求方式GET
请求路径/cashin/check-refund
Content-Typeapplication/json
接口用途查询代收退款订单

接口接入规范 ​

接口请求字段 ​

字段名位置类型字段长度是否必填说明
X-Merchant-IdHeaderstring64是一级商户号,从请求头读取,用于隔离不同合作商的退款订单数据。
X-TimestampHeaderint19是Unix 秒级请求时间戳,用于请求时效校验。
X-NonceHeaderstring64是请求防重放随机字符串。
DigestHeaderstring52是请求体摘要;GET 无请求体时按空字节计算,格式为 SHA-256=<Base64摘要>。
AuthorizationHeaderstring-是ES256 请求签名信息,其中 keyId 为合作商密钥版本号。
merchantOrderNoQuerystring64二选一商户退款订单号;与 platOrderNo 至少填写一个。
platOrderNoQuerystring64二选一平台退款订单号;与 merchantOrderNo 至少填写一个。

如果 merchantOrderNo 和 platOrderNo 同时填写但未指向同一笔退款订单,接口返回参数错误,不返回订单数据。

请求示例 ​

http
GET /cashin/check-refund?merchantOrderNo=REFUND202608160001 HTTP/1.1
Content-Type: application/json
X-Merchant-Id: 92315566000120
X-Timestamp: 1786867200
X-Nonce: 550e8400-e29b-41d4-a716-446655440000
Digest: SHA-256=<Base64摘要>
Authorization: Signature keyId="v1",alg="ES256",headers="(request-target) x-timestamp x-nonce digest",signature="<ES256_SIGNATURE_BASE64>"

接口响应字段 ​

业务状态判断:dataStatus 为整数;dataStatus = 200 表示业务正常,此时 dataMsg = "SUCCESS"。非 200 表示业务错误,错误原因见 dataMsg。

接口使用统一的 status、msg、data 响应结构。接口响应成功不代表退款成功;退款仍在处理中时,合作商应继续查询或等待退款结果异步通知。

字段名类型字段长度是否必返说明
statusint4是响应码
msgstring128是与 status 对应
dataobject不适用否退款订单查询结果;请求在验签、协议解析、参数校验或订单查询阶段失败时可能不返回。
data.subMerchantNostring64是二级商户号。
data.attachstring128是原收款订单下单时合作商传入的 attach 值;下单时已传入则原样返回,未传入则为空。
data.merchantOrderNostring64是商户退款订单号。
data.platOrderNostring64是平台退款订单号。
data.origMerchantOrderNostring64是原商户代收订单号。
data.origPlatOrderNostring64是原平台代收订单号。
data.origAmountdecimal(25,2)25,2是原代收订单金额。
data.origTotalRefundAmountdecimal(25,2)25,2是原代收订单当前累计成功退还的本金金额,不包含手续费。
data.origTotalFeeRefundAmountdecimal(25,2)25,2是原代收订单当前累计成功退还的手续费金额,不包含退款本金。
data.amountdecimal(25,2)25,2是本次申请退还的本金金额,不包含手续费。
data.refundAmountdecimal(25,2)25,2是本次成功退还的本金金额,不包含手续费;本次退还的手续费见 data.feeRefundAmount。
data.feeRefundAmountdecimal(25,2)25,2是本次退还的手续费金额;未退还手续费时为 0。
data.currencystring3是退款币种,与原订单币种一致,例如 BRL。
data.e2eIdstring64否Pix 端到端交易 ID;渠道尚未返回时可为空。
data.orderStatusstring16是退款订单当前状态。
data.refundTimeint19否退款时间,Unix 秒级时间戳。
data.dataStatusint-是响应码
data.dataMsgstring128是与 dataStatus 对应

orderStatus 枚举 ​

枚举值状态说明是否终态
PENDING退款处理中;退款申请已受理,资金处理尚未完成,应继续查询或等待异步通知。否
SUCCESS退款成功;退款资金处理已经完成。是
FAILED退款失败;本次退款已经结束,可结合 dataMsg 查看失败原因。是

响应示例 ​

以下示例为原订单首次退款成功:退还本金 50.00、手续费 0.30,累计退款本金为 50.00,累计退还的手续费为 0.30。

json
{
  "status": 200,
  "msg": "sucesso",
  "data": {
    "subMerchantNo": "SUB00000001",
    "attach": "order-source=checkout",
    "merchantOrderNo": "REFUND202608160001",
    "platOrderNo": "RFD202608160000000001",
    "origMerchantOrderNo": "CASHIN202608160001",
    "origPlatOrderNo": "BAS202608160000000001",
    "origAmount": 100.00,
    "origTotalRefundAmount": 50.00,
    "origTotalFeeRefundAmount": 0.30,
    "amount": 50,
    "refundAmount": 50.00,
    "feeRefundAmount": 0.30,
    "currency": "BRL",
    "e2eId": "E1234567820260816000000000000001",
    "orderStatus": "SUCCESS",
    "refundTime": 1786887025,
    "dataStatus": 200,
    "dataMsg": "SUCCESS"
  }
}

接入注意事项 ​

  1. 查询范围由请求头 X-Merchant-Id 中的一级商户号限定,无需传入 subMerchantNo,不能通过订单号查询其他合作商的退款数据。
  2. orderStatus 是判断退款结果的唯一业务状态字段,不能将接口 status = 200 当作退款成功。
  3. 合作商应使用十进制高精度类型处理,并核对币种、原订单金额、本次退款金额和累计退款金额。
  4. 退款查询接口用于同步超时、漏通知或状态核对场景。退款终态通知和主动查询可能同时到达,合作商应以退款订单号和状态进行幂等处理。

响应错误码 ​