Partner API
Product · Entertainment

Cable TV

Verify customer smartcards, browse bouquets, and renew or upgrade subscriptions across DSTV, GOtv, StarTimes, and Showmax.

Base path/api/v1/partner/cabletv
Authx-api-key (+ x-signature on verify/purchase)
Supported CarriersDSTV (dstv) · GOtv (gotv) · StarTimes (startimes) · Showmax (showmax)
Rate limit30 requests / 60s (failure circuit breaker)

1. List Cable TV Providers

Query the supported pay-TV operators and their slug identifiers:

List cable TV providers

GET /partner/cabletv/providers
API key only
cURL
curl https://api.billpadi.com/api/v1/partner/cabletv/providers \
  -H "x-api-key: $API_KEY"
Example response — 200 OK
{
  "success": true,
  "message": "Cable TV providers retrieved",
  "data": [
    { "id": "64f1c1a1c4d5e6f7a8b9c201", "name": "DSTV", "code": "dstv" },
    { "id": "64f1c1a1c4d5e6f7a8b9c202", "name": "GOtv", "code": "gotv" },
    { "id": "64f1c1a1c4d5e6f7a8b9c203", "name": "StarTimes", "code": "startimes" },
    { "id": "64f1c1a1c4d5e6f7a8b9c204", "name": "Showmax", "code": "showmax" }
  ],
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/cabletv/providers"
}

2. List Bouquets / Packages

Retrieve all packages available for a given provider slug or provider ID:

List bouquets for provider

GET /partner/cabletv/packages/:providerId
API key only
cURL
curl https://api.billpadi.com/api/v1/partner/cabletv/packages/dstv \
  -H "x-api-key: $API_KEY"
Example response — 200 OK
{
  "success": true,
  "message": "Cable TV packages retrieved",
  "data": [
    {
      "id": "64f3c2a1c4d5e6f7a8b9c211",
      "code": "dstv-padi",
      "name": "DStv Padi",
      "amount": 4400,
      "validity": "1 Month"
    },
    {
      "id": "64f3c2a1c4d5e6f7a8b9c212",
      "code": "dstv-yanga",
      "name": "DStv Yanga",
      "amount": 6000,
      "validity": "1 Month"
    },
    {
      "id": "64f3c2a1c4d5e6f7a8b9c213",
      "code": "dstv-compact",
      "name": "DStv Compact",
      "amount": 15700,
      "validity": "1 Month"
    }
  ],
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/cabletv/packages/dstv"
}

3. Verify Smartcard Number

Always verify a customer's smartcard or IUC number before initiating payment. This resolves the registered customer name and current active bouquet:

Verify smartcard / IUC

POST /partner/cabletv/verify
Signature required
FieldTypeRequiredDescription
smartCardNumberstringrequiredDecoder smartcard or IUC number
serviceCodestringrequiredProvider slug: dstv, gotv, startimes, or showmax
cURL
Node.js
curl -X POST https://api.billpadi.com/api/v1/partner/cabletv/verify \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-signature: $SIGNATURE" \
  -d '{
    "smartCardNumber": "1234567890",
    "serviceCode": "dstv"
  }'
const res = await partnerClient.post("/cabletv/verify", {
  smartCardNumber: "1234567890",
  serviceCode: "dstv"
});
Example response — 200 OK
{
  "success": true,
  "message": "Smartcard verified successfully",
  "data": {
    "smartCardNumber": "1234567890",
    "customerName": "CHINEDU OKEKE",
    "currentPlan": "DStv Yanga",
    "dueDate": "2026-07-28"
  },
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/cabletv/verify"
}

4. Renew or Change Subscription

Submit a subscription payment for renewal or package upgrade:

Renew or change subscription

POST /partner/cabletv/purchase
Signature required
FieldTypeRequiredDescription
providerstringrequiredProvider slug: dstv, gotv, startimes, or showmax
smartCardNumberstringrequiredCustomer smartcard number
productIdstringrequiredTarget package code or MongoDB id from packages catalog
typestringrequiredrenew (keep current plan) or change (upgrade/downgrade bouquet)
partnerReferencestringrequiredUnique reference string (2–100 characters) for idempotency
cURL
curl -X POST https://api.billpadi.com/api/v1/partner/cabletv/purchase \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-signature: $SIGNATURE" \
  -d '{
    "provider": "dstv",
    "smartCardNumber": "1234567890",
    "productId": "dstv-compact",
    "type": "change",
    "partnerReference": "PR-CTV-40218"
  }'
Example response — 200 OK
{
  "success": true,
  "message": "Cable TV subscription initiated",
  "data": {
    "transactionReference": "TXN_1720603200000_2B3C",
    "partnerReference": "PR-CTV-40218",
    "status": "pending",
    "smartCardNumber": "1234567890",
    "package": "DStv Compact",
    "amount": 15700
  },
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/cabletv/purchase"
}

Upon carrier activation, Billpadi fires a cabletv.purchase.success webhook.

5. Transaction Status & Listing

Get cable TV transaction status

GET /partner/cabletv/transactions/:reference
API key only

List cable TV transactions

GET /partner/cabletv/transactions
API key only