Every code block, endpoint and section has a Copy button.
Copy page as Markdown
Before you start
Purchases use your reseller API key (pw_live_…) and are paid from your PowerWave wallet at your reseller prices . Create the key and fund your wallet as described in the Overview . Every purchase needs a unique reference - see References & safe retries .
Looking to collect money from your customers instead? See Payments . To send money to bank accounts, see Payouts .
The transaction object
Purchase calls return a transaction in data:
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
}
status is successful, pending or failed. Pending means the provider has not confirmed yet - do not retry; you'll get a webhook (transaction.successful / transaction.failed ), or poll GET /transactions/{reference}. Failed purchases are refunded to your wallet automatically. Prepaid electricity tokens and exam pins are in details.
Account
Check your key Check your key works (and which reseller business it belongs to).
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/ping" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/ping');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/ping', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"business": "MyBiz Data",
"business_id": 12,
"reseller": "MyBiz Data",
"environment": "live",
"time": "2026-10-06T19:30:00+01:00"
} GET /v1/balance
Copy endpoint Wallet balance Your PowerWave wallet balance (what API purchases are paid from).
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/balance" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/balance');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/balance', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"balance": "25400.00",
"currency": "NGN"
} GET /v1/funding-account
Copy endpoint Funding account Your dedicated bank account - transfers to it fund your wallet.
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/funding-account" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/funding-account');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/funding-account', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"bank_name": "Paga",
"account_number": "0123456789",
"account_name": "PowerWave - Ada Okafor"
} Airtime & data
GET /v1/networks
Copy endpoint List networks Networks, airtime limits and your airtime discount.
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/networks" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/networks');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/networks', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"networks": [
{
"id": 1,
"code": "mtn",
"name": "MTN",
"airtime": true,
"data": true,
"airtime_min": "50.00",
"airtime_max": "50000.00",
"airtime_discount_percent": "3.000"
}
]
} List data plans Data plans for a network, at your reseller price.
Parameter Description
networkrequired
network code or id (query)
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/data-plans?network=mtn" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/data-plans?network=mtn');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/data-plans?network=mtn', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"network": "mtn",
"plans": [
{
"id": 42,
"name": "MTN 1GB",
"size": "1GB",
"type": "SME",
"validity": "30 days",
"price": "250.00"
}
]
} POST /v1/airtime
Copy endpoint Buy airtime Buy airtime.
Parameter Description
networkrequired
code or id
amountrequired
naira, e.g. "1000"
referencerequired
your unique ID
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/airtime" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"network":"mtn","phone":"08031234567","amount":"1000","reference":"ORDER-10293"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/airtime');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'network' => 'mtn',
'phone' => '08031234567',
'amount' => '1000',
'reference' => 'ORDER-10293',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/airtime', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"network": "mtn",
"phone": "08031234567",
"amount": "1000",
"reference": "ORDER-10293"
}),
});
const json = await res.json(); Response data
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
} POST /v1/data
Copy endpoint Buy data Buy a data plan.
Parameter Description
plan_idrequired
from /data-plans
referencerequired
your unique ID
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/data" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"plan_id":42,"phone":"08031234567","reference":"ORDER-10294"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/data');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'plan_id' => 42,
'phone' => '08031234567',
'reference' => 'ORDER-10294',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/data', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"plan_id": 42,
"phone": "08031234567",
"reference": "ORDER-10294"
}),
});
const json = await res.json(); Response data
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
} Electricity
List electricity companies Distribution companies, limits and fee.
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/electricity/discos" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/electricity/discos');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/electricity/discos', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"discos": [
{
"id": 3,
"code": "ikedc",
"name": "Ikeja Electric",
"min_amount": "500.00",
"max_amount": "500000.00",
"fee": "100.00"
}
]
} Validate a meter Look up the customer name on a meter before paying.
Parameter Description
meter_typerequired
prepaid | postpaid
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/electricity/validate" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"disco_id":3,"meter_number":"45012345678","meter_type":"prepaid"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/electricity/validate');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'disco_id' => 3,
'meter_number' => '45012345678',
'meter_type' => 'prepaid',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/electricity/validate', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"disco_id": 3,
"meter_number": "45012345678",
"meter_type": "prepaid"
}),
});
const json = await res.json(); Response data
Copy {
"customer_name": "ADA OKAFOR"
} POST /v1/electricity
Copy endpoint Pay for electricity Pay for electricity. Prepaid tokens are in details.token.
Parameter Description
meter_typerequired
prepaid | postpaid
referencerequired
your unique ID
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/electricity" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"disco_id":3,"meter_number":"45012345678","meter_type":"prepaid","amount":"5000","reference":"ORDER-10295"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/electricity');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'disco_id' => 3,
'meter_number' => '45012345678',
'meter_type' => 'prepaid',
'amount' => '5000',
'reference' => 'ORDER-10295',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/electricity', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"disco_id": 3,
"meter_number": "45012345678",
"meter_type": "prepaid",
"amount": "5000",
"reference": "ORDER-10295"
}),
});
const json = await res.json(); Response data
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
} Cable TV
GET /v1/cable/providers
Copy endpoint List cable providers DStv, GOtv, StarTimes...
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/cable/providers" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/cable/providers');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/cable/providers', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"providers": [
{
"id": 1,
"code": "dstv",
"name": "DStv",
"fee": "100.00"
}
]
} List cable plans Bouquets for a provider, at your price.
Parameter Description
provider_idrequired
id (query)
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/cable/plans?provider_id=1" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/cable/plans?provider_id=1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/cable/plans?provider_id=1', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"plans": [
{
"id": 7,
"name": "DStv Compact",
"price": "12500.00"
}
]
} POST /v1/cable/validate
Copy endpoint Validate a smartcard Look up the account name on a smartcard / IUC.
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/cable/validate" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"provider_id":1,"plan_id":7,"smartcard":"7023456789"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/cable/validate');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'provider_id' => 1,
'plan_id' => 7,
'smartcard' => '7023456789',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/cable/validate', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"provider_id": 1,
"plan_id": 7,
"smartcard": "7023456789"
}),
});
const json = await res.json(); Response data
Copy {
"customer_name": "ADA OKAFOR"
} POST /v1/cable
Copy endpoint Renew a cable subscription Renew / subscribe.
Parameter Description
referencerequired
your unique ID
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/cable" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"provider_id":1,"plan_id":7,"smartcard":"7023456789","reference":"ORDER-10296"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/cable');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'provider_id' => 1,
'plan_id' => 7,
'smartcard' => '7023456789',
'reference' => 'ORDER-10296',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/cable', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"provider_id": 1,
"plan_id": 7,
"smartcard": "7023456789",
"reference": "ORDER-10296"
}),
});
const json = await res.json(); Response data
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
} Exam & JAMB pins
GET /v1/exam-pins
Copy endpoint List exam pins WAEC, NECO, NABTEB... (also /jamb-pins).
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/exam-pins" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/exam-pins');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/exam-pins', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"types": [
{
"id": 2,
"code": "waec-result",
"name": "WAEC Result Checker",
"price": "3300.00",
"requires_customer_reference": false,
"customer_reference_label": null
}
]
} Validate a pin customer Validate a profile/registration number when the type requires one (also /jamb-pins/validate).
Parameter Description
customer_referencerequired
e.g. JAMB profile code
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/exam-pins/validate" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"type_id":5,"customer_reference":"1234567890"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/exam-pins/validate');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'type_id' => 5,
'customer_reference' => '1234567890',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/exam-pins/validate', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"type_id": 5,
"customer_reference": "1234567890"
}),
});
const json = await res.json(); Response data
Copy {
"customer_name": "ADA OKAFOR"
} POST /v1/exam-pins
Copy endpoint Buy an exam pin Buy a pin (also /jamb-pins). The pin is in details.pin.
Parameter Description
customer_referenceoptional
only if required
referencerequired
your unique ID
curl PHP Node.js
Copy curl -X POST "https://api.powerwave.ng/v1/exam-pins" \
-H "Authorization: Bearer $PW_KEY" \
-H "Content-Type: application/json" \
-d '{"type_id":2,"reference":"ORDER-10297"}' Copy $ch = curl_init('https://api.powerwave.ng/v1/exam-pins');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'type_id' => 2,
'reference' => 'ORDER-10297',
]),
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/exam-pins', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
"type_id": 2,
"reference": "ORDER-10297"
}),
});
const json = await res.json(); Response data
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
} Transactions
Get a transaction One transaction by YOUR reference (or our transaction_ref) - includes token/pin.
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/transactions/{reference}" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/transactions/{reference}');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/transactions/{reference}', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"reference": "ORDER-10293",
"transaction_ref": "PW8K2J4L9QXA",
"type": "airtime",
"status": "successful",
"direction": "debit",
"amount": "970.00",
"fee": "0.00",
"discount": "30.00",
"balance_after": "24430.00",
"description": "MTN Airtime - 0803****567",
"channel": "api",
"created_at": "2026-10-06T19:31:02+01:00",
"completed_at": "2026-10-06T19:31:04+01:00",
"details": {
"phone": "08031234567",
"network": "MTN",
"face_value": "1000"
}
} List transactions Transactions of this key's business (purchases, collections, refunds). Filters: type, status, from, to (YYYY-MM-DD).
curl PHP Node.js
Copy curl "https://api.powerwave.ng/v1/transactions?page=1&per_page=20" \
-H "Authorization: Bearer $PW_KEY" Copy $ch = curl_init('https://api.powerwave.ng/v1/transactions?page=1&per_page=20');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PW_KEY'), 'Content-Type: application/json'],
]);
$res = json_decode(curl_exec($ch), true); Copy const res = await fetch('https://api.powerwave.ng/v1/transactions?page=1&per_page=20', {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.PW_KEY}`, 'Content-Type': 'application/json' },
});
const json = await res.json(); Response data
Copy {
"page": 1,
"per_page": 20,
"total": 135,
"transactions": [
"…"
]
} Questions? Contact us .