Webhook Event Types
Event Types
1. Account Upgrade Status
Event Type: account.upgrade.status
Triggered when an account upgrade request is approved or rejected.
Approved Payload
{
"event_id": "evt_abc123",
"event_type": "account.upgrade.status",
"timestamp": "2025-02-11T15:00:00Z",
"data": {
"account_no": "0702334455",
"status": "APPROVED",
"status_reason": "",
"previous_tier": "Tier1",
"new_tier": "Tier3"
},
"metadata": {
"environment": "production"
}
}
Common Rejection Reasons
| Reason | Action Required |
|---|---|
| ID Image is not clear | Re-upload clearer image |
| Utility bill expired | Upload recent bill (<3 months) |
| Name mismatch | Verify customer details |
| Invalid NIN | Confirm NIN with customer |
2. Transaction Inflow
Event Type: transaction.inflow
Triggered when a successful credit is received into a wallet.
Transaction.inflow
{
"event_id": "EVT_123456",
"event_type": "transaction_inflow",
"calltime": "2026-04-16T10:30:00Z",
"data": {
"credit_account_no": "0123456789",
"credit_account_name": "John Doe",
"transaction_amount": "5000",
"transaction_reference": "TRX_78910",
"bo_referenceno": "BO_445566",
"source_account": "0987654321",
"source_account_name": "Jane Doe",
"source_bank": "GTBank",
"source_bank_code": "058",
"narration": "Payment for invoice 123",
"session_id": "SES_998877",
"transaction_date": "2026-04-16T10:25:00Z",
"tran_response_code": "00",
"tran_response_message": "Success",
"channel_code": "ATM",
"transaction_type": "credit",
"transaction_fee": "50",
"UserId": "USR_1001"
},
"metadata": {
"environment": "sandbox",
"retry_count": 1
}
}
Common Fields
All webhook events include:
| Field | Type | Description |
|---|---|---|
event_id | string | Unique event identifier (for idempotency) |
event_type | string | Type of event |
timestamp | string | When the event occurred (ISO 8601 UTC) |
data | object | Event-specific data |
metadata | object | Additional context (environment, etc.) |