Skip to main content
WEBHOOK
gatePaymentWebhook
{
  "bizType": "PAY",
  "bizId": "79553572569350157",
  "bizStatus": "PAY_SUCCESS",
  "data": "{\"channelId\":\"\",\"createTime\":1780037371613,\"currency\":\"USDT\",\"doneAmountOnChain\":\"0\",\"goodsName\":\"KM/ORDER-63FDE37F - PUBG Mobile UC Global ( Special Offer ) - PUBG 1800 UC x 1\",\"merchantTradeNo\":\"6a1936fb6ac6f72b7a817576\",\"orderAmount\":\"21.88\",\"payerId\":16839589,\"productName\":\"KM/ORDER-63FDE37F - PUBG Mobile UC Global ( Special Offer ) - PUBG 1800 UC x 1\",\"productType\":\"\",\"terminalType\":\"WEB\",\"tradeType\":\"WEB\",\"waitAmountOnChain\":\"0\"}"
}
{
  "returnCode": "SUCCESS",
  "returnMessage": ""
}

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 documents webhook 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

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.
Scope: Orders placed through hosted checkout, web or in-app launch, and similar flows where the user pays with a Gate payment account (bizType is PAY). See Payments for integration guidance.

Message Structure

FieldTypeDescription
bizTypestringAlways PAY
bizIdstringPrepaid order ID
bizStatusstringOrder status; see table below
client_idstringMerchant client_id that created the order (may be omitted in some callbacks; use actual payload)
datastringOrder payload as a JSON string

Example Message

{
  "bizType": "PAY",
  "bizId": "79553572569350157",
  "bizStatus": "PAY_SUCCESS",
  "data": "{\"channelId\":\"\",\"createTime\":1780037371613,\"currency\":\"USDT\",\"doneAmountOnChain\":\"0\",\"goodsName\":\"KM/ORDER-63FDE37F - PUBG Mobile UC Global ( Special Offer ) - PUBG 1800 UC x 1\",\"merchantTradeNo\":\"6a1936fb6ac6f72b7a817576\",\"orderAmount\":\"21.88\",\"payerId\":16839589,\"productName\":\"KM/ORDER-63FDE37F - PUBG Mobile UC Global ( Special Offer ) - PUBG 1800 UC x 1\",\"productType\":\"\",\"terminalType\":\"WEB\",\"tradeType\":\"WEB\",\"waitAmountOnChain\":\"0\"}"
}

bizStatus Enumeration

ValueDescription
PAY_SUCCESSPayment succeeded
PAY_ERRORPayment error
PAY_CLOSEOrder closed by merchant or timed out

data Field Reference

FieldTypeDescription
merchantTradeNostringMerchant trade number
productTypestringgoodsType at order creation
productNamestringgoodsName at order creation
tradeTypestringterminalType at order creation
goodsNamestringGoods name
terminalTypestringTerminal type
currencystringOrder currency
orderAmountstringOrder amount (payment amount when Gate Pay succeeds)
totalFeestringOrder amount (may appear together with orderAmount)
expectCurrencystringMerchant expected settlement currency
actualCurrencystringActual settlement currency
actualAmountstringAmount in actualCurrency
payerIdint64Payer UID
createTimeint64Order creation time (milliseconds)
transactionIdstringPlatform transaction ID (may be omitted in some callbacks)
channelIdstringCustomer name / channel identifier
doneAmountOnChainstringOn-chain confirmed amount
waitAmountOnChainstringOn-chain amount awaiting confirmation

Callback Example

Payment success (bizStatus=PAY_SUCCESS)

{
  "bizType": "PAY",
  "bizId": "79553572569350157",
  "bizStatus": "PAY_SUCCESS",
  "data": "{\"channelId\":\"\",\"createTime\":1780037371613,\"currency\":\"USDT\",\"doneAmountOnChain\":\"0\",\"goodsName\":\"KM/ORDER-63FDE37F - PUBG Mobile UC Global ( Special Offer ) - PUBG 1800 UC x 1\",\"merchantTradeNo\":\"6a1936fb6ac6f72b7a817576\",\"orderAmount\":\"21.88\",\"payerId\":16839589,\"productName\":\"KM/ORDER-63FDE37F - PUBG Mobile UC Global ( Special Offer ) - PUBG 1800 UC x 1\",\"productType\":\"\",\"terminalType\":\"WEB\",\"tradeType\":\"WEB\",\"waitAmountOnChain\":\"0\"}"
}

Order closed (bizStatus=PAY_CLOSE)

{
  "bizType": "PAY",
  "bizId": "79553572569350157",
  "bizStatus": "PAY_CLOSE",
  "data": "{\"channelId\":\"\",\"createTime\":1780037371613,\"currency\":\"USDT\",\"doneAmountOnChain\":\"0\",\"goodsName\":\"KM/ORDER-63FDE37F\",\"merchantTradeNo\":\"6a1936fb6ac6f72b7a817576\",\"orderAmount\":\"21.88\",\"payerId\":0,\"productName\":\"KM/ORDER-63FDE37F\",\"productType\":\"\",\"terminalType\":\"WEB\",\"tradeType\":\"WEB\",\"waitAmountOnChain\":\"0\"}"
}

Payment error (bizStatus=PAY_ERROR)

{
  "bizType": "PAY",
  "bizId": "79553572569350157",
  "bizStatus": "PAY_ERROR",
  "data": "{\"channelId\":\"\",\"createTime\":1780037371613,\"currency\":\"USDT\",\"doneAmountOnChain\":\"0\",\"goodsName\":\"KM/ORDER-63FDE37F\",\"merchantTradeNo\":\"6a1936fb6ac6f72b7a817576\",\"orderAmount\":\"21.88\",\"payerId\":16839589,\"productName\":\"KM/ORDER-63FDE37F\",\"productType\":\"\",\"terminalType\":\"WEB\",\"tradeType\":\"WEB\",\"waitAmountOnChain\":\"0\"}"
}

Body

application/json
bizType
enum<string>
required

Business type; always PAY (non-address payment order status change).

Available options:
PAY
bizId
string
required

Prepaid order ID.

bizStatus
enum<string>
required

Order status: PAY_SUCCESS payment succeeded; PAY_CLOSE timed out or closed; PAY_ERROR payment error.

Available options:
PAY_SUCCESS,
PAY_ERROR,
PAY_CLOSE
data
string
required

Order data as a JSON string; parsed structure see gatePaymentData.

client_id
string

Merchant client_id that created the order.

gatePaymentData
object

Parsed order details from data. For non-address payments, use orderAmount to determine the paid amount.

description
any

Response

200 - application/json

HTTP 200 indicates the merchant successfully received the notification.

Response body returned by the merchant after receiving the notification.

returnCode
string
required

Return status code; SUCCESS indicates success.

returnMessage
string | null

Return message; may be empty on success.