Electricity
DisCo names and typical min/max (no plan IDs): Catalog.
Pay prepaid or postpaid electricity for Nigerian DisCos. Put the meter number in customer_msisdn and send the matching plan_code from the plans list. Optionally send phone as the customer’s mobile number (not the meter).
POST /v1/transactionsExternal create is sync — the response includes the final outcome (response_code 00 or 01). No status polling required. Response shapes: Field conventions.
1. List electricity plans
GET /v1/plans/bills/electricityOptional filter: ?network=Ikeja Electric.
curl "https://api.breezeinnovations.io/v1/plans/bills/electricity?network=Ikeja Electric" \
-H "X-Merchant-Key: mk_your_key_id" \
-H "X-Merchant-Secret: your_issued_secret"Use the returned plan id as plan_code on purchase.
DisCo network values
Ikeja Electric, EKEDC, AEDC, IBEDC, EEDC, KEDCO, JED, PHED, BEDC, ABEDC, KAEDCO, YEDC, ABA
Prepaid vs postpaid
List plans with GET /v1/plans/bills/electricity (optionally filter by network). Each DisCo returns separate prepaid and postpaid rows.
| DisCo | Prepaid plan_code | Postpaid plan_code |
|---|---|---|
| Ikeja Electric | 1001 | 1002 |
| EKEDC | 1003 | 1015 |
| AEDC | 1004 | 1016 |
| IBEDC | 1005 | 1017 |
| EEDC | 1006 | 1018 |
| KEDCO | 1007 | 1019 |
| JED | 1008 | 1020 |
| PHED | 1009 | 1010 |
| BEDC | 1011 | 1021 |
| KAEDCO | 1012 | 1022 |
| YEDC | 1013 | 1023 |
| ABEDC | 1014 | 1024 |
Successful prepaid purchases include token and units in data. Postpaid purchases return a receipt without a token.
2. Pay electricity
curl -X POST "https://api.breezeinnovations.io/v1/transactions" \
-H "Content-Type: application/json" \
-H "X-Merchant-Key: mk_your_key_id" \
-H "X-Merchant-Secret: your_issued_secret" \
-d '{
"merchant_code": "YOUR_MERCHANT",
"customer_msisdn": "10000000001",
"phone": "08012345678",
"network": "Ikeja Electric",
"product": "ELECTRICITY",
"plan_code": "1001",
"amount": "5000",
"client_request_id": "breeze-electricity-001"
}'| Field | Required | Description |
|---|---|---|
merchant_code | Yes | Your merchant profile |
customer_msisdn | Yes | Meter number |
phone | No | Customer mobile (080… or 234…). Not the meter. Omit if you do not have it. |
network | Yes | Biller name (e.g. Ikeja Electric) |
product | Yes | ELECTRICITY |
plan_code | Yes | Catalog id from plans list |
amount | Yes | Payment amount in Naira (string) |
client_request_id | Yes | Unique idempotency key |
HTTP 200 — success (prepaid):
{
"status": "success",
"response_code": "00",
"response_message": "Successful",
"data": {
"internal_reference": "019262ab-7c4d-7000-8000-000000000010",
"msisdn": "10000000001",
"product": "ELECTRICITY",
"request_id": "breeze-electricity-001",
"network": "Ikeja Electric",
"amount": "5000",
"plan": "1001",
"merchant_id": 10,
"created_at": "2026-05-17T10:30:00Z",
"token": "1234-5678-9012-3456-7890",
"units": "45.2 kWh"
}
}3. Check status (optional)
To re-fetch a transaction later:
GET /v1/transactions/status?client_request_id={client_request_id}curl "https://api.breezeinnovations.io/v1/transactions/status?client_request_id=breeze-electricity-001" \
-H "X-Merchant-Key: mk_your_key_id" \
-H "X-Merchant-Secret: your_issued_secret"Successful prepaid electricity includes token and units in the create data response above (and again on status). Optional kct1 and kct2 (20-digit Key Change Tokens) appear when required by the DisCo — load them on the meter before the recharge token. Omitted on most purchases.
When the DisCo applies the payment to outstanding meter debt instead of issuing a token, create and status data may include payment_spent_on (e.g. "debt") with no token. This field is response-only.
Test meters
On test credentials, only these meters are accepted. The purchase completes with the same success envelope as live (response_code 00, response_message Successful) and is simulated. Any other meter is rejected.
| Type | customer_msisdn | Status data extras |
|---|---|---|
| Prepaid | 10000000001 | Any prepaid plan_code (e.g. 1001). token: 47861234567890123456, units: 10.00, customer_name: Test Customer |
| Postpaid | 10000000002 | Any postpaid plan_code (e.g. 1002, 1010, 1017). customer_name: Test Customer (no token) |
Live credentials always require a real meter.
Ask your account manager to enable electricity on your merchant profile before go-live.