VTU Developer API

VTU API for Airtime, Data and Digital Services

Connect your website, mobile application or software to VtuFast. Our VTU API allows authorized resellers and vendors to retrieve data and airtime plans, check wallet balances, and submit airtime and data orders programmatically.

API Access Requirements

  • Only reseller and vendor accounts can access the API.
  • Generate an API key from your API Access page.
  • Store your API key securely on your server. Never expose it in browser JavaScript.
  • Include your 4-digit transaction PIN when submitting airtime or data orders.
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Base URL: https://vtufast.com/api.php

GET /?route=account

Account Details API

Retrieve the authenticated account information, including the account name, email address, account type, wallet balance and transaction PIN status. The transaction PIN itself is never returned.

curl "https://vtufast.com/api.php?route=account" \
  -H "Authorization: Bearer YOUR_API_KEY"
Sample Response
{
    "success": true,
    "data": {
        "id": 42,
        "name": "Jane Doe",
        "email": "jane@example.com",
        "role": "reseller",
        "wallet_balance": 12500.00,
        "currency": "NGN",
        "transaction_pin_set": true
    }
}
GET /?route=balance

Wallet Balance API

Check the current wallet balance of the authenticated reseller or vendor account.

curl "https://vtufast.com/api.php?route=balance" \
  -H "Authorization: Bearer YOUR_API_KEY"
Sample Response
{
    "success": true,
    "data": {
        "balance": 12500.00,
        "currency": "NGN"
    }
}
GET /?route=plans&service=data

Data & Airtime Plans API

Retrieve available airtime or mobile data plans from VtuFast. Call this endpoint before placing an order so your application can use the correct plan ID and network.

Use search=ALL to return every active plan. You can also filter plans by using search=MTN, search=GLO, search=AIRTEL, or search=9MOBILE.

Use the returned id as the price_id when submitting an order and use the corresponding network value in the order request.

curl "https://vtufast.com/api.php?route=plans&service=data&search=ALL" \
  -H "Authorization: Bearer YOUR_API_KEY"
Sample Response
{
    "success": true,
    "data": [{
        "id": 123,
        "network": "MTN",
        "item_name": "1.5GB",
        "validity": "30 days",
        "price": 1200.00
    }]
}
POST /?route=data

Buy Mobile Data API

Use this endpoint to purchase mobile data for a Nigerian phone number. The price_id must come from the plans endpoint and must belong to the selected network.

curl -X POST "https://vtufast.com/api.php?route=data" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "price_id": 123,
    "network": "MTN",
    "phone": "08031234567",
    "transaction_pin": "1234"
  }'
Sample Success Response
{
    "success": true,
    "message": "Data purchase successful.",
    "receipt_id": 789
}
Supported Networks
"network": "MTN"
"network": "GLO"
"network": "AIRTEL"
"network": "9MOBILE"
POST /?route=airtime

Buy Airtime API

Use this endpoint to purchase airtime programmatically. First retrieve an active airtime plan using GET /?route=plans&service=airtime. Then send the matching price_id, network, phone number and airtime amount.

curl -X POST "https://vtufast.com/api.php?route=airtime" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "price_id": 456,
    "network": "AIRTEL",
    "phone": "08031234567",
    "amount": 1000,
    "transaction_pin": "1234"
  }'
Sample Success Response
{
    "success": true,
    "message": "Airtime purchase successful.",
    "reference": "AIR-AB12CD34EF56",
    "charge": 990.00,
    "receipt_id": 790
}
Supported Networks
"network": "MTN"
"network": "GLO"
"network": "AIRTEL"
"network": "9MOBILE"

API Response Codes

The API uses standard HTTP response codes to indicate whether a request was successful or requires attention.

  • 200 — Request completed successfully.
  • 401 — API key is missing or invalid.
  • 422 — Invalid request, invalid order details or insufficient wallet balance.
  • 503 — Upstream service or provider is temporarily unavailable.
Sample Error Response
{
    "success": false,
    "message": "The selected price_id does not belong to the requested network."
}

API Security

Keep your API credentials private. API requests should be made from your backend server rather than directly from browser-side JavaScript or publicly accessible mobile application code.

Never publish your API key, transaction PIN or other private credentials in source code repositories, frontend JavaScript or public documentation.

Start Integrating

Build Your Own VTU Platform

Use the API to connect your website or application to airtime and data services and build your own customer experience on top of VtuFast.