API Reference

Integrate SimHosting into your application. All endpoints require authentication via API keys from your merchant dashboard.

Base URL: https://www.app.paylux.com.ng/api/v1

Authentication

Every request must include your API keys as headers:

X-Public-Key: pk_live_xxxxxxxxxxxx
X-Secret-Key: sk_live_xxxxxxxxxxxx

Generate keys from Dashboard → API Keys. Use pk_test_ / sk_test_ for sandbox mode (no real transactions, no wallet charges).

💡 Idempotency: Include X-Idempotency-Key header with a unique string to prevent duplicate transactions on retries.

Wallet

GET/wallet/balance

Returns your current wallet balance.

Response

{"status": "success", "balance": 15000.00, "bonus_balance": 500.00, "currency": "NGN"}

Airtime

POST/airtime

Purchase airtime for any Nigerian network.

ParameterTypeDescription
networkstringrequiredmtn, glo, airtel, or 9mobile
phonestringrequiredNigerian phone number (08012345678)
amountnumberrequiredAmount in Naira (min 50)
// Request
{"network": "mtn", "phone": "08012345678", "amount": 500}

// Response
{"status": "success", "reference": "TX202609281200ABCDE", "amount": 500, "phone": "08012345678", "network": "mtn"}

Data

GET/data/plans

List available data plans. Filter by network with ?network=mtn

{"status": "success", "plans": [{"plan_id": "1", "network": "mtn", "name": "MTN SME 1GB", "volume": "1GB", "validity": "30 days", "price": 250}], "count": 27}
POST/data
ParameterTypeDescription
plan_idstringrequiredFrom /data/plans response
phonestringrequiredNigerian phone number

Cable TV

POST/cable
ParameterTypeDescription
providerstringrequireddstv, gotv, or startimes
smart_cardstringrequiredSmart card / IUC number
package_codestringrequiredPackage code
phonestringrequiredPhone number
amountnumberrequiredAmount in Naira

Electricity

POST/electricity
ParameterTypeDescription
discostringrequiredekedc, ikedc, aedc, phed, eedc, kedco, ibedc, bedc, yedc
meter_numberstringrequiredMeter number
meter_typestringrequiredprepaid or postpaid
amountnumberrequiredAmount in Naira (min 500)
phonestringrequiredPhone number

Success response includes token and units fields for prepaid meters.

Bulk SMS

POST/sms
ParameterTypeDescription
senderstringrequiredSender name (max 11 chars)
recipientsarrayrequiredArray of phone numbers
messagestringrequiredSMS text (160 chars = 1 page)

Transactions

GET/transactions

List your transactions. Params: ?page=1&per_page=20&status=success&type=airtime

GET/transactions/{reference}

Get a single transaction by reference.

Webhooks

SimHosting sends HMAC-SHA256 signed webhooks to your registered URL after each transaction.

Verify with header X-SimHosting-Signature using your webhook secret.

Events

EventDescription
transaction.successTransaction completed successfully
transaction.failedTransaction failed
// Webhook payload
{
  "event": "transaction.success",
  "data": {"reference": "TX...", "type": "airtime", "amount": 500, "status": "success"},
  "timestamp": "2026-09-28T16:00:00+01:00"
}

Error Codes

CodeMeaning
400Bad request / Transaction failed
401Invalid API keys
403Account suspended or no API access
404Not found
405Method not allowed
422Validation error
429Rate limit exceeded

Rate Limits

Limits are per API key, per minute, based on your membership tier.

TierRate Limit
API Client120 req/min
Enterprise300 req/min

Response headers: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After