Bills & Utilities API Documentation v1.0 REST

Overview & Architecture

The Bills & Utilities REST API allows third-party developers, fintech platforms, and agencies to automate Airtime recharge, Direct & SME Internet Data bundles, Cable TV subscription renewals (DSTV, GOTV, Startimes, Showmax), and Prepaid/Postpaid Electricity token generation across all 11 licensed Nigerian electricity distribution companies (Discos).

Base Endpoint (Production)
https://irust.ng/api/v1/bills
Data Format & Security
HTTPS Only • JSON Payload • Bearer Token Auth
Atomic Ledger & Automatic Refund Guarantee: Every bill payment transaction is protected by atomic balance locking. In the unlikely event that a downstream telecom operator or DISCO gateway experiences a timeout or delivery failure, your developer wallet balance is instantly refunded and logged in your transaction ledger.

Authentication & Standard Headers

Pass your developer API key in the Authorization header using the Bearer scheme.

Header Value Requirement Description
Authorization Bearer YOUR_API_TOKEN Required Your personal secret API token generated from Profile Settings.
Accept application/json Required Expects JSON responses from the server.
Content-Type application/json Required Format for all POST request bodies.
POST

/api/v1/bills/airtime/purchase

Instant Airtime

Top up airtime directly to any Nigerian mobile phone number across MTN, Airtel, Glo, and 9mobile.

Request Body (JSON)
Field Type Required Allowed Values Description
network string Yes mtn, airtel, glo, etisalat Operator slug (use etisalat for 9mobile).
mobileno string Yes 11 digits (e.g. 08012345678) Recipient mobile phone number.
amount number Yes Min: 50, Max: 50000 Recharge face value in Naira (₦).
Example Request Payload
{
  "network": "mtn",
  "mobileno": "08031234567",
  "amount": 1000
}
HTTP 200 Success Response
{
  "status": "success",
  "message": "Airtime delivery successful",
  "data": {
    "reference": "AIR_20261001123456_A1B2C3",
    "network": "MTN",
    "phone": "08031234567",
    "amount": 1000,
    "balance_after": 24000.00,
    "created_at": "2026-10-01T12:34:56.000000Z"
  }
}
POST

/api/v1/bills/data/purchase

Direct Data Bundles

Purchase standard data bundles (Daily, Weekly, Monthly) directly from telecom operators.

Request Body (JSON)
Field Type Required Description
network string Yes Network service ID (e.g. mtn-data, airtel-data, glo-data, etisalat-data).
bundle string Yes Bundle plan variation code from the list endpoint.
mobileno string Yes Recipient 11-digit phone number.
GET /api/v1/bills/data/plans?network=mtn-data

Retrieve all available data plan codes and pricing.

POST

/api/v1/bills/sme-data/purchase

SME & Corporate Rates

Purchase heavily discounted SME and Corporate Gifting bundles with instant activation.

Request Body (JSON)
Field Type Required Description
plan_id string Yes SME Plan ID (e.g. 215 for MTN 1.0GB SME, 283 for Airtel 10.0GB).
mobileno string Yes Recipient 11-digit phone number.
GET /api/v1/bills/sme-data/plans?network=MTN

Query real-time SME packages, size, validity, and wholesale price.

POST

/api/v1/bills/cable/purchase

Pay TV Subscription

Renew or upgrade bouquets for DSTV, GOTV, Startimes, and Showmax.

POST /api/v1/bills/cable/verify

Pre-validate the smartcard / IUC number before initiating payment.

{"service_id": "dstv", "billersCode": "1234567890"}
Purchase Request Body (JSON)
Field Type Required Description
service_id string Yes dstv, gotv, startimes, showmax
billersCode string Yes Smartcard or IUC number.
subscription_type string Yes renew or change
amount number Yes Subscription amount in Naira.
phone string Yes Customer phone number for notification.
variation_code string Optional Required if subscription_type is change.
POST

/api/v1/bills/electricity/purchase

Token & Bill Settlement

Purchase prepaid tokens or pay postpaid bills across all 11 Nigerian Electricity Distribution Companies (IKEDC, EKEDC, AEDC, KEDCO, PHED, JEDplc, KAEDCO, EEDC, BEDC, IBEDC, YEDC).

POST /api/v1/bills/electricity/verify

Verify meter number, registered name, and service address before charging.

{"service_id": "ikeja-electric", "meter_number": "01234567890", "meter_type": "prepaid"}
Purchase Request Body (JSON)
Field Type Required Description
service_id string Yes Disco slug (e.g. ikeja-electric, abuja-electric, kano-electric).
meter_number string Yes Prepaid or Postpaid meter account number.
meter_type string Yes prepaid or postpaid
amount number Yes Minimum ₦500.
phone string Yes Recipient mobile number (token SMS will be delivered here).
HTTP 200 Success Response (Prepaid Token Generated)
{
  "status": "success",
  "message": "Electricity payment completed",
  "data": {
    "reference": "ELC_20261001124500_B8F2A1",
    "disco": "ikeja-electric",
    "meter_number": "01234567890",
    "meter_type": "prepaid",
    "token": "4820-1928-3849-2019-4829",
    "amount": 5000,
    "balance_after": 19000.00,
    "created_at": "2026-10-01T12:45:00.000000Z"
  }
}
GET / POST

/api/v1/bills/status/{reference?}

Audit & Verification

Query the status and receipt of any bill payment by passing the transaction reference in the URL path, as a query parameter (?reference=...), or in a JSON body.

Multi-Language Code Examples

curl -X POST "https://irust.ng/api/v1/bills/airtime/purchase" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "network": "mtn",
    "mobileno": "08031234567",
    "amount": 1000
  }'

HTTP Status & Error Codes

HTTP Code Meaning Description
200 OK Success The bill payment or lookup was completed successfully.
400 Bad Request Provider Error / Insufficient Balance Wallet deficit or downstream telecom / disco delivery rejection. Wallet is auto-refunded.
401 Unauthorized Invalid Token Missing or invalid Bearer API token.
404 Not Found Not Found The specified transaction reference was not found on your account.
422 Unprocessable Validation Error Required parameters missing, phone number not 11 digits, or invalid amount.
NIN TRUST
Please wait ...

Securing your session