Sync Refund
Description
When a refund order is in progress (refunding), the merchant can actively call this endpoint to sync the latest refund result from the payment channel. Useful when refund callbacks are delayed or manual confirmation is needed.
Endpoint
POST /unipay/sync/order/refund
- Auth: RSA signature (
@PaymentVerify) - Response:
DaxResult<RefundSyncResult>
Request Parameters
Common params same as Pay - Common Parameters. Business parameters:
| Parameter | Type | Required | Max Length | Description |
|---|---|---|---|---|
| refundNo | string | no* | 100 | Platform refund number (refundNo returned by Refund) |
| bizRefundNo | string | no* | 100 | Merchant refund number |
*At least one of the two refund numbers is required; the platform
refundNotakes precedence.
Request Example
json
{
"mchNo": "M200000001",
"appId": "APP001",
"reqId": "REQ20241201005",
"reqTime": "2024-12-01 12:35:00",
"nonceStr": "RANDOMSTR123",
"sign": "Base64Signature",
"refundNo": "R2024120112345700001"
}Response Parameters
DaxResult<RefundSyncResult>, structure of data:
| Parameter | Type | Description |
|---|---|---|
| orderStatus | string | Refund status after sync (RefundOrderStatusEnum) |
| adjust | boolean | Whether a status adjustment was triggered (status changed by this sync) |
Response Example
json
{
"code": 0,
"msg": "success",
"data": {
"orderStatus": "success",
"adjust": true
},
"sign": "Base64Signature",
"resTime": "2024-12-01 12:35:00",
"reqId": "REQ20241201005"
}Usage Tips
- Sync is idempotent: repeated calls will not double-refund or re-notify.
- If sync triggers a status change, the platform re-sends the
event=refund.successnotification following the Async Callback flow. - If the channel reports "refund not found", the platform marks the local refund order as
failorcloseper its rules — check theadjustflag.