KDA API Logo
API Docs
Account Management

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.