logo

Search...

⌘ K

English

Product Guide
API Reference
Resource Download
Help Center

Payin

Payment

Create Payment

POST

Query Payment Status

POST

Refund

Create Refund

POST

Query Refund Status

POST

Settlement

Get Settlement Files

POST

Deposit

Batch Create VA Clients

POST

Batch Update VA Clients

POST

Query VA Client Deposits

POST

Webhook

Payment Notification

POST

Refund Notification

POST

Deposit Notification

POST

Exchange Rate

Get Exchange Rate Quote

POST

Payout

Wallet

Query Wallet Address

POST

Query Wallet Balance

POST

Withdraw

Withdraw Apply

POST

Withdraw Detail

POST

Fiat Withdraw

Quote

POST

Apply

POST

Cancel

POST

List

POST

Detail

POST

Batch

Batch Withdraw Apply

POST

Batch Withdraw Query

POST

Webhook

Withdraw Notification

POST

Fiat Withdraw Notification

POST

Withdraw Notification

POST

{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