API reference

List cable TV products

Get cable TV plans and product codes. Request fields, response examples and integration guidance.

GET /products/cable-tv

Example request

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

Returns all available cable TV plans grouped by provider. Use the product_code from each plan when verifying the customer and making a purchase.

JSON Response
{
  "status": true,
  "message": "Products retrieved successfully",
  "data": {
    "billers": {
      "9abcdef12-3456-7890-abcd-ef1234567890": {
        "name": "DSTV",
        "id": "9abcdef12-3456-7890-abcd-ef1234567890",
        "description": "This is a test product for Cable TV",
        "icon": "https://cdn.mysite.local/assets/icon/cable/dstv-cf1c5524-d1d9-4ee2-ad01-3f711d5bdf41.png",
        "products": {
          "bouquet": {
            "name": "BOUQUET",
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "description": "This is a test product for Cable TV",
            "icon": null,
            "api_access": true,
            "items": [
              {
                "id": "cafed851-81h3-4b2a-9c8d-123456789abc",
                "name": "TEST CABLE TV PLAN",
                "description": "This is a test product for Cable TV",
                "amount": "1000",
                "currency": "NGN",
                "product_code": "smb_test_cable_tv",
                "image": "test_image.png"
              }
            ]
          }
        }
      }
    }
  },
  "metadata": {
    "code": "PRODUCTS_RETRIEVED",
    "timestamp": 1790805345,
    "trace_id": "399F8F5932"
  }
}

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.

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[].amountstringPrice of this cable TV package in the indicated currency, returned as a numeric string. The example price is NGN 1000.
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. It may be null; the cable example uses a placeholder filename.
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