Withdraw Notification
{notificationEndpoint}
When a withdraw order reaches a terminal state, Paydify sends a POST callback (Paydify → merchant) to the payout callback URL configured for the app (notificationEndpoint, configured by Paydify for the app; not passed per order). Only terminal states (SUCCESS / FAILED) are pushed, and each withdraw is notified exactly once. Every detail of a batch withdraw is also notified one by one through this callback; batch-level status is pull-only via the batch withdraw query API. Merchants must verify the signature and deduplicate idempotently by withdrawId + status; acknowledge with HTTP 200 and the bare string success (case-insensitive). Any other response triggers re-push at 15s / 45s / 90s / 180s / 10m / 30m / 60m / 3h / 6h / 12h intervals, up to 11 attempts including the first push. For orders created with a partner credential, the callback signature is computed with the ordering credential apiSecret, while x-api-key remains the appId of the app the order belongs to.
Request
Header Parameters
content-type
string
REQUIRED
Fixed value: application/json
x-api-key
string
REQUIRED
appId of the app the order belongs to
x-api-timestamp
string
REQUIRED
Timestamp in milliseconds
x-api-signature
string
REQUIRED
Signature, see Signature Algorithm
Body
appId
string
REQUIRED
appId of the app the order belongs to
withdrawId
string
REQUIRED
Paydify withdraw order ID
mchWithdrawId
string
REQUIRED
Merchant withdraw order ID (the mchWithdrawId passed at apply)
status
string
REQUIRED
Withdraw status; only terminal states are pushed: SUCCESS / FAILED
currency
string
REQUIRED
Withdraw currency
network
string
REQUIRED
Chain network (e.g. BSC/SOL/ETH/TRON/POLYGON)
amount
string
REQUIRED
Withdraw amount, 0 when absent
gasFee
string
REQUIRED
On-chain gas fee, 0 when absent
processingFee
string
REQUIRED
Processing fee, 0 when absent
address
string
REQUIRED
Destination address
txnHash
string
On-chain transaction hash, present when available
finishedTime
int
REQUIRED
Completion timestamp in milliseconds, 0 when absent
errorCode
string
Error code, may be present only when FAILED
errorMsg
string
Failure reason, may be present only when FAILED
Response
Body
body
string
REQUIRED
Bare string success (case-insensitive). JSON objects, HTML error pages, empty bodies, or any other literal (including fail) are treated as failure and trigger re-push