Skip to main content
POST
/
api
/
v1
/
airtime
/
buy
Purchase airtime
curl --request POST \
  --url https://api.dancity.app/api/v1/airtime/buy \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "product": "MTN Airtime",
  "phone": "080*******",
  "amount": 525,
  "customerRef": "<string>"
}
'
{
  "success": true,
  "message": "Airtime purchase processed",
  "data": {
    "_id": "6a1c3ba6f269d84e04f098cc",
    "tranxId": "DNTY174825YP565I",
    "service": "AIRTIME",
    "product": "MTN Airtime",
    "tranxType": "DEBIT",
    "status": "FAILED",
    "currency": "NGN",
    "remarks": "Airtime purchase for 09037346247",
    "amount": 100,
    "fee": 0,
    "amountPaid": 98.5,
    "balanceBefore": 5276,
    "balanceAfter": 5177.5,
    "number": "09037346247",
    "customerRef": "",
    "channel": "API",
    "paymentMedium": "MAIN WALLET",
    "tranxDate": "2026-05-31T13:46:14.825Z",
    "apiResponse": "Airtime purchase failed",
    "isReversal": false,
    "quantity": 0,
    "createdAt": "2026-05-31T13:46:14.827Z"
  }
}

Authorizations

Authorization
string
header
required

Merchant API key from the Dancity dashboard.

Body

application/json
product
string
required

Product name from catalog. Hyphens and underscores are treated as spaces (e.g. MTN-Airtime, MTN_Airtime, MTN Airtime).

Example:

"MTN Airtime"

phone
string
required
Example:

"080*******"

amount
number
required
Required range: 50 <= x <= 1000
customerRef
string

Response

OK