List webhook deliveries
Bearer ds_live_ / ds_test_/api/v1/merchant/webhook/deliveriesReturns the delivery log for your transaction webhooks, newest first — one entry per attempt, with the payload sent and your endpoint's response.
curl -X GET "https://finaldatasub.com/api/v1/merchant/webhook/deliveries?status=failed&per_page=25" \
-H "Authorization: Bearer ds_live_YOUR_KEY" \
-H "Accept: application/json"Authentication
Send your secret API key in the header. Authorization: Token … and X-API-Key: … are also accepted.
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer ds_live_YOUR_KEY | Yes |
| Accept | application/json | Recommended |
Authentication failures (401 UNAUTHORIZED, 403 IP_NOT_ALLOWED / ACCOUNT_SUSPENDED / API_ACCESS_NOT_APPROVED, 429 RATE_LIMITED) are listed in Authentication.
Parameters
Responses
200 OK — OK
{
"deliveries": [
{
"id": 9031,
"event": "transaction.successful",
"delivery_id": "9b2f6c1e-4d7a-4f0b-8e3c-2a1d5f6e7b80",
"url": "https://example.com/webhooks/vtu",
"attempt": 1,
"successful": false,
"http_status": 500,
"duration_ms": 412,
"error": null,
"response_body": "Internal Server Error",
"payload": {
"event": "transaction.successful",
"mode": "live",
"delivery_id": "9b2f6c1e-4d7a-4f0b-8e3c-2a1d5f6e7b80",
"sent_at": "2026-10-05T10:15:24+01:00",
"data": {
"status": "successful",
"reference": "ORDER-10021",
"channel": "api",
"transaction_id": "DS261005101522K7Q2ZP4M",
"category": "data",
"message": "Transaction successful.",
"network": "MTN",
"biller": "MTN Data",
"biller_slug": "mtn-data",
"product_id": 212,
"product": "MTN SME 1GB - 30 Days",
"plan": "MTN SME 1GB - 30 Days",
"phone": "08031234567",
"customer_ref": "08031234567",
"quantity": 1,
"unit_amount": "480.00",
"amount": "480.00",
"face_amount": "500.00",
"fee": "0.00",
"discount": "20.00",
"total_deducted": "480.00",
"balance_before": "25000.00",
"balance_after": "24520.00",
"provider_reference": "PRV-88213409",
"purchased_at": "2026-10-05T10:15:22+01:00"
}
},
"reference": "ORDER-10021",
"resendable": true,
"created_at": "2026-10-05T10:15:24+01:00"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"total": 1
}
}Errors
Errors specific to this endpoint, in addition to the authentication and validation errors common to every request.
| Code | HTTP | When |
|---|---|---|
| INVALID_STATUS | 400 | status is not success or failed. |
| INVALID_PER_PAGE | 400 | per_page is not between 1 and 100. |
Notes
response_bodyis truncated to 500 characters.errorholds the connection error when there was no HTTP response.