Developer Portal
BILL PAYMENT

Data Bundle API

Query live telecom data plans and instantly purchase direct mobile data bundles across MTN, Airtel, Glo, and 9mobile.

Supported Networks & Discount Rates

NETWORK SERVICE ID / CODE ACCEPTED ALIASES DISCOUNT (BASE PRICE) STATUS
MTN Nigeria Data mtn-data mtn-data, mtn 0.0% Active
Airtel Nigeria Data airtel-data airtel-data, airtel 0.0% Active
Glo Nigeria Data glo-data glo-data, glo 0.0% Active
9mobile Nigeria Data etisalat-data etisalat-data, 9mobile 0.0% Active

Step 1: Fetch Available Data Plans

Query available plans to obtain the bundle (variation code) and exact pricing for the chosen network.

GET /api/v1/data/variations?network=mtn-data
PARAMETER TYPE DESCRIPTION REQUIRED
network string Filter by network: mtn-data, airtel-data, glo-data, or etisalat-data. (Omit to get all). Optional

Step 2: Purchase Data Bundle

POST /api/v1/data/purchase
Authentication & Headers
HEADER VALUE REQUIRED
Authorization Bearer YOUR_API_TOKEN Yes
Content-Type application/json Yes

Request Parameters

PARAMETER TYPE DESCRIPTION REQUIRED
network string Supported: mtn-data, airtel-data, glo-data, etisalat-data (or aliases: mtn, airtel, glo, 9mobile). Required
mobileno string 11-digit Nigerian recipient mobile number (e.g. 08012345678). Required
bundle string The exact variation code of the chosen data plan from Step 1 (e.g. mtn-100mb-100). Required
request_id string Optional unique reference ID for idempotency and duplicate request protection. Optional
Sample Request Payload
JSON
{
    "network": "mtn-data",
    "mobileno": "08012345678",
    "bundle": "mtn-100mb-100",
    "request_id": "REQ_DATA_92810"
}
Success Response (200 OK)
{
    "status": "success",
    "code": 200,
    "message": "Data successful",
    "data": {
        "transaction_ref": "202610194829105",
        "request_id": "REQ_DATA_92810",
        "network": "mtn-data",
        "network_name": "mtn",
        "bundle": "mtn-100mb-100",
        "plan_name": "MTN 100MB Direct",
        "amount": 100.0,
        "phone": "08012345678",
        "type": "Data Purchase",
        "commission_earned": 2.0,
        "new_balance": 3902.0,
        "status": "success"
    }
}
Failed Response (400 Bad Request)
{
    "status": "failed",
    "code": 400,
    "message": "Data failed."
}