Partner API
Product · Education

Education (WAEC / JAMB)

Verify candidate profiles and purchase examination registration or result-checker PINs with instant digital delivery.

Base path/api/v1/partner/education
Authx-api-key (+ x-signature on verify/purchase)
Exam BoardsWAEC · JAMB (UTME / Direct Entry) · NECO · NABTEB
Rate limit30 requests / 60s (failure circuit breaker)

1. List Education Services

Query available examination boards and service categories:

List education services

GET /partner/education/services
API key only
cURL
curl https://api.billpadi.com/api/v1/partner/education/services \
  -H "x-api-key: $API_KEY"
Example response — 200 OK
{
  "success": true,
  "message": "Education services retrieved",
  "data": [
    { "id": "64f1d1a1c4d5e6f7a8b9c401", "name": "WAEC", "code": "waec" },
    { "id": "64f1d1a1c4d5e6f7a8b9c402", "name": "JAMB", "code": "jamb" },
    { "id": "64f1d1a1c4d5e6f7a8b9c403", "name": "NECO", "code": "neco" }
  ],
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/education/services"
}

2. List Education Products

List available products (PINs, result tokens) for a given examination board:

List PIN products for service

GET /partner/education/products
API key only
Query ParamTypeRequiredDescription
serviceIdstringrequiredExam service ID or slug (e.g. waec, jamb)
cURL
curl "https://api.billpadi.com/api/v1/partner/education/products?serviceId=waec" \
  -H "x-api-key: $API_KEY"
Example response — 200 OK
{
  "success": true,
  "message": "Products retrieved",
  "data": [
    {
      "id": "64f3d2a1c4d5e6f7a8b9c411",
      "code": "waec-result-checker",
      "name": "WAEC Result Checker PIN",
      "amount": 3400
    }
  ],
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/education/products"
}

3. Verify Candidate Profile

For services requiring profile validation (such as JAMB UTME), verify candidate eligibility and name before purchase:

Verify candidate profile

POST /partner/education/verify
Signature required
FieldTypeRequiredDescription
numberstringrequiredCandidate profile or registration code
typestringrequiredExam board type (e.g. jamb)
cURL
Node.js
curl -X POST https://api.billpadi.com/api/v1/partner/education/verify \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-signature: $SIGNATURE" \
  -d '{
    "number": "4278104529",
    "type": "jamb"
  }'
const res = await partnerClient.post("/education/verify", {
  number: "4278104529",
  type: "jamb"
});
Example response — 200 OK
{
  "success": true,
  "message": "Profile verified",
  "data": {
    "number": "4278104529",
    "name": "CHINEDU OKEKE",
    "status": "eligible"
  },
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/education/verify"
}

4. Purchase Education PIN

Purchase the requested examination token or PIN:

Purchase education PIN

POST /partner/education/purchase
Signature required
FieldTypeRequiredDescription
productIdstringrequiredProduct id or slug code from products catalog
profileIdstringrequiredCandidate profile ID or recipient phone number
partnerReferencestringrequiredUnique reference string (2–100 characters) for idempotency
cURL
curl -X POST https://api.billpadi.com/api/v1/partner/education/purchase \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-signature: $SIGNATURE" \
  -d '{
    "productId": "waec-result-checker",
    "profileId": "08012345678",
    "partnerReference": "PR-EDU-60214"
  }'
Example response — 200 OK
{
  "success": true,
  "message": "Education purchase successful",
  "data": {
    "transactionReference": "TXN_1720603200000_6F7A",
    "partnerReference": "PR-EDU-60214",
    "status": "success",
    "productId": "waec-result-checker",
    "profileId": "08012345678",
    "pin": "WRCP-9812-4019-2281",
    "amount": 3400
  },
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/education/purchase"
}

Upon PIN issuance, Billpadi fires an education.purchase.success webhook.

5. Transaction Status & Listing

Get education transaction status

GET /partner/education/transactions/:reference
API key only

List education transactions

GET /partner/education/transactions
API key only