Airtime and Data Vending

Vend data bundles via sub account

Changed on

You can use this endpoint to vend data via a sub account

post/v2/bill/data/{subAccountId}

Request

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

Path parameters

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

The sub accountId via which data bundle is to be vended

Headers

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

The parent accountId of the business this sub account belongs to

Request body

productIdstring required

The unique identifier of the data plan to purchase — returned as productId by the Fetch Data Plans endpoint. Required for all new integrations: it resolves to an exact plan and amount, removing any ambiguity when multiple plans on the same network share the same price.

amountnumber double

Deprecated — do not use. amount is a legacy-only field with no guarantee of correctness: multiple plans can share the same price, so it cannot reliably identify the bundle you want. Use productId — the only supported way to select a plan.

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)

senderNamestring

A name to describe the sender of the data

Example request

{
  "productId": "mtn47",
  "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-DATA-AAA1A-36dc6c70-5cf2-4592-93be-9bccc23df7f5",
    "status": "SUCCESS",
    "type": "data",
    "amount": 100,
    "source": "api",
    "customerBillerId": "08168969046",
    "productId": "62130",
    "meta": {
      "api_rrn": "260927093143",
      "data-plan": "110MB Daily Plan",
      "rrn": "260927093143",
      "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-13",
      "allowDuplicate": true,
      "sender_name": "John Doe",
      "idempotentKey": "0167288-d989-460a-bbde-9842f2b4320f_REF-29-07-2026-13",
      "pos_withdrawal_id": "0167288-d989-460a-bbde-9842f2b4320f_REF-29-07-2026-13",
      "userName": "John Doe",
      "isCorporate": "true",
      "currency": "NGN",
      "hooksEligible": "true",
      "isSubscribedToSavingsService": false,
      "isSubscribedToLoanService": false,
      "txnAlertEligible": false,
      "banking_entity_id": 189585760,
      "banking_entity_user_id": 188595905,
      "banking_entity_type": "CORPORATE",
      "self_transaction": true,
      "transactionCategory": "Bills & Utility",
      "network": "mtn",
      "subscriberNumber": "08123456788",
      "amount_charged": "100.0",
      "paymentVendor": "wallet",
      "wallet_balance": "2955.85",
      "wallet_currency": "NGN",
      "agent_commission": "0.0",
      "gatewayMessage": "Success",
      "billingVendor": "cowrie",
      "billingServiceResponse": "SUCCESS",
      "income": "2.5",
      "paymentFee": 0,
      "tx_revenue": "2.5",
      "phoneNumber": "08123456788"
    },
    "timeCreated": "2026-09-27T08:31:43.555+00:00"
  }
}

Changes