Pay electricity bills for prepaid and postpaid meters.
Electricity Bill Payment
Pay electricity bills for prepaid and postpaid meters across all supported distribution companies (DISCOs).
Endpoint
POST https://example.com/api/electricity_bill_payments
{
"Accept" : "application/json" ,
"Content-Type" : "application/json" ,
"Authorization" : "Bearer YOUR_API_TOKEN"
}
Request Body
Field Type Required Description meter_typestring Yes Meter type: "prepaid" or "postpaid" phone_numberstring Yes Contact phone number (e.g., "08101234567") namestring Yes Customer name (as registered on meter) meter_numberstring Yes Meter number (e.g., "1111111111111") electricity_distributor_idinteger Yes DISCO ID — see Electricity Distributors below amountnumeric Yes Payment amount in Naira. Minimum: ₦1,000
Example Request
{
"meter_type" : "prepaid" ,
"phone_number" : "08101234567" ,
"name" : "John Doe" ,
"meter_number" : "1111111111111" ,
"electricity_distributor_id" : 1 ,
"amount" : 2000
}
curl -X POST https://example.com/api/electricity_bill_payments \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"meter_type": "prepaid",
"phone_number": "08101234567",
"name": "John Doe",
"meter_number": "1111111111111",
"electricity_distributor_id": 1,
"amount": 2000
}'
Response
Success (200)
{
"data" : {
"id" : 1 ,
"user_id" : 2 ,
"reference" : "EB20260318123045123456" ,
"amount" : "2,000.00" ,
"api_response" : "Success" ,
"description" : "2000 Ikeja Electric Bill Payment to 1111111111111 prepaid (John Doe)" ,
"status" : "success" ,
"token" : "3442-5266-6622-7663-7263" ,
"balance_before" : "5,000.00" ,
"balance_after" : "3,000.00" ,
"transactionable_type" : "App\\Models\\ElectricityBillTransaction" ,
"date" : "18/03/2026 10:30 AM"
}
}
Response Fields
Field Type Description idinteger Transaction ID user_idinteger User ID referencestring Unique transaction reference (prefixed with EB) amountstring Amount charged (formatted with 2 decimals) api_responsestring Provider response message descriptionstring Human-readable transaction description statusstring Transaction status: "success", "pending", or "failed" tokenstring Electricity token for prepaid meters (empty string for postpaid) balance_beforestring Wallet balance before transaction balance_afterstring Wallet balance after transaction transactionable_typestring Internal transaction type identifier datestring Transaction timestamp (format: DD/MM/YYYY hh:mm AM/PM)
Electricity Distributors
ID Distributor Name 1 Ikeja Electric 2 Eko Electric 3 Abuja Electric 4 Kano Electric 5 Enugu Electric 6 Port Harcourt Electric 7 Ibadan Electric 8 Kaduna Electric 9 Jos Electric 10 Benin Electric 11 Yola Electric
Error Handling
Validation Error (422)
Returned when request fields fail validation:
{
"message" : "The given data was invalid." ,
"errors" : {
"meter_type" : [ "The meter type field is required." ] ,
"amount" : [ "The amount must be at least 1000." ]
}
}
Error Cause "The meter type field is required."Missing meter_type parameter "The phone number field is required."Missing phone_number parameter "The name field is required."Missing name parameter "The meter number field is required."Missing meter_number parameter "The electricity distributor id field is required."Missing electricity_distributor_id parameter "The selected electricity distributor id is invalid."Distributor ID does not exist "The amount field is required."Missing amount parameter "The amount must be at least 1000."Amount is below ₦1,000 minimum "The amount must be a number."Non-numeric value provided
Business Logic Errors (422)
{
"message" : "The given data was invalid." ,
"errors" : {
"status" : [ "Something Went Wrong! Try again Letter" ]
}
}
Error Message Field Cause "Insufficient wallet balance!"amountNot enough funds in your wallet "Service unavailable!."statusElectricity service is currently disabled "Your account has been restricted for transaction, Please submit your KYC to activate your account or contact support!."statusAccount KYC restriction "Sorry, your daily bill_payment spending limit exceeded! Limit: ₦X"statusDaily spending limit reached "Something Went Wrong! Try again Letter"statusProvider-level failure (generic)
Unauthorized (401)
Returned when the Bearer token is missing or invalid.
IP Whitelist Denied (403)
{
"status" : false ,
"message" : "Access Denied: Your IP (x.x.x.x) or Origin is not whitelisted for this API token."
}
Important
Always validate the meter number before making a payment
For prepaid meters, the electricity token is included in the response
Minimum payment amount is ₦1,000
Additional package charges may apply depending on the distributor