Address Payment Status Notification
In address payment scenarios, GatePay delivers PAY_ADDRESS (order status change) and TRANSFER_ADDRESS (order fund transfer) notifications to the merchant callback URL.
Verify the signature and return {"returnCode":"SUCCESS","returnMessage":""} after successful processing. On delivery failure, GatePay retries at the intervals documented in Notifications Overview.
Documentation Index
Fetch the complete documentation index at: https://docs.gate.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This page documentswebhook addressPaymentWebhook. The full schema, parameters, and examples are rendered from the linked OpenAPI or webhook definition above.
GatePay sends asynchronous notifications to the merchant callback URL when address payment order status or fund transfer status changes (bizType is PAY_ADDRESS or TRANSFER_ADDRESS).
Notes
- Use
merchantTradeNoorbizIdfor idempotency. - Signature verification, retries, parsing
data, and the success response are covered in Notifications Overview; see Security and Signature for signing rules.
Trigger Scenarios
- Order status changes from created to payment completed
- Order status changes from created to expired
- User pays a sufficient amount within the validity period, but on-chain confirmation is incomplete at expiration, so the order enters
PROCESS - Before an order finishes (expired or completed), each successful payment credits the merchant payment account; when cumulative payments reach the order amount within the validity period, the order is marked completed
- After order completion, new payments to the order address are confirmed and credited to the merchant payment account
- After order completion, new payments to a convert payment order address are detected
Message Structure
| Field | Type | Description |
|---|---|---|
bizType | string | Notification category; see table below |
bizId | string | Order ID |
bizStatus | string | Business status; see tables below |
client_id | string | Merchant client_id that created the order (common in TRANSFER_ADDRESS and similar scenarios) |
data | string | Business payload as a JSON string; structure varies by bizType |
bizType Enumeration
| Value | Description |
|---|---|
PAY_ADDRESS | Order status change notification |
TRANSFER_ADDRESS | Order fund transfer notification |
bizStatus Values (bizType=PAY_ADDRESS)
| Value | Description |
|---|---|
PAY_SUCCESS | Payment succeeded |
PAY_ERROR | Payment error |
PAY_CLOSE | Order expired and closed |
PAY_EXPIRED_IN_PROCESS | User paid ≥ order amount within the validity period, but unconfirmed on-chain payments remain; order enters PROCESS |
PAY_EXPIRED_IN_EXCHANGE_FLUCTUATION (as returned in the callback).
bizStatus Values (bizType=TRANSFER_ADDRESS)
| Value | Description |
|---|---|
TRANSFERRED_ADDRESS_IN_TERM | Non-convert: successful payment credited to merchant payment account within the validity period |
TRANSFERRED_ADDRESS_DELAY | Non-convert: delayed payment credited after the validity period |
CONVERT_ADDRESS_PAY_DELAY | Convert: delayed arrival notified but not credited to merchant payment account |
TRANSFERRED_ADDRESS_BLOCK | Funds received by Gate but held due to risk; not credited |
data Fields (bizType=PAY_ADDRESS, non-convert)
| Field | Type | Description |
|---|---|---|
merchantTradeNo | string | Merchant trade number |
productType | string | goodsType at order creation |
productName | string | goodsName at order creation |
tradeType | string | terminalType at order creation |
goodsName | string | Goods name |
terminalType | string | Terminal type |
currency | string | Order currency |
orderAmount | string | Order amount |
underpaidAmount | string | Remaining unpaid amount after payment completes |
payerId | int64 | Payer UID |
createTime | int64 | Order creation time (milliseconds) |
transactionId | string | Transaction ID |
waitAmountOnChain | string | Amount awaiting on-chain confirmation within the validity period |
doneAmountOnChain | string | Amount confirmed on-chain within the validity period |
channelId | string | Channel identifier |
chain | string | Blockchain network |
address | string | Collection address |
fromAddress | string | Payer address |
clientId | string | Merchant client_id embedded in data (may appear together with top-level client_id) |
originalOrderId | string | Related original order ID (convert and similar scenarios; empty string if none) |
data Fields (bizType=PAY_ADDRESS, convert)
In addition to fields above, convert orders may include:
| Field | Type | Description |
|---|---|---|
totalFee | string | Order amount |
payCurrency | string | Payment currency |
payAmount | string | Required payment amount |
rate | string | Exchange rate |
transferAmount | string | Amount transferred to merchant; often empty in status-change notifications |
overPay | string | Amount paid above the order requirement; non-zero only on payment success |
data Fields (bizType=TRANSFER_ADDRESS)
| Field | Type | Description |
|---|---|---|
merchantTradeNo | string | Merchant trade number |
productType | string | goodsType at order creation |
productName | string | goodsName at order creation |
tradeType | string | terminalType at order creation |
goodsName | string | Goods name |
terminalType | string | Terminal type |
currency | string | Order currency |
orderAmount | string | Order amount |
payerId | int64 | Payer UID |
createTime | int64 | Order creation time (milliseconds) |
transactionId | string | Transaction ID |
transferAmount | string | Amount transferred to merchant (credited amount) |
channelId | string | Channel identifier |
chain | string | Blockchain network |
address | string | Collection address |
txHash / tx_hash | string | On-chain transaction hash (parse compatibly) |
Callback Examples
Order status change (bizType=PAY_ADDRESS, payment success)
Order status change (bizType=PAY_ADDRESS, convert)
Fund transfer (bizType=TRANSFER_ADDRESS)
Body
Notification category: PAY_ADDRESS for order status change; TRANSFER_ADDRESS for fund transfer.
PAY_ADDRESS, TRANSFER_ADDRESS Order ID.
Business status; varies by bizType. For PAY_ADDRESS: PAY_SUCCESS, PAY_ERROR, PAY_CLOSE, PAY_EXPIRED_IN_PROCESS, and similar. For TRANSFER_ADDRESS: TRANSFERRED_ADDRESS_IN_TERM, TRANSFERRED_ADDRESS_DELAY, CONVERT_ADDRESS_PAY_DELAY, TRANSFERRED_ADDRESS_BLOCK.
Business data as a JSON string; parsed structure see addressPaymentData.
Merchant client_id that created the order.
Parsed data object. Fields differ for non-convert vs convert orders and for PAY_ADDRESS vs TRANSFER_ADDRESS.
Response
HTTP 200 indicates the merchant successfully received the notification.

