Airtime and Data Vending

Make airtime purchases via sub account

Changed on

You can use this endpoint to make airtime purchases via a sub account

post/v2/bill/topup/{subAccountId}

Request

  • Base URL
    https://api.nomba.com
  • URL
    https://api.nomba.com/v2/bill/topup/{subAccountId}
  • Auth
    HTTP bearer

Path parameters

subAccountIdstring uuid required
Example:890022ce-bae0-45c1-9b9d-ee7872e6ca27

The sub accountId via which airtime is to be purchased

Headers

accountIdstring uuid required
Example:890022ce-bae0-45c1-9b9d-ee7872e6ca27

The parent accountId of the business this sub account belongs to

Request body

amountnumber double required

The airtime amount to be purchased

phoneNumberstring required

Recipient phone number

network'GLO' | 'MTN' | '9MOBILE' | 'AIRTEL' required

Recipient network (telco). It can also come as lowercased values e.g. glo, mtn etc.

merchantTxRefstring required

Merchant Transaction Identifier reference (Unique to merchant)

This is an idempotency key and must be unique per transaction.

senderNamestring

A name to describe the sender of the airtime

Example request

{
  "amount": 200,
  "phoneNumber": "08055441122",
  "network": "GLO",
  "merchantTxRef": "3bvwhibh38220dsjakTwvb",
  "senderName": "John Doe"
}

Response

OK - your request was successful.

code'200' | '201' | '400' | '401' | '403' | '429' | '500' required

Response code. This reflects the HTTP status code of the response, e.g. 200 when the request completed successfully and 201 when it was accepted and is still being processed.

descriptionstring required

Response description

messagestring

Response message

statusboolean

Whether the request was successful

Example response

{
  "code": "200",
  "description": "SUCCESS",
  "message": "Transaction completed Successfully",
  "status": true,
  "data": {
    "id": "API-TOPUP-A6950-8c060b7c-4155-4e33-a846-101b49229c33",
    "status": "SUCCESS",
    "type": "topup",
    "amount": 100,
    "source": "api",
    "customerBillerId": "08123456788",
    "productId": "62130",
    "meta": {
      "api_rrn": "260926204701",
      "rrn": "260926204701",
      "api_account_id": "0167288-d989-460a-bbde-9842f2b4320f",
      "api_client_id": "2167288-d989-460a-bbde-9842f2b4320f",
      "user_id": "0167288-d989-460a-bbde-9842f2b4320f",
      "merchantTxRef": "REF-29-07-2026-12",
      "allowDuplicate": true,
      "sender_name": "John Doe",
      "idempotentKey": "0167288-d989-460a-bbde-9842f2b4320f_REF-29-07-2026-12",
      "pos_withdrawal_id": "0167288-d989-460a-bbde-9842f2b4320f_REF-29-07-2026-12",
      "userName": "John Doe",
      "isCorporate": "true",
      "currency": "NGN",
      "hooksEligible": "true",
      "isSubscribedToSavingsService": false,
      "isSubscribedToLoanService": false,
      "txnAlertEligible": true,
      "banking_entity_id": 189585760,
      "banking_entity_user_id": 188595905,
      "banking_entity_type": "CORPORATE",
      "transactionCategory": "Bills & Utility",
      "network": "mtn",
      "subscriberNumber": "08123456788",
      "amount_charged": "100.0",
      "wallet_balance": "610.55",
      "wallet_currency": "NGN",
      "agent_commission": "2.0",
      "gatewayMessage": "Success",
      "billingServiceTransactionId": "6ab821352669ea6eac2bb2ba",
      "billingServiceResponse": "SUCCESS",
      "income": "0.5",
      "paymentFee": 0,
      "tx_revenue": "2.5",
      "phoneNumber": "08123456788"
    },
    "timeCreated": "2026-09-26T19:47:01.514+00:00"
  }
}

Changes