Skip to main content
Buy airtime, data, cable TV subscriptions, electricity tokens, and exam pins directly via API. Every purchase debits your wallet first, then either confirms, is left processing (for providers that confirm asynchronously), or fails and is automatically refunded to your wallet.
VTU is enabled per-merchant. If it isn’t enabled on your account, these endpoints return a SERVICE_NOT_ENABLED error — contact support to request access.
Unlike other ABCMPay endpoints, VTU’s reference is generated by us, not sent by you — it comes back in the purchase response. Save it to poll Check VTU Transaction Status.

Buy Airtime

POST /api/v1/vtu/airtime
string
required
One of: mtn, glo, airtel, 9mobile.
string
required
Recipient phone number.
number
required
Amount in Naira (min ₦50, max ₦50,000).
string
default:"VTU"
VTU or Sharesell.
Response
This same response shape (success, status, message, reference, token) is returned by every purchase endpoint below.

Data

GET /api/v1/vtu/data-plans?network={network} Returns available data plans, each with the id you pass as data_plan_id below. network is optional and filters the list. POST /api/v1/vtu/data
string
required
Recipient phone number.
integer
required
Plan ID from Get Data Plans.

Cable TV

GET /api/v1/vtu/cable-plans?provider_name={provider} Returns available cable plans (DSTV, GOTV, Startimes). provider_name is optional. POST /api/v1/vtu/cable
integer
required
Plan ID from Get Cable Plans.
string
required
Smart card / IUC number.
string
Customer phone number.

Electricity

GET /api/v1/vtu/discos Returns supported electricity providers (discos). POST /api/v1/vtu/electricity
integer
required
Disco ID from Get Discos.
string
required
Meter number.
string
required
Prepaid or Postpaid.
number
required
Amount in Naira (min ₦500, max ₦100,000).
string
string
string
On success, token in the response carries the prepaid meter token — the only endpoint where that field is populated.

Exam Pins

GET /api/v1/vtu/exam-types Returns supported exam types (WAEC, NECO, etc.), each with a selling_price. POST /api/v1/vtu/exam
integer
required
Exam type ID from Get Exam Types.
integer
required
Number of pins (1–20).

Check VTU Transaction Status

GET /api/v1/vtu/transaction/status?reference={reference} Use the reference returned from any purchase endpoint above.
Response