Skip to main content

VAS (Bill payments)

Base path: /api/v1/merchant/vas Scopes: vas:read, vas:write. Money-moving writes require Idempotency-Key. Settlements are NGN by default — do not send a currency field unless documented.

Typical flow

  1. List billers — discover providers, plans, or eSIM destinations/packages.
  2. Validate (cable / electricity) — confirm smart card or meter before purchase.
  3. Purchase — call the matching write endpoint (airtime, data, cable, electricity, betting, internet, or eSIM).
  4. Get VAS transaction — poll status with the returned transaction id.

eSIM (same VAS API)

eSIM is part of VAS, not a separate product API.
1

List destinations

GET /vas/billers?category=esim → data.esim.locations[]. Each location has a locationCode (ISO country code, e.g. NG, ES).
2

List packages for a country

GET /vas/billers?category=esim&locationCode=NG → data.esim.packages[]. Each package has a price in USD. Use the package’s UUID id (not packageCode).
3

Purchase

POST /vas/esim with packageId set to that UUID, plus customer details and deviceType.
locationCode is eSIM-only. Ignore it for airtime, data, cable, electricity, betting, and internet. Regional codes like EU-42 currently return no packages. Multi-country bundles (e.g. Europe, Global) are currently listed under one country they cover — e.g. Europe bundles appear under NO.