Loading...
Loading...
Configure webhook notifications for Connected Banking payout events.
Last updated: 2026-02-21
Receive real-time notifications for all Connected Banking payout transactions, eliminating the need for constant polling and ensuring immediate awareness of transaction status changes.
Webhooks will be sent to the callback_url provided during payout initiation via the Connected Banking Payout API.
Required Field in Payout Request:
{
"callback_url": "https://your-website.com/webhook/connected-banking-payout"
}
Content-Type: application/json
User-Agent: Paywize-ConnectedBanking-Webhook/1.0
X-Paywize-Signature: sha256=signature_hash
X-Paywize-Event: payout_status_change
X-Paywize-Timestamp: 1640995200
{
"data": "encrypted_payload_using_AES_256_CBC"
}
{
"event_type": "payout_status_change",
"transaction_id": "CBP123456789",
"merchant_ref_id": "MERCHANT_TXN_001",
"amount": "10000.00",
"currency": "INR",
"status": "COMPLETED",
"status_message": "Payout completed successfully",
"bank_reference": "BNK789456123",
"beneficiary": {
"account_number": "1234567890",
"ifsc": "HDFC0001234",
"account_holder_name": "John Doe",
"bank_name": "HDFC Bank"
},
"payment_details": {
"payment_mode": "OPEN_BANKING",
"processing_time": "30",
"charges": "5.00",
"net_amount": "9995.00"
},
"timestamps": {
"initiated_at": "2026-01-15T10:30:00Z",
"completed_at": "2026-01-15T10:30:30Z",
"webhook_sent_at": "2026-01-15T10:30:31Z"
},
"metadata": {
"purpose": "salary_payment",
"department": "engineering",
"employee_id": "EMP001"
}
}
| Field | Type | Description |
|---|---|---|
| event_type | String | Type of webhook event |
| transaction_id | String | Connected Banking transaction ID |
| merchant_ref_id | String | Merchant provided reference ID |
| amount | String | Transaction amount |
| currency | String | Transaction currency (INR) |
| status | String | Current transaction status |
| status_message | String | Detailed status description |
| bank_reference | String | Bank-generated reference number |
| beneficiary | Object | Beneficiary account details |
| payment_details | Object | Payment processing information |
| timestamps | Object | Transaction timestamp information |
| metadata | Object | Custom metadata from payout request |
const crypto = require('crypto');
function verifyWebhookSignature(payload, signature, secret) {
const computedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return `sha256=${computedSignature}` === signature;
}
// Usage
const isValid = verifyWebhookSignature(
webhookPayload,
request.headers['x-paywize-signature'],
'your_webhook_secret'
);