Skip to main content
GET
List billers
What this endpoint is for: catalog discovery before any VAS purchase. You do not buy here — you only fetch ids/codes to send on the write endpoints.
Set category to the product (or all). Response is under data.<category> (e.g. data.betting.providers, data.data.plans). Then call the matching Purchase endpoint with the provider/plan fields from this response.
Response shape: data.data.providers[] + data.data.plans[].For Purchase data, send plans[].planId (slug, e.g. mtn_1gb_7d) as planId — not the UUID in plans[].id.
Response shape: data.electricity.providers[] + data.electricity.plans[].Each plan has a slug planId (e.g. ekedc_prepaid) and electricityType (PREPAID | POSTPAID).For Validate electricity / Pay electricity, send plans[].planId — not plans[].id and not providers.name.
1

1. List destinations

GET /api/v1/merchant/vas/billers?category=esim (omit locationCode) → data.esim.locations[]. Find your country and copy its locationCode.
2

2. List packages for that country

GET /api/v1/merchant/vas/billers?category=esim&locationCode=NG → data.esim.packages[] (full response in the playground sample below). Sort or filter by price to show your customers the options.
3

3. Purchase

Send packages[].id (UUID) as packageId to Purchase eSIM. Do not send packageCode (e.g. P0Q24KI1C) as packageId.
Package fields
Use country codes. Regional codes in the destinations list (e.g. EU-42, GL-139) currently return an empty packages array. Multi-country bundles (Europe, Global, etc.) are currently listed under one country they cover — e.g. Europe bundles appear under NO.
locationCode does nothing for non-eSIM categories. Playground sample below uses category=esim&locationCode=NG (packages). For data, call with category=data.

Authorizations

X-Api-Key
string
header
required

API key id (sp_test_… / sp_live_…)

Headers

X-Timestamp
string
required

Unix time in seconds

X-Signature
string
required

HMAC-SHA256 signature

Query Parameters

category
enum<string>

Product to list. Use esim for travel eSIM destinations/packages; other values return that bill payment catalog.

Available options:
airtime,
data,
cable,
electricity,
betting,
internet,
esim,
all
locationCode
string

eSIM only: ISO country code from data.esim.locations[].locationCode (e.g. NG, US, ES). Omit to list destinations (data.esim.locations). Pass to list packages for that country (data.esim.packages). Case-insensitive. Ignored for non-eSIM categories.

Response

200 - application/json

OK

The response is of type object.