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

Fiat Withdraw Notification

POST

{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