Payout Webhook Notification Callback
Description
Once a payout order is confirmed as succeeded or failed, the platform asynchronously sends a callback notification via HTTP POST to the merchant's notifyUrl.
IMPORTANT
- Upon receiving and processing the notification successfully, the merchant system must respond with the plain text string
SUCCESS. - If the response is not
SUCCESS, the platform will retry: every 1 minute, up to 5 times. - Rare Financial Exceptions: Under rare bank settlement scenarios, a transaction may momentarily report success but subsequently encounter a bank reversal/refund (failure). Merchants should build idempotent handling accordingly.
- Verify the signature using the Platform Public Key and ignore case differences.
Request Information
- Endpoint: Merchant's designated
notifyUrl - Method:
POST - Content-Type:
application/json; charset=utf-8
HTTP Headers
| Header | Required | Type | Description |
|---|---|---|---|
merchantNo | Yes | String | Merchant ID |
sign | Yes | String | RSA digital signature generated by platform private key |
Callback Body Parameters
Example Payload
json
{
"timestamp": "1772880400000",
"merchantOrderNo": "PO202603070001",
"platOrderNo": "876324486452871168",
"amount": "100.00",
"fee": "5.00",
"status": "3",
"msg": "success",
"remark": "Salary Payout"
}Field Specifications
| Field | Required | Type | Example | Description |
|---|---|---|---|---|
timestamp | Yes | String | 1772880400000 | Notification dispatch timestamp |
merchantOrderNo | Yes | String | PO202603070001 | Merchant payout order reference |
platOrderNo | Yes | String | 876324486452871168 | Platform transaction reference |
amount | Yes | String | 100.00 | Disbursed amount |
fee | Yes | String | 5.00 | Payout fee |
msg | Yes | String | success | Status description |
status | Yes | String | 3 | Payout status:0: Created1: Processing2: Failed3: Succeeded |
remark | No | String | Salary Payout | Remarks forwarded back from order request |
Merchant Expected Response
The merchant server must acknowledge receipt by responding with HTTP 200 and the plain text:
text
SUCCESS