Gate Payment Status Notification
Applies to orders placed through hosted checkout, client launch, and similar flows where the user pays with a Gate payment account. bizType is always PAY.
Verify the signature and return {"returnCode":"SUCCESS","returnMessage":""} after successful processing. On delivery failure, GatePay retries at the intervals documented in Notifications Overview. You may also call /v1/pay/order/query to reconcile order status.
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 gatePaymentWebhook. 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 Gate payment order status changes (bizType is PAY).
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
- When the order status changes (payment success, payment timeout, cancellation, closure, and similar events), GatePay sends a notification to the callback URL configured at merchant registration
- If delivery fails, see retry rules in Notifications Overview.
bizType is PAY). See Payments for integration guidance.
Message Structure
| Field | Type | Description |
|---|---|---|
bizType | string | Always PAY |
bizId | string | Prepaid order ID |
bizStatus | string | Order status; see table below |
client_id | string | Merchant client_id that created the order (may be omitted in some callbacks; use actual payload) |
data | string | Order payload as a JSON string |
Example Message
bizStatus Enumeration
| Value | Description |
|---|---|
PAY_SUCCESS | Payment succeeded |
PAY_ERROR | Payment error |
PAY_CLOSE | Order closed by merchant or timed out |
data Field Reference
| 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 (payment amount when Gate Pay succeeds) |
totalFee | string | Order amount (may appear together with orderAmount) |
expectCurrency | string | Merchant expected settlement currency |
actualCurrency | string | Actual settlement currency |
actualAmount | string | Amount in actualCurrency |
payerId | int64 | Payer UID |
createTime | int64 | Order creation time (milliseconds) |
transactionId | string | Platform transaction ID (may be omitted in some callbacks) |
channelId | string | Customer name / channel identifier |
doneAmountOnChain | string | On-chain confirmed amount |
waitAmountOnChain | string | On-chain amount awaiting confirmation |
Callback Example
Payment success (bizStatus=PAY_SUCCESS)
Order closed (bizStatus=PAY_CLOSE)
Payment error (bizStatus=PAY_ERROR)
Body
Business type; always PAY (non-address payment order status change).
PAY Prepaid order ID.
Order status: PAY_SUCCESS payment succeeded; PAY_CLOSE timed out or closed; PAY_ERROR payment error.
PAY_SUCCESS, PAY_ERROR, PAY_CLOSE Order data as a JSON string; parsed structure see gatePaymentData.
Merchant client_id that created the order.
Parsed order details from data. For non-address payments, use orderAmount to determine the paid amount.
Response
HTTP 200 indicates the merchant successfully received the notification.

