Paylux VTU API
Sell airtime, data, pay bills, and send SMS from your own app using your wallet balance. Same pricing and tier discounts as the dashboard. REST over HTTPS, JSON in and out.
To access the API, upgrade your account to API Client tier. Your API keys will be generated automatically.
http://vtuapp.paylux.com.ng/api.php?action={action}
Authentication
Send your key pair as headers on every request. Get your keys from Dashboard → API Keys after upgrading to API Client tier.
X-Secret-Key: sk_9i8u7y6t5r4e...
Errors & Rate Limits
Errors return a non-2xx status and a JSON body with a message. Rate limit is 60 requests/minute per key.
| Status | Meaning |
|---|---|
401 | Missing or invalid API keys |
402 | Insufficient wallet balance |
422 | Invalid parameters |
429 | Rate limit exceeded |
502 | Provider failed (auto-refunded) |
Get Balance
{
"status": "success",
"balance": 24850.00,
"tier": "API Client"
}
Buy Airtime
Body Parameters
| Field | Type | Description |
|---|---|---|
network | string required | mtn, glo, airtel, 9mobile |
phone | string required | 11-digit recipient number |
amount | number required | Face value in Naira (min 50) |
{
"status": "success",
"reference": "DB8A2F3C...",
"charged": 475.00,
"balance": 24375.00
}
Buy Data
Body Parameters
| Field | Type | Description |
|---|---|---|
plan_id | integer required | ID from the plans catalog (GET /api.php?action=plans) |
phone | string required | 11-digit recipient number |
{
"status": "success",
"reference": "DB3B71F2...",
"plan": "1GB mtn",
"charged": 245.00,
"balance": 24130.00
}
Get Data Plans
Returns all active data plans. Optional network query parameter to filter.
Pay Electricity
Body Parameters
| Field | Type | Description |
|---|---|---|
disco | string required | ekedc, ikedc, aedc, phed, eedc, kedco, ibedc, bedc, yedc |
meter_number | string required | Customer meter number |
meter_type | string required | prepaid or postpaid |
amount | number required | Amount in Naira (min 1000) |
phone | string | Phone for receipt SMS |
{
"status": "success",
"reference": "DBE7C3A1...",
"token": "1234-5678-9012-3456-7890",
"units": "62.50 kWh",
"charged": 5000.00,
"balance": 19130.00
}
Pay Cable TV
Body Parameters
| Field | Type | Description |
|---|---|---|
provider | string required | dstv, gotv, startimes |
smart_card | string required | Smart card / IUC number |
package_code | string required | Bouquet code (e.g. DSTV COMPACT) |
phone | string | Customer phone |
Send Bulk SMS
Body Parameters
| Field | Type | Description |
|---|---|---|
sender | string required | Sender name (max 11 chars) |
recipients | array required | Array of 11-digit phone numbers |
message | string required | SMS text (160 chars = 1 page) |
{
"status": "success",
"reference": "DBS2E8F7...",
"sent": 50,
"pages": 1,
"charged": 200.00,
"balance": 18930.00
}
Refund Policy
If a provider fails after we debit your wallet, the full amount is automatically refunded and the response returns a 502 status. You never lose money on a failed transaction.