Transaction History
Fetch your transaction history.
This endpoint requires an API key with the profile scope. Services-scoped keys will receive a 403 Forbidden.
All API requests must be made over HTTPS to: https://kda-turbo-web.vercel.app
Endpoint
Query Parameters
Prop
Type
Examples
curl -X GET https://kda-turbo-web.vercel.app/api/services/transactions \
-H "Authorization: Bearer kds_test_YOUR_API_KEY"curl -X GET "https://kda-turbo-web.vercel.app/api/services/transactions?type=DATA&page=1&limit=10" \
-H "Authorization: Bearer kds_test_YOUR_API_KEY"curl -X GET "https://kda-turbo-web.vercel.app/api/services/transactions?type=TV&page=1&limit=10" \
-H "Authorization: Bearer kds_test_YOUR_API_KEY"curl -X GET "https://kda-turbo-web.vercel.app/api/services/transactions?type=ELECTRICITY&page=1&limit=10" \
-H "Authorization: Bearer kds_test_YOUR_API_KEY"Response
Transactions are returned with fields shaped per-type — only relevant fields appear for each transaction type.
{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-AIR-AZ5F985R-SN",
"type": "AIRTIME",
"status": "SUCCESS",
"amount": 500,
"provider": "MTN",
"createdAt": "2026-06-15T16:40:24.917Z",
"description": "Airtime Purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"planId": "kds-airtime-mtn-vtu-v1-001",
"number": "08012345678",
"discountRate": "2"
}
]
}{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-DAT-BZ6G986S-SN",
"type": "DATA",
"status": "SUCCESS",
"amount": 899,
"provider": "MTN",
"createdAt": "2026-06-15T16:40:24.917Z",
"description": "Data Purchase purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"planId": "kds-data-mtn-sme-v1-003",
"number": "08012345678",
"validity": "30 Days",
"category": "SME"
}
]
}{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-TV-CX7H097T-SN",
"type": "TV",
"status": "SUCCESS",
"amount": 4400,
"provider": "DSTV",
"createdAt": "2026-06-17T11:39:02.636Z",
"description": "Tv Subscription purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"planId": "kds-tv-dstv-padi-v1-001",
"iucNumber": "1234567890",
"validity": "1 Month",
"category": "Padi",
"subscriptionType": "Padi",
"pin": "SIMULATED-PIN-1234<=>SIMULATED-SERIAL-1234"
}
]
}{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-ELC-DY8I108U-SN",
"type": "ELECTRICITY",
"status": "SUCCESS",
"amount": 5000,
"provider": "KEDCO",
"createdAt": "2026-06-17T12:00:00.000Z",
"description": "Electricity Bill purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"providerId": "kds-elec-kedco-v1",
"meterNumber": "04123456789",
"subscriptionType": "prepaid",
"address": "123 Main Street, Kano",
"electricityToken": "1111-2222-3333-4444-5555"
}
]
}{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-EPC-EZ9J219V-SN",
"type": "EXAM_PIN",
"status": "SUCCESS",
"amount": 5150,
"provider": "WAEC",
"createdAt": "2026-06-17T14:21:51.313Z",
"description": "Exam Card purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"providerId": "kds-exam-waec-v1",
"quantity": "1",
"pin": "PIN-1234567890<=>SERIAL-WEC9876543",
"cardName": "Customer"
}
]
}{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-DC-FA0K320W-SN",
"type": "DATA_PRINT",
"status": "SUCCESS",
"amount": 410,
"provider": "MTN",
"createdAt": "2026-06-17T12:30:00.000Z",
"description": "Data Card Purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"planId": "kds-data-card-mtn-750mb-v1",
"quantity": "2",
"pin": "123455666,122333333",
"serial": "856073001_3,348311767_4",
"cardName": "Eko Data Card Services"
}
]
}{
"success": true,
"pagination": {
"total": 20,
"page": 1,
"limit": 2,
"totalPages": 10
},
"transactions": [
{
"transactionId": "KDS-RC-GB1L431X-SN",
"type": "PIN_PRINT",
"status": "SUCCESS",
"amount": 196,
"provider": "GLO",
"createdAt": "2026-06-17T12:45:00.000Z",
"description": "Recharge Card Purchase successful!",
"idempotencyKey": "681227cc-2638-49fe-bbe3-d2500cf54767",
"planId": "kds-pin-glo-200-v1",
"quantity": "2",
"pin": "123455666,122333333",
"serial": "856073001_3,348311767_4",
"cardName": "Eko Print Services",
"discountRate": "2"
}
]
}Pagination Object
Prop
Type
Common Transaction Fields
All transaction objects include the following core properties regardless of type:
Prop
Type
Service-Specific Fields
Depending on the transaction type, additional metadata fields are included:
Best Practices & Next Steps
Pagination & Limits: Use page and limit query parameters to paginate large transaction datasets. The maximum limit allowed is 100 items per request.
Reconciliation via Webhooks: While you can query the Transaction History API for status checks, we recommend subscribing to Webhooks for real-time status updates instead of polling transaction history endpoints.