Skip to main content

Withdrawal Transaction Notification

The system sends transaction results to the callback URL provided by the merchant.

Request Information​

  • Request URL: The notify_url provided when creating the withdrawal order
  • Method: POST
  • Content-Type: application/json;charset=utf-8

Request Parameters​

ParameterRequiredTypeDescription
payout_idYesStringPlatform Order ID
payout_cl_idYesStringMerchant Order ID
platform_idYesStringMerchant ID
amountYesIntegerOrder amount (cents)
feeYesIntegerFee
statusYesIntegerTransaction status
error_msgNoStringFailure reason
create_timeYesIntegerCreation time (seconds)
update_timeYesIntegerUpdate time (seconds)
sign_typeNoStringSignature type: HMAC-SHA256
signYesStringOrder signature

Request Example​

{
"payout_id": "POT00000102",
"payout_cl_id": "97a968b4a9db497c8c03198e395a38c6",
"platform_id": "PF0014",
"amount": 10000000,
"fee": 320000,
"status": 3,
"create_time": 1567614049,
"update_time": 1567614111,
"sign": "d2e4534fce8c1d1053bbf59fd8ae4464"
}

Merchant Response​

{ "error_code": "0000" }

Response Parameters​

ParameterTypeDescription
error_codeStringReturning "0000" indicates the merchant has processed the notification

Remarks​

  • This endpoint is implemented by the merchant; the system calls it when an order succeeds, is cancelled, or fails
  • The first notification is sent immediately, then retried about every 5 minutes, up to 6 times in total (about 30 minutes); retries stop once the merchant returns success
  • Merchants are advised to verify the signature to ensure the content has not been tampered with
  • This endpoint may be called more than once; merchants must handle idempotency
  • For order statuses, see Order Status
  • More fields may be supported in the future; read the returned fields dynamically when generating the signature and never hard-code them