Once the payout is submitted, configure the downstream notification flow for payout status changes. See Payout Events.
The two webhooks below are alternative terminal outcomes for the same payout request, not two notifications to expect for one successful payout. Both use the request's merchant ID (100000000000001), recipient role (RECIPIENT), caller-owned recipient reference (merch-party-id-1234567890), and the apiTraceId/transactionId returned in its synchronous response. The submitted merchantTransactionId is 3ce49dkbf3da499k03226da1827d1979 in either case.
Completed payout webhook
{
"gatewayResponse": {
"transactionType": "PAYOUT_COMPLETED",
"transactionState": "SUCCESS",
"transactionProcessingDetails": {
"transactionTimestamp": "2026-09-25T20:30:48Z",
"apiTraceId": "b227364bab7b4f20960e2425093d79a7",
"transactionId": "0200b227364bab7b4f20960e2425093d79a7"
}
},
"party": {
"partyRole": "RECIPIENT",
"platform": {
"merchantPartyId": "merch-party-id-1234567890"
}
},
"merchantDetails": {
"merchantId": "100000000000001",
"terminalId": "10000001"
}
}
Failed payout webhook
{
"gatewayResponse": {
"transactionType": "PAYOUT_FAILED",
"transactionState": "FAILED",
"transactionProcessingDetails": {
"transactionTimestamp": "2026-09-25T20:28:11Z",
"apiTraceId": "b227364bab7b4f20960e2425093d79a7",
"transactionId": "0200b227364bab7b4f20960e2425093d79a7"
}
},
"party": {
"partyRole": "RECIPIENT",
"platform": {
"merchantPartyId": "merch-party-id-1234567890"
}
},
"merchantDetails": {
"merchantId": "100000000000001",
"terminalId": "10000001"
}
}
On receipt, authenticate the notification using the approved webhook contract, then use gatewayResponse.transactionProcessingDetails.apiTraceId or transactionId to locate the saved payout response and its request merchantTransactionId.