Send airtime

POST/airtime-api/sendAirtime

Debits your wallet and tops up the number. The transfer starts as submitted; the final state arrives on your callback URL or through Check airtime status.

Parameters

  • phone_numberstringrequired

    Number to top up.

  • amountdecimalrequired

    Amount in GHS, 0.50 to 100.

  • network_idstringrequired

    From List networks.

  • transaction_idstringrequired

    Your unique reference, 12 to 36 characters.

  • callback_urlstringoptional

    Receives the webhook when the top-up succeeds or fails.

Errors

  • 400Insufficient wallet balance
  • 422The transaction id has already been taken.

Request

curl -X POST "https://api.bulkclix.com/api/v1/airtime-api/sendAirtime" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "phone_number": "0241234567",
  "amount": 10,
  "network_id": "a1b2c3d4-0000-4000-8000-000000000001",
  "transaction_id": "ORDER-2026-000123",
  "callback_url": "https://example.com/webhooks/bulkclix"
}'

Response · 200

application/json
{
  "message": "Airtime Sent Successfully",
  "data": {
    "transaction_id": "ORDER-2026-000123",
    "ext_transaction_id": "AT-7f3a9c"
  }
}