BetaData

API Documentation

Integrate BetaData services into your own platform

The BetaData API allows developers and businesses to programmatically access airtime, data, cable TV, electricity, and exam pin services. You need an API User account to access the API. Create an account, upgrade from your dashboard, then open Profile → Account to copy your API key and set your webhook URL.

Authentication Endpoints Buy Airtime Buy Data Cable TV Electricity Exam Pins Wallet Error Codes
Base URL
https://data.betadata.com.ng/api/v1

Authentication

Your current API access page is Profile → Account → API Access. If you just upgraded to API User, open that section once to confirm your key is available and save any webhook URL you want to use.

All API requests must include your API key in the request header. You can find your API key in your dashboard under Settings → API Key.

Request Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Quick Start
  1. Create or log into your BetaData account.
  2. Upgrade the account to API User.
  3. Open Profile → Account and copy your API key.
  4. Optional: save a webhook URL to receive transaction updates automatically.
  5. Send the key as a Bearer token in every API request.

Available Endpoints

Method Endpoint Description
POST /airtime/buy Purchase airtime for any network
POST /data/buy Purchase data bundle
POST /cable/buy Pay cable TV subscription
POST /electricity/buy Pay electricity bill
POST /exam/buy Buy exam result checker pin
GET verification/products List verification and print services
POST /verification/submit Submit NIN, BVN, phone, print NIN/BVN, or other verification request
GET verification/status Check verification request status
GET cac/products List CAC products
POST /cac/submit Submit CAC registration/document request
GET cac/status Check CAC request status
GET wallet/balance Check your wallet balance
GET transactions List recent transactions
GET data/plans Get available data plans

Buy Airtime

Purchase airtime for any Nigerian network.

POST /airtime/buy
{
  "phone":   "08012345678",
  "network": "mtn",           // mtn | glo | airtel | 9mobile
  "amount":  500,             // Amount in Naira (min ₦50)
  "ref":     "MY_REF_001"     // Your unique transaction reference
}
Response (Success)
{
  "success": true,
  "message": "Airtime sent successfully",
  "data": {
    "transaction_id": "TXN_ABC12345",
    "phone":          "08012345678",
    "network":        "MTN",
    "amount":         500,
    "status":         "success",
    "timestamp":      "2025-01-15T14:30:00Z"
  }
}

Buy Data

Purchase a data bundle. First fetch available plans, then use the plan ID to purchase. You can filter plans with plan_type=sme, gifting, corporate, direct, or awoof.

GET /data/plans?network=mtn
// Returns list of available plans:
{
  "success": true,
  "plans": [
    { "id": 12, "network": "MTN", "type": "SME", "plan_type": "SME", "name": "MTN 1GB SME", "size": "1GB", "validity": "30 days", "price": 250 },
    { "id": 18, "network": "MTN", "type": "GIFTING", "plan_type": "GIFTING", "name": "MTN 2GB Gifting", "size": "2GB", "validity": "30 days", "price": 480 },
    { "id": 25, "network": "MTN", "type": "AWOOF", "plan_type": "AWOOF", "name": "MTN AWOOF 1.5GB", "size": "1.5GB", "validity": "7 days", "price": 350 },
    { "id": 31, "network": "MTN", "type": "DIRECT", "plan_type": "DIRECT", "name": "MTN 5GB Direct", "size": "5GB", "validity": "30 days", "price": 1200 }
  ]
}
POST /data/buy
{
  "phone":   "08012345678",
  "plan_id": 12,
  "ref":     "MY_REF_002"
}

Cable TV

POST /cable/buy
{
  "provider":     "dstv",          // dstv | gotv | startimes
  "smartcard_no": "1234567890",
  "plan_id":      45,
  "ref":          "MY_REF_003"
}

Electricity

POST /electricity/buy
{
  "disco":      "ikedc",          // ikedc | ekedc | aedc | phed | etc
  "meter_no":   "12345678901",
  "meter_type": "prepaid",        // prepaid | postpaid
  "amount":     5000,
  "ref":        "MY_REF_004"
}

// Response includes token:
{
  "success": true,
  "token":   "1234-5678-9012-3456-7890",
  "units":   "45.6 kWh"
}

Exam Pins

POST /exam/buy
{
  "exam_type": "waec",            // waec | neco | nabteb | jamb
  "quantity":  1,
  "ref":       "MY_REF_005"
}

Verification and Print Services

Use the same API token to list and submit NIN/BVN verification, Print NIN, and Print BVN requests.

GET /verification/products
// Includes price and slip/card variants where available.
{
  "success": true,
  "data": {
    "products": [
      {
        "slug": "print-nin",
        "name": "Print NIN Slip",
        "price": 700,
        "variants": [
          { "key": "regular", "name": "Regular NIN Slip", "price": 700 },
          { "key": "premium", "name": "Premium NIN Slip", "price": 1500 }
        ]
      }
    ]
  }
}
POST /verification/submit
{
  "product_slug": "print-nin",
  "lookup_type": "nin",
  "slip_type": "regular",
  "nin": "12345678901",
  "ref": "MY_REF_006"
}

// Status check:
GET /verification/status?request_id=MY_REF_006

CAC Services

POST /cac/submit
{
  "product_slug": "business-name-registration",
  "business_name": "Example Ventures",
  "business_type": "Enterprise",
  "owners": "John Doe",
  "phone": "08012345678",
  "address": "Lagos, Nigeria",
  "ref": "MY_REF_007"
}

// Status check:
GET /cac/status?request_id=MY_REF_007

Wallet Balance

GET /wallet/balance
{
  "success": true,
  "balance": 15750.00,
  "currency": "NGN"
}

Error Codes

Code Meaning Action
401 Unauthorized — invalid or missing API key Check your API key in dashboard
402 Insufficient wallet balance Top up your wallet and retry
404 Plan or service not found Fetch available plans first
422 Validation error — missing or invalid field Check request body fields
429 Rate limit exceeded Wait 60 seconds before retrying
503 Provider temporarily unavailable Retry after a few minutes

Ready to Integrate?

Create an account, upgrade to API User, and start building in minutes.

Create Account Contact Support