Developer Portal
Ctrl K
BILL PAYMENT
Education Examination PIN API
Purchase exam registration and scratch card result checker tokens instantly for WAEC, JAMB (UTME/Direct Entry), NECO, and NABTEB.
Supported Examination Bodies & Pricing
| EXAMINATION BODY | SERVICE ID (serviceID) |
BASE PRICE / DISCOUNT | VERIFICATION (STEP 2) | STATUS |
|---|---|---|---|---|
| WAEC PIN & Scratch Card | waec |
By variation plan | Not required | Active |
| JAMB (UTME / Direct Entry) | jamb |
By variation plan | Required | Active |
| NECO Token PIN | neco |
₦2,500.00 | Not required | Active |
| NABTEB Token PIN | nabteb |
₦3,000.00 | Not required | Active |
Step 1: Fetch Available Education PIN Plans
Query supported examination PIN products and discounted pricing for your user role.
GET
/api/v1/education/variations?service_id=waec
| PARAMETER | TYPE | DESCRIPTION | REQUIRED |
|---|---|---|---|
service_id |
string | Exam body: waec, jamb, neco, or nabteb. (Omit to retrieve all). |
Optional |
Step 2: Candidate Profile Verification (JAMB only)
Verify candidate profile code before purchasing UTME or Direct Entry e-PINs.
POST
/api/v1/education/verify
| PARAMETER | TYPE | DESCRIPTION | REQUIRED |
|---|---|---|---|
serviceID |
string | Must be jamb. |
Required |
billersCode |
string | Candidate Profile Code (Profile ID). | Required |
type |
string | Application type: utme or direct-entry. |
Required |
Step 3: Purchase Examination e-PIN
POST
/api/v1/education/purchase
Authentication & Headers
| HEADER | VALUE | REQUIRED |
|---|---|---|
Authorization |
Bearer YOUR_API_TOKEN |
Yes |
Content-Type |
application/json |
Yes |
Purchase Parameters
| PARAMETER | TYPE | DESCRIPTION | REQUIRED |
|---|---|---|---|
serviceID |
string | Supported: waec, jamb, neco, nabteb. |
Required |
billersCode |
string | Candidate profile ID (for JAMB) or Phone number (for WAEC, NECO, NABTEB). | Required |
variation_code |
string | Plan variation code from Step 1 (e.g. waecdirect, neco, nabteb). |
Required |
amount |
numeric | Amount corresponding to the selected product. | Required |
phone |
string | 11-digit customer telephone number to receive PIN token alert. | Required |
request_id |
string | Optional unique client request reference for idempotency and duplicate request protection. | Optional |
Sample Request Payload
JSON{
"serviceID": "waec",
"billersCode": "08012345678",
"variation_code": "waecdirect",
"amount": 3500,
"phone": "08012345678",
"request_id": "REQ_EDU_55210"
}
Success Response (200 OK)
{
"status": "success",
"code": 200,
"message": "Education PIN successful",
"data": {
"pin": "9812401829104",
"serial": "WAC20269910",
"transaction_ref": "202610194829109",
"request_id": "REQ_EDU_55210",
"amount": 3500,
"new_balance": 1242.0,
"status": "success"
}
}
Failed Response (400 Bad Request)
{
"status": "failed",
"code": 400,
"message": "Education PIN failed."
}