Complete reference for integrating automated Nigerian telecom provisioning, electricity meter settlements, cable TV renewals, and educational PINs into your applications.
The Y3Data Developer API gives software applications direct programmatic access to Nigerian digital services. All endpoints communicate over HTTPS using standard JSON payloads, HTTP verbs, and RFC-compliant status codes.
Every request must be authenticated with your Y3Data production API key passed via the standard HTTP Authorization header as a Bearer token.
?api_key=...) or request body parameters is strictly rejected with HTTP 401 INVALID_AUTHENTICATION_METHOD to prevent accidental token exposure in web server access logs.
To ensure money safety and eliminate double-charging during network drops, socket timeouts, or automatic retry loops, all purchase endpoints require a client-generated unique string: request_id.
request_id, it safely intercepts the request, skips re-charging your wallet, and immediately returns the cached transaction response.
Rate limits are applied on a per-developer basis. The standard default allocation is 60 requests per minute. High-volume merchants may request elevated throughput limits through Developer Support.
Every response includes real-time telemetry headers:
X-RateLimit-Limit: Maximum allowed requests per 60-second window.X-RateLimit-Remaining: Remaining requests available in the current window.X-RateLimit-Reset: Epoch timestamp when the rate limit quota resets.All API errors return consistent JSON structures accompanied by standard HTTP 4xx or 5xx status codes:
| HTTP Code | Error Code | Description |
|---|---|---|
401 | UNAUTHORIZED | Missing or malformed Authorization header. |
401 | INVALID_API_KEY | Key hash not found or key revoked. |
403 | ACCOUNT_SUSPENDED | Developer account is suspended. |
403 | IP_NOT_WHITELISTED | Client IP address is not on your allowed whitelist. |
400 | INSUFFICIENT_BALANCE | Wallet balance is lower than transaction cost. |
400 | INVALID_REQUEST | Missing required parameter or malformed request payload. |
429 | RATE_LIMIT_EXCEEDED | Exceeded per-minute quota. Back off and retry. |
502 | SERVICE_UNAVAILABLE | Upstream provider temporary outage. Wallet is not debited. |
Query your available live API wallet balance. Your balance is debited in real-time as transactions are dispatched.
Retrieve available data packages with wholesale pricing and dispatch automated top-ups across Nigerian mobile networks.
Query parameters: ?network=MTN (optional filter: MTN, AIRTEL, GLO, 9MOBILE).
| Field | Type | Required | Description |
|---|---|---|---|
network | String | Yes | MTN, AIRTEL, GLO, or 9MOBILE. |
plan_id | String | Yes | Plan identifier from catalog (e.g. mtn_1gb_sme). |
phone | String | Yes | 11-digit recipient phone number (e.g. 08012345678). |
request_id | String | Yes | Unique client transaction reference for idempotency. |
Instant automated airtime recharge with server-calculated volume discounts.
Returns supported networks, minimum/maximum values, and active discount percentages for your account.
| Field | Type | Required | Description |
|---|---|---|---|
network | String | Yes | MTN, AIRTEL, GLO, or 9MOBILE. |
amount | Numeric | Yes | Face value to recharge (₦50 – ₦50,000). |
phone | String | Yes | 11-digit recipient phone number. |
request_id | String | Yes | Unique client request reference. |
Validate prepaid & postpaid meter numbers and generate recharge tokens across all major Nigerian DisCos.
Supported DisCos: IKEDC, EKEDC, AEDC, IBEDC, KEDCO, PHED, EEDC, BEDC, YEDC, JED.
Validates meter number and returns verified customer name and address before purchase. Parameters: biller, meter_number, meter_type (prepaid/postpaid).
| Field | Type | Required | Description |
|---|---|---|---|
biller | String | Yes | DisCo code (e.g. IKEDC). |
meter_number | String | Yes | Meter number (minimum 8 digits). |
amount | Numeric | Yes | Token value in Naira (₦500 – ₦100,000). |
meter_type | String | No | prepaid (default) or postpaid. |
phone | String | No | Customer phone number for SMS token delivery. |
request_id | String | Yes | Unique client transaction reference. |
Validate SmartCard / IUC numbers and activate bouquets across DStv, GOtv, StarTimes, and Showmax.
Parameters: provider, smartcard_number. Returns verified subscriber name.
| Field | Type | Required | Description |
|---|---|---|---|
provider | String | Yes | GOTV, DSTV, STARTIMES, or SHOWMAX. |
plan_id | String | Yes | Bouquet plan identifier (e.g. gotv_smallie). |
smartcard_number | String | Yes | SmartCard / IUC number (min 8 digits). |
request_id | String | Yes | Unique client transaction reference. |
Generate electronic scratch card result checker tokens for WAEC, NECO, NABTEB, and JAMB UTME.
| Field | Type | Required | Description |
|---|---|---|---|
exam_type | String | Yes | waec, neco, nabteb, or jamb. |
quantity | Integer | Yes | Number of PINs (1 to 10). |
request_id | String | Yes | Unique client transaction reference. |
Inquire about the real-time status of any transaction using either your original client request_id or the Y3Data reference. Returns only transactions belonging to your authenticated account.
When enabled in your dashboard, Y3Data dispatches asynchronous HTTP POST notifications to your server upon transaction resolution.
transaction.completed: Triggered when a purchase resolves with status SUCCESS.transaction.failed: Triggered when a purchase fails and refund is credited to your balance.
Every delivery includes a header X-Y3Data-Signature. Compute the HMAC-SHA256 signature of the raw request payload using your secret:
You can configure allowed production IP addresses in the IP Whitelist tab of your Developer Console. When at least one active IP address is registered, all incoming API requests originating from unlisted addresses are strictly rejected with HTTP 403 IP_NOT_WHITELISTED. If no IP addresses are registered, requests are accepted from any origin.