{
"event": "payment.completed",
"data": {
"id": "6a51a0000000000000000101",
"reference": "my_custom_ref_123",
"code": "abc123def456",
"amount": 50000,
"amountPaid": 50000,
"fee": 500,
"amountSettled": 49500,
"currency": "NGN",
"status": "completed",
"channel": "bank_transfer",
"customer": {
"email": "customer@example.com",
"name": "John Doe"
},
"paidAt": "2026-07-10T12:05:00.000Z",
"createdAt": "2026-07-10T12:00:00.000Z",
"updatedAt": "2026-07-10T12:05:00.000Z"
}
}Webhooks
Payment completed
Sent when the checkout is paid in full. amountSettled is what reaches your balance after fee. Delivered as a POST to your webhook URL; return a 2xx to acknowledge.
WEBHOOK
payment.completed
{
"event": "payment.completed",
"data": {
"id": "6a51a0000000000000000101",
"reference": "my_custom_ref_123",
"code": "abc123def456",
"amount": 50000,
"amountPaid": 50000,
"fee": 500,
"amountSettled": 49500,
"currency": "NGN",
"status": "completed",
"channel": "bank_transfer",
"customer": {
"email": "customer@example.com",
"name": "John Doe"
},
"paidAt": "2026-07-10T12:05:00.000Z",
"createdAt": "2026-07-10T12:00:00.000Z",
"updatedAt": "2026-07-10T12:05:00.000Z"
}
}Authorizations
Your Business API Key
Headers
Hex HMAC-SHA512 of the raw request body, keyed with your webhook secret. Verify it before trusting the payload.
Body
application/json
Response
200
Return any 2xx once the event is stored.
