Sync Transfer
Description
Actively sync the transfer status from the payment channel. Call it when the transfer status is processing to obtain the latest result. Useful when channel callbacks are delayed, when a WeChat transfer awaits payee confirmation, or when you need to confirm the final state.
Syncing a non-processing order is idempotent (returns the current status with adjust=false); repeated calls are harmless.
Request
POST /unipay/sync/order/transfer
- Auth: RSA signature (
@PaymentVerify) - Response:
DaxResult<TransferSyncResult>
Parameters
Common params same as Pay - Common Parameters. Business parameters:
| Parameter | Type | Required | Max | Description |
|---|---|---|---|---|
| transferNo | string | No* | 100 | Platform transfer number |
| channel | string | No* | 32 | Transfer channel (paired with merchant transfer number) |
| bizTransferNo | string | No* | 100 | Merchant transfer number (paired with channel) |
*One of two locating modes:
transferNoalone; orbizTransferNotogether withchannel(matching the initiation idempotency key "channel + bizTransferNo + mchNo" — the same merchant transfer number can exist once per channel).
Request Example
{
"mchNo": "M200000001",
"appId": "APP001",
"reqId": "REQ20241201041",
"reqTime": "2024-12-01 12:41:00",
"sign": "Base64Signature",
"transferNo": "TF2024120112345700001"
}Response
DaxResult<TransferSyncResult>, the data field:
| Parameter | Type | Description |
|---|---|---|
| orderStatus | string | Transfer status after sync (PayFundStatusEnum) |
| adjust | boolean | Whether an adjustment was triggered (local status changed due to this sync) |
Response Example
{
"code": 0,
"msg": "success",
"data": {
"orderStatus": "success",
"adjust": true
},
"sign": "Base64Signature",
"resTime": "2024-12-01 12:41:00",
"reqId": "REQ20241201041"
}Best Practices
- Callback fallback: the platform auto-registers a delayed sync after initiation and pushes the final state to
notifyUrl(eventstransfer.success/transfer.fail/transfer.close); use this endpoint for reconciliation fallback or when no notification arrives. - Vs. query: Query Transfer Order only reads the local record without calling the channel; this endpoint queries the channel in real time and writes the result back.