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

Request Headers

{
  "Accept": "application/json",
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_API_TOKEN"
}

Request Body

FieldTypeRequiredDescription
meter_typestringYesMeter type: "prepaid" or "postpaid"
phone_numberstringYesContact phone number (e.g., "08101234567")
namestringYesCustomer name (as registered on meter)
meter_numberstringYesMeter number (e.g., "1111111111111")
electricity_distributor_idintegerYesDISCO ID — see Electricity Distributors below
amountnumericYesPayment 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

FieldTypeDescription
idintegerTransaction ID
user_idintegerUser ID
referencestringUnique transaction reference (prefixed with EB)
amountstringAmount charged (formatted with 2 decimals)
api_responsestringProvider response message
descriptionstringHuman-readable transaction description
statusstringTransaction status: "success", "pending", or "failed"
tokenstringElectricity token for prepaid meters (empty string for postpaid)
balance_beforestringWallet balance before transaction
balance_afterstringWallet balance after transaction
transactionable_typestringInternal transaction type identifier
datestringTransaction timestamp (format: DD/MM/YYYY hh:mm AM/PM)

Electricity Distributors

IDDistributor Name
1Ikeja Electric
2Eko Electric
3Abuja Electric
4Kano Electric
5Enugu Electric
6Port Harcourt Electric
7Ibadan Electric
8Kaduna Electric
9Jos Electric
10Benin Electric
11Yola 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."]
  }
}
ErrorCause
"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 MessageFieldCause
"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