Skip to main content
POST
/
business
/
vas
/
airtime
Buy airtime 🔒
curl --request POST \
  --url https://api-staging.usenumero.com/numeroaccount/api/v1/business/vas/airtime \
  --header 'Content-Type: application/json' \
  --header 'X-Numero-Api-Key: <api-key>' \
  --header 'X-Numero-Signature: <api-key>' \
  --data '
{
  "reference": "<string>",
  "network": "MTN",
  "phone": "<string>",
  "amount": 123,
  "service": "<string>",
  "validationCode": "<string>",
  "transactionPin": "<string>"
}
'
{
  "data": {
    "message": "<string>",
    "reference": "<string>"
  },
  "error": {
    "message": "<string>",
    "param": "<string>"
  },
  "meta": {
    "request_id": "<string>",
    "pagination": {
      "page": 123,
      "page_size": 123,
      "total": 123,
      "has_more": true
    }
  }
}

Authorizations

X-Numero-Api-Key
string
header
required

Your business API key (live_key_...). Issued on approval; managed in Dashboard → Settings → Developer.

X-Numero-Signature
string
header
required

Base64(HMAC-SHA256(secretApiKey, input)) over the raw request body (POST) or canonicalized query string (signed GET). Also send X-Numero-Signature-Version: v2. Required on money-movement / state-changing endpoints (marked 🔒).

Body

application/json
reference
string
required

Your unique idempotency reference for this purchase.

network
string
required
Example:

"MTN"

phone
string
required
amount
number
required
service
string
validationCode
string
transactionPin
string | null

Response

Purchase result

Canonical response envelope for the public surface. data on success, error on failure.

data
object
required

Endpoint payload on success (object or array); null on failure.

error
object
required
meta
object
required