Fiat Withdraw Notification
{callbackUrl}
When a fiat withdraw order reaches a terminal state (COMPLETED / FAILED / CANCELLED / REJECTED), Paydify sends a POST callback (Paydify → merchant) to the callback URL configured for the fiat withdraw app (configured by Paydify; not passed per order). Non-terminal states (PENDING / PROCESSING / SETTLING, etc.) are not pushed, and each withdraw is notified exactly once. 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 fiat withdraw order ID
txnId
string
REQUIRED
Same value as withdrawId
mchWithdrawId
string
REQUIRED
Merchant order ID (the mchOrderId passed at apply)
status
string
REQUIRED
Withdraw status; only terminal states are pushed: COMPLETED / FAILED / CANCELLED / REJECTED
currency
string
REQUIRED
Currency, currently fixed to USD
orderCurrency
string
REQUIRED
Arrival currency, currently fixed to USD
settlementCurrency
string
REQUIRED
Settlement currency, currently fixed to USD
orderAmount
string
Arrival amount (USD), present when available
settlementAmount
string
Arrival amount (USD), same value as orderAmount
amount
string
REQUIRED
Total deducted amount (USD), 0 when absent
withdrawFeeAmount
string
Withdraw fee (USD), present when available
processingFee
string
REQUIRED
Withdraw fee (USD), same source as withdrawFeeAmount, 0 when absent
gasFee
string
REQUIRED
Always 0 for fiat withdraw
finishedTime
int
REQUIRED
Completion timestamp in milliseconds, 0 when absent
quoteId
string
Quote session ID, present when available
deductionSnapshot
string
Deduction plan snapshot, JSON string
bankAccountSnapshot
string
Beneficiary bank account snapshot, JSON string
errorMsg
string
Failure or rejection reason, may be present only when FAILED / REJECTED
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