VTUAgent Logo

Developer API · Airtime API

Airtime API for MTN, Airtel, Glo and 9mobile

Send airtime to any Nigerian number with one request. You choose the amount, we deliver it and pay commission back on every successful top-up.

  • REST and JSON
  • Bearer API key
  • Refund on every failed purchase
POST/v1/airtime/purchase
{
  "network": "mtn",
  "phone": "08012345678",
  "amount": 100,
  "request_ref": "9f1c2a4e-7b3d-4c8e-9a1f-2b3c4d5e6f70"
}
Response200 · successful

Example request

POST /v1/airtime/purchase, in the language your site is built with.

curl -X POST https://api.vtuagent.com/v1/airtime/purchase \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "network": "mtn",
  "phone": "08012345678",
  "amount": 100,
  "request_ref": "9f1c2a4e-7b3d-4c8e-9a1f-2b3c4d5e6f70"
}'

Response

{
  "status": "successful",
  "status_code": 200,
  "message": "Airtime purchase successful - 100 to 08012345678",
  "reference": "9f1c2a4e-7b3d-4c8e-9a1f-2b3c4d5e6f70",
  "data": {
    "amount": "100",
    "network": "mtn",
    "phone": "08012345678"
  }
}

How it behaves

  • Four networks, one field

    Set network to mtn, airtel, glo or etisalat (9mobile). The amount is in naira and can be a number or a numeric string.

  • Answer within 15 seconds

    The request waits up to 15 seconds for the network. If it’s slower you get 202 pending, and the result arrives by webhook or from the status endpoint.

  • Charged once, refunded on failure

    Your wallet is debited when the request is accepted. If the provider rejects the purchase you get HTTP 424 and the money is already back in your wallet.

  • Safe to retry

    Every purchase carries your own request_ref (a UUID works). Sending the same reference twice is rejected with 400, so a retry after a timeout can’t charge you twice.

Airtime commission by account type

The share of each payment paid back to you. API accounts get the API column.

NetworkRegularAgentAPI
9MOBILE2%2.5%3%
AIRTEL2%2.5%3%
GLO2%2.5%3%
MTN2%2.5%3%

Commission is paid into your commission balance on every successful purchase. Agent and API accounts earn more.

Get your API key

  1. Step 1

    Create an account

    Sign up for free with your email.

  2. Step 2

    Apply for API access

    On Upgrade Account, choose API User and add the website or app you’ll connect.

  3. Step 3

    Get your key

    Once you’re approved, generate your key in Settings → API Keys. Send it as Authorization: Bearer <key> on every request.

  4. Step 4

    Fund your wallet

    Purchases are paid from your wallet balance at API prices, so top it up by bank transfer or card.

Questions people ask

Which networks can I top up?

MTN, Airtel, Glo and 9mobile. 9mobile uses the network value etisalat.

Do I earn commission on airtime sold through the API?

Yes. The API rate for each network is in the table on this page, and it is the highest of our three account types.

How do I know if a top-up succeeded?

Most top-ups return 200 successful in the same request. Slower ones return 202 pending, followed by an airtime.purchase.success or airtime.purchase.failed webhook. You can also poll POST /v1/transaction/status.

Can I retry a top-up that timed out?

Check it first with POST /v1/transaction/status using the same request_ref. A purchase with a reference you already used is rejected, so you can’t pay twice by mistake.

Start selling with the Airtime API

Apply for API access, then follow the docs at docs.vtuagent.com.