API reference

List electricity products

Get electricity products and product codes. Request fields, response examples and integration guidance.

GET /products/electricity

Example request

Server-side HTTP request
curl --request GET \
  --url "https://api.strongmb.ng/v1/products/electricity" \
  --header "Authorization: Bearer $STRONGMB_API_KEY" \
  --header "Accept: application/json"

Returns all available electricity providers and their prepaid/postpaid products. Use the product_code and meter_type when verifying the meter and making a purchase. Note that electricity uses min_amount — the amount is flexible, not fixed.

JSON Response
{
  "status": true,
  "message": "Products retrieved successfully",
  "data": {
    "billers": {
      "f0ab4f38-1234-5678-9101-abcdefabcdef": {
        "name": "KANO ELECTRICITY DISTRIBUTION COMPANY",
        "id": "f0ab4f38-1234-5678-9101-abcdefabcdef",
        "description": "This is a test product for the electricity provider",
        "icon": "https://cdn.mysite.local/assets/icon/electricity/kedco-cf1c5524-d1d9-4ee2-ad01-3f711d5bdf41.png",
        "products": {
          "pre": {
            "name": "PREPAID",
            "id": "123e4567-e89b-12d3-a456-426614174001",
            "description": "This is a test product for the electricity provider",
            "icon": null,
            "api_access": true,
            "items": [
              {
                "id": "123e4567-e89b-12d3-a456-426614174000",
                "name": "PREPAID",
                "description": "This is a test product for the electricity provider",
                "min_amount": "100",
                "currency": "NGN",
                "product_code": "smb_elec_pre_test",
                "image": null
              }
            ]
          },
          "post": {
            "name": "POSTPAID",
            "id": "123e4567-e89b-12d3-a456-426614174003",
            "description": "This is a test product for the electricity provider",
            "icon": null,
            "api_access": true,
            "items": [
              {
                "id": "123e4567-e89b-12d3-a456-426614174002",
                "name": "POSTPAID",
                "description": "This is a test product for the electricity provider",
                "min_amount": "100",
                "currency": "NGN",
                "product_code": "smb_elec_post_test",
                "image": null
              }
            ]
          }
        }
      }
    }
  },
  "metadata": {
    "code": "PRODUCTS_RETRIEVED",
    "timestamp": 1790805496,
    "trace_id": "E44E95CFDF"
  }
}

Read product entries from data.billers.{biller_id}.products.{product_type}.items. Iterate the returned items array and use each item’s product_code for the matching validation or purchase request.

The example product groups use pre and post. For validation and purchase requests, use the matching meter_type value prepaid or postpaid. The product minimum is NGN 100; the sandbox success scenario still requires exactly NGN 1000. See the electricity sandbox instructions.

Response fields and types

Expand an object to explore its fields. [] indicates an array item. Error responses may return data: null.

Field pathJSON typeMeaning and handling
statusbooleanWhether this API request succeeded. Check the HTTP status and metadata.code when handling errors.
messagestringHuman-readable description of the result. Use metadata.code for programmatic error handling instead of parsing this text.
dataobjectResponse data. Check the result before reading nested fields; an error may return null or validation details.
data.billersobjectProviders keyed by their returned identifiers.
data.billers.{biller_id}objectOne provider. The key is dynamic, not a literal biller_id field.
data.billers.{biller_id}.namestringDisplay name of the provider.
data.billers.{biller_id}.idstringProvider identifier. Use the item product_code when purchasing.
data.billers.{biller_id}.descriptionstringDescription of the provider or service.
data.billers.{biller_id}.iconstringProvider icon URL. Allow for an unavailable image.
data.billers.{biller_id}.productsobjectProduct groups keyed by the returned product type.
data.billers.{biller_id}.products.{product_type}objectOne product group. Iterate the actual keys returned by the API.
data.billers.{biller_id}.products.{product_type}.namestringDisplay name of the product group.
data.billers.{biller_id}.products.{product_type}.idstringIdentifier of the product group.
data.billers.{biller_id}.products.{product_type}.descriptionstringDescription of this product group.
data.billers.{biller_id}.products.{product_type}.iconstring | nullOptional product-group icon. Null means no icon is supplied.
data.billers.{biller_id}.products.{product_type}.api_accessbooleanWhether this product group is available for API purchases.
data.billers.{biller_id}.products.{product_type}.itemsarrayAvailable product items. Refresh the list to obtain current prices, discounts and availability.
data.billers.{biller_id}.products.{product_type}.items[]objectOne purchasable product item.
data.billers.{biller_id}.products.{product_type}.items[].idstringIdentifier of the product item. Use product_code in purchase requests.
data.billers.{biller_id}.products.{product_type}.items[].namestringDisplay name of the product item.
data.billers.{biller_id}.products.{product_type}.items[].descriptionstringDescription of this product item.
data.billers.{biller_id}.products.{product_type}.items[].min_amountstringMinimum electricity purchase amount in the indicated currency, returned as a numeric string. The example minimum is NGN 100. This is a lower bound, not a fixed price.
data.billers.{biller_id}.products.{product_type}.items[].currencystringCurrency of the price or purchase amount; NGN means Nigerian naira.
data.billers.{biller_id}.products.{product_type}.items[].product_codestringExact code to send in the matching validation or purchase request.
data.billers.{biller_id}.products.{product_type}.items[].imagestring | nullOptional item image reference. Null means no image is supplied.
metadataobjectDiagnostic information about the response.
metadata.codestringMachine-readable result code. Use it to distinguish validation, authentication and service errors.
metadata.timestampintegerUnix timestamp in seconds associated with the response.
metadata.trace_idstringCorrelation identifier for troubleshooting. Retain it with a redacted request when contacting support.

Questions? Let’s work through them.

Having an issue or need help with your integration? Join the Strongmb Slack community to ask questions and get assistance from our team and other developers.

Keep API keys and customer details private when sharing examples.

Experiencing a service issue? Check Strongmb’s service status for incident updates.

Join our Slack community

Did this page help you?

Search documentation