Payment
Refund Status Notification
When a refund order status changes, GatePay sends a webhook with bizType PAY_REFUND.
Verify the signature and return {"returnCode":"SUCCESS","returnMessage":""} after successful processing. On delivery failure, GatePay retries at the intervals documented in Notifications Overview.
WEBHOOK
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 refundWebhook. 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 refund order status changes (bizType is PAY_REFUND).
Notes
- Use
refundInfo.refundRequestIdorbizIdfor 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 a refund order status changes (success, in progress, or rejected), GatePay sends a notification to the callback URL configured at merchant registration
- If delivery fails, see retry rules in Notifications Overview.
bizType is PAY_REFUND). For refund reconciliation, prefer the merchant-unique identifier refundRequestId.
Query fallback
- A successful refund API response only means acceptance, not the final refund outcome.
- Wait for the
PAY_REFUNDcallback first; if no status notification arrives within 10 seconds, call Query Refund Details (GET /v2/pay/refund/details) usingrefundRequestId.
Message Structure
| Field | Type | Description |
|---|---|---|
bizType | string | Always PAY_REFUND |
bizId | string | Refund order ID |
bizStatus | string | Refund order status; see table below |
client_id / clientId | string | Merchant client_id (top-level field may be client_id or clientId) |
data | string | Business payload as a JSON string |
Example Message
bizStatus Enumeration
| Value | Description |
|---|---|
REFUND_SUCCESS | Refund succeeded |
REFUND_PROCESS | Refund in progress |
REFUND_REJECTED | Refund rejected |
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 |
createTime | int64 | Order creation time (milliseconds) |
transactionId | string | Platform transaction ID |
channelId | string | Customer name / channel identifier |
refundInfo | object | Refund details |
refundInfo Fields
| Field | Type | Description |
|---|---|---|
refundRequestId | string | Merchant refund ID; merchant-generated and less than 32 bytes |
prepayId | string | Original order ID to refund |
orderAmount | string | Order amount |
refundAmount | string | Refund amount |
refundPayCurrency | string | Refund payment currency |
refundPayAmount | string | Refund payment amount |
Callback Example
Refund succeeded (bizStatus=REFUND_SUCCESS)
Refund in process (bizStatus=REFUND_PROCESS)
Refund rejected (bizStatus=REFUND_REJECTED)
Body
application/json
Business type; always PAY_REFUND.
Available options:
PAY_REFUND Refund order ID.
Refund order status; see enum values.
Available options:
REFUND_SUCCESS, REFUND_PROCESS, REFUND_REJECTED Business data as a JSON string; parsed structure see refundData.
Merchant client_id that created the order.
Parsed refund notification details from data.
Response
200 - application/json
HTTP 200 indicates the merchant successfully received the notification.

