Pay-in Webhook Notification Callback
Description
Once a pay-in transaction has succeeded or failed, the platform asynchronously pushes the final order status via an HTTP POST request to the notifyUrl provided by the merchant during order creation.
IMPORTANT
- After the merchant system receives and successfully processes the notification, it must respond with the plain text string
SUCCESS(without quotes or extra whitespace). - If the platform receives any response other than
SUCCESS(or if the request times out), a retry mechanism will trigger: up to 5 retries with a 20-minute interval between attempts. - Verify the signature using the Platform Public Key and ignore case differences during signature checking.
Request Information
- Endpoint: Merchant's configured
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 signature of the payload generated using the platform's private key |
Callback Body Parameters
Example Payload
json
{
"timestamp": "1772880120000",
"merchantOrderNo": "202603070001",
"platOrderNo": "876324486452871168",
"amount": "100.00",
"fee": "2.00",
"status": "3",
"msg": "success",
"remark": "Test Order"
}Field Specifications
| Field | Required | Type | Example | Description |
|---|---|---|---|---|
timestamp | Yes | String | 1772880120000 | Notification dispatch timestamp |
merchantOrderNo | Yes | String | 202603070001 | Merchant order reference number |
platOrderNo | Yes | String | 876324486452871168 | Platform transaction reference |
amount | Yes | String | 100.00 | Transaction amount paid |
fee | Yes | String | 2.00 | Channel service fee |
msg | Yes | String | success | Result description |
status | Yes | String | 3 | Order status:0: Created1: Expired2: Payment Failed3: Payment Succeeded |
remark | No | String | Test Order | Custom remarks passed by merchant during order creation |
Merchant Expected Response
The merchant server must acknowledge receipt by responding with HTTP 200 and the plain text:
text
SUCCESS