Webhooks
Partner callbacks from GatewayCallbackService when transactions complete.
Overview
Provide callbackUrl on process-transfer requests. RukaPay POSTs JSON to your URL when a transaction reaches SUCCESS or FAILED. Collections require callbackUrl.
Headers: Content-Type: application/json, User-Agent: RukaPay-Gateway/1.0. Timeout: 10 seconds.
When callbacks are sent
- Immediately after process-transfer completes (SUCCESS or FAILED)
- When MTN/Airtel inbound webhooks finalize a collection (
webhook-processing.service)
Callback payload
Partner callback
{
"partnerReference": "PARTNER-REF-123456",
"status": "SUCCESS",
"transactionId": "cm5abc123xyz",
"mnoId": "MTN-FIN-987654",
"mnoTransactionId": "MTN-FIN-987654",
"amount": 50000,
"fee": 1000,
"totalCharged": 51000,
"metadata": { "customerId": "12345", "orderId": "ORD-789" },
"timestamp": "2026-05-21T10:30:45.000Z"
}Fields
partnerReference— your reference from the requeststatus— SUCCESS or FAILEDtransactionId— RukaPay transaction IDmnoTransactionId— MTN/Airtel financial ID when applicableamount,fee,totalChargedmetadata— echoed from your requesterrorMessage— present on FAILED