NetPulse Developer API
Authentication
x-api-key header. Keys are created in the developer dashboard and can be revoked at any time.curl -H "x-api-key: YOUR_KEY" \
https://netpluse.shop/api/v1/pingBase URL
https://netpluse.shop/api/v1Endpoints are versioned under /api/v1. Breaking changes will ship under a new version prefix so existing integrations keep working.
5 minute quick start
Step 1 — Get your API key
Create one in the developer dashboard. Keys start with np_live_… and are shown only once.
Step 2 — Top up your wallet
Add funds from the NetPulse home page. Every API purchase is debited atomically from your wallet balance.
Step 3 — Test your key
curl -H "x-api-key: YOUR_KEY" \
https://netpluse.shop/api/v1/ping{ "ok": true }Step 4 — Browse available products
# Data bundles
curl -H "x-api-key: YOUR_KEY" \
https://netpluse.shop/api/v1/packages
# Result checkers
curl -H "x-api-key: YOUR_KEY" \
https://netpluse.shop/api/v1/checkersStep 5 — Make your first purchase
# Buy a data bundle
curl -X POST https://netpluse.shop/api/v1/purchase \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"network":"MTN","phoneNumber":"0241234567","capacity":"1GB"}'
# Buy a WAEC checker pin
curl -X POST https://netpluse.shop/api/v1/checkers/purchase \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"waec","quantity":1}'/api/v1/packagesList every data bundle available for purchase across MTN, Telecel, and AirtelTigo.
No request body. Pass your API key in the header.
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/packages"{
"packages": [
{
"network": "MTN",
"capacity": "1GB",
"price": 3.70,
"validity": "30 Days"
}
]
}/api/v1/purchaseBuy and deliver a data bundle to a Ghana phone number.
| Parameter | Type | Required | Description |
|---|---|---|---|
| network | string | Required | One of MTN, Telecel, AirtelTigo. |
| phoneNumber | string | Required | Ghana mobile number, e.g. 0241234567. |
| capacity | string | Required | Exact size from /packages, e.g. 1GB. |
| reference | string | Optional | Idempotency key. Re-sending returns the original order. |
curl -X POST https://netpluse.shop/api/v1/purchase \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "MTN",
"phoneNumber": "0241234567",
"capacity": "1GB",
"reference": "my-ref-001"
}'{
"reference": "NPAPI-1234-abc",
"status": "processing",
"price": 3.70,
"balance": 8.00
}status starts as processing and typically settles to completed within ~4 seconds. Poll /order-status for the final state./api/v1/order-status/{reference}Check the current status of a previously created bundle order.
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/order-status/NPAPI-1234-abc"{
"reference": "NPAPI-1234-abc",
"network": "MTN",
"capacity": "1GB",
"status": "completed",
"createdAt": "2026-06-15T10:24:00.000Z"
}status transitions from processing to completed or failed.
Overview
/api/v1/checkersList available result checker types and current prices.
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/checkers"{
"success": true,
"checkers": [
{
"id": "waec",
"name": "WAEC Result Checker",
"description": "Check WASSCE results",
"price": 17.50,
"available": true
},
{
"id": "bece",
"name": "BECE Result Checker",
"description": "Check BECE results",
"price": 17.50,
"available": true
}
]
}/api/v1/checkers/purchasePurchase one or more result checker pins in a single call.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Required | waec or bece. |
| quantity | integer | Optional | Number of pins. Default 1, max 50 per request (tier-limited). |
| reference | string | Optional | Your unique ID to prevent duplicates. |
curl -X POST https://netpluse.shop/api/v1/checkers/purchase \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "waec",
"quantity": 1
}'curl -X POST https://netpluse.shop/api/v1/checkers/purchase \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "bece",
"quantity": 5,
"reference": "reseller-2026-06-23"
}'{
"success": true,
"reference": "NPCHK-1712345678901-abc123",
"type": "waec",
"quantity": 1,
"unit_price": 17.50,
"total_cost": 17.50,
"balance_after": 45.00,
"pins": [
{
"serial": "123456789",
"pin": "987654321",
"expires": "2026-12-31"
}
]
}/api/v1/checkers/{reference}Look up a previous checker purchase by reference. Only the buyer can read their own pins.
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/checkers/NPCHK-1712345678901-abc123"{
"success": true,
"reference": "NPCHK-1712345678901-abc123",
"type": "waec",
"status": "completed",
"quantity": 1,
"unit_price": 17.50,
"total_cost": 17.50,
"pins": [
{ "serial": "123456789", "pin": "987654321", "expires": "2026-12-31" }
],
"created_at": "2026-06-23T15:00:00.000Z"
}/api/v1/checkers/historyList your checker purchases made via the API. Pins are not included — fetch them from the single-reference endpoint.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Optional | Filter by waec or bece. |
| limit | integer | Optional | Results per page. Default 20, max 100. |
| page | integer | Optional | Page number. Default 1. |
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/checkers/history?type=waec&limit=20&page=1"{
"success": true,
"total": 45,
"page": 1,
"limit": 20,
"purchases": [
{
"reference": "NPCHK-1712345678901-abc123",
"type": "waec",
"quantity": 1,
"total_cost": 17.50,
"status": "completed",
"created_at": "2026-06-23T15:00:00.000Z"
}
]
}/api/v1/balanceReturn the current wallet balance for the authenticated API key.
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/balance"{ "balance": 12.50, "currency": "GHS" }/api/v1/pingConfirm connectivity and validate that your API key is active.
curl -H "x-api-key: YOUR_KEY" \
"https://netpluse.shop/api/v1/ping"{ "ok": true }Error codes
error (or success: false) field describing the problem.Rate limits
| Tier | Per minute | Per hour | Per day |
|---|---|---|---|
| Starter | 10 | 50 | 200 |
| Business | 50 | 500 | 2,000 |
| Enterprise | ∞ | ∞ | ∞ |
| Tier | Per minute | Per hour | Max pins / request |
|---|---|---|---|
| Starter | 5 | 20 | 5 |
| Business | 30 | 200 | 20 |
| Enterprise | ∞ | ∞ | 50 |
{
"error": "Rate limit exceeded",
"retryAfter": 60,
"tier": "starter",
"upgradeMessage": "Contact support to upgrade to Business tier"
}