Developer API Documentation
Seamlessly integrate Airtime, SME & Gifting Data, Cable TV, Electricity, Data Pins, and Exam Checkers directly into your application, web portal, or custom VTU software.
API Topics
1 Overview & General Architecture
The BREMAVTU REST API allows API users to automate top-ups and subscriptions. All endpoints receive and respond with application/json.
2 Authentication Protocol
All private API endpoints require your Secret API Key. Pass your key in either the X-API-KEY header or as a Bearer token.
| Header | Type | Value Example | Description |
|---|---|---|---|
| X-API-KEY | String | brm_live_7f8a9b2c3d4e... | Recommended header for custom integrations |
| Authorization | String | Bearer brm_live_7f8a9b... | Standard HTTP Authorization format |
Security & Transaction PIN
For financial safety, purchase requests require authorization via your transaction PIN. You may provide either:
- Raw 4-digit PIN:
"transaction_pin": "1234" - Or SHA-256 Hashed PIN:
"transaction_pin_hash": "03ac674216f3e15c..."
/wallet/balance
Query your current available API wallet balance.
curl -X GET "https://www.bremasub.nutrihconsult.com/api/wallet/balance" \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Accept: application/json"
{
"status": "success",
"message": "Wallet balance retrieved successfully",
"data": {
"balance": 25400.50,
"currency": "NGN"
}
}
/airtime/purchase
Dispatches VTU or Share & Sell airtime instantly to any Nigerian network.
| Field | Type | Required | Description |
|---|---|---|---|
| network | string | Yes | mtn, airtel, glo, or 9mobile |
| amount | number | Yes | Minimum ₦50.00 |
| phone | string | Yes | Recipient phone number (e.g. 08031234567) |
| transaction_pin | string | Yes* | Your 4-digit PIN (or provide transaction_pin_hash) |
{
"network": "mtn",
"amount": 500,
"phone": "08031234567",
"transaction_pin": "1234"
}
/data/plans
List all cataloged data plans and their unique id. Pass optional query ?network=mtn to filter.
{
"status": "success",
"message": "Data plans retrieved successfully",
"data": [
{
"id": 1,
"network": "MTN",
"name": "1.0GB SME",
"data_type": "SME",
"price": 285.00,
"duration": "30 DAYS"
}
]
}
/data/purchase
Subscribe data to a target recipient using the plan's plan_id.
{
"plan_id": 1,
"phone": "08031234567",
"transaction_pin": "1234"
}
{
"status": "success",
"message": "Data purchase successful",
"data": {
"reference": "DATA_6AD9D9C33B88D",
"network": "MTN",
"plan_name": "1.0GB SME",
"phone": "08031234567",
"amount": 285.00,
"status": "successful"
}
}
7 Cable TV Subscriptions (DSTV, GOTV, Startimes)
Step 1: Retrieve plans from GET /cable/plans.
Step 2: Validate customer IUC smartcard with POST /cable/verify.
Step 3: Recharge subscription via POST /cable/purchase.
{
"plan_id": 12,
"smartcard_number": "1023456789",
"transaction_pin": "1234"
}
8 Electricity Bill & Prepaid Token
Verify meter number with POST /electricity/verify.
Purchase prepaid token with POST /electricity/purchase.
{
"provider": "ikeja-electric",
"meter_number": "01234567891",
"meter_type": "prepaid",
"amount": 2000,
"transaction_pin": "1234"
}
/exams/purchase
Generate WAEC, NECO, and NABTEB scratch pin codes.
{
"provider_id": "waec",
"quantity": 1,
"transaction_pin": "1234"
}
10 HTTP Status Codes & Error Envelope
| Code | Status | Reason |
|---|---|---|
| 200 | OK | Request completed successfully. |
| 400 | Bad Request | Invalid parameters, insufficient wallet balance, or invalid PIN. |
| 401 | Unauthorized | Missing or invalid API key. |
| 403 | Forbidden | User is not an active API User. |
| 500 | Server Error | Provider communication failure or upstream timeout. |