{
"main_order": {
"batch_id": "831618381568",
"merchant_id": 17329983,
"status": "SUCCESS",
"client_id": "igasgasdbub",
"pay_back_status": "NO",
"channel_id": ""
},
"suborders": [
{
"merchant_id": 130559,
"channel_id": "",
"suborder_id": "30969031299072",
"chain": "TRX",
"address": "QBTW9qTMQBTW9qnoeMMmUxaAWEqVDDUgUw",
"currency": "USDT",
"amount": 2362.1,
"fee": 1,
"tx_id": "aaa33e642d6fb6e3272ae3c21c60f1248d1cd7ccdc000458308d690699",
"memo": "",
"status": "DONE",
"merchant_withdraw_id": "1839295815",
"fee_type": 1,
"batch_withdraw_id": "",
"desc": "",
"reconciliation_status": 0,
"is_placed": 1,
"finish_time": 1748581414000,
"sub_amount": 2363.1,
"done_amount": 2362.1
}
]
}When a batch withdrawal order status changes (e.g., all successful, all failed, or partially successful), GatePay will send an asynchronous POST notification to the callback URL configured by the merchant.
The callback message contains the main_order object and suborders array. After receiving the callback, signature verification must be performed before processing business logic. Use batch_id + merchant_withdraw_id as the idempotency key to avoid duplicate updates. If no callback is received for an extended period, polling compensation can be done through the withdrawal query API.
{
"main_order": {
"batch_id": "831618381568",
"merchant_id": 17329983,
"status": "SUCCESS",
"client_id": "igasgasdbub",
"pay_back_status": "NO",
"channel_id": ""
},
"suborders": [
{
"merchant_id": 130559,
"channel_id": "",
"suborder_id": "30969031299072",
"chain": "TRX",
"address": "QBTW9qTMQBTW9qnoeMMmUxaAWEqVDDUgUw",
"currency": "USDT",
"amount": 2362.1,
"fee": 1,
"tx_id": "aaa33e642d6fb6e3272ae3c21c60f1248d1cd7ccdc000458308d690699",
"memo": "",
"status": "DONE",
"merchant_withdraw_id": "1839295815",
"fee_type": 1,
"batch_withdraw_id": "",
"desc": "",
"reconciliation_status": 0,
"is_placed": 1,
"finish_time": 1748581414000,
"sub_amount": 2363.1,
"done_amount": 2362.1
}
]
}Returns HTTP 200 to indicate the callback notification has been received.
Data structure for GatePay callback to merchant when withdrawal order status changes, including main order object and suborder array.