Plustiveplustive
Sign inGet API key

Bill-payment API

Cable TV Subscription API

Renew DSTV, GOtv and StarTimes subscriptions via API in Nigeria. Verify the smartcard, pay the bouquet, idempotent and auto-reconciled — one REST API.

Renew cable TV subscriptions — DSTV, GOtv and StarTimes — programmatically. You verify the smartcard or IUC number to confirm the account holder, then pay the chosen bouquet in one call.

The flow mirrors electricity: verify first so your customer confirms it’s the right decoder, then pay. Verification returns the customer name and a valid/invalid/unknown status.

Every renewal is idempotent on your clientReference and settles or refunds automatically, so retries are safe.

The API call

One authenticated POST /api/v1/cabletv request, idempotent on your clientReference, with all money in integer kobo:

# verify the smartcard, then pay the bouquet
curl -X POST https://api.plustiveimpact.com/api/v1/cabletv/verify \
  -H "Authorization: Bearer pk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "productId": "dstv-compact", "smartcardNumber": "1234567890" }'

→ { "customerName": "ADA OKAFOR", "status": "valid" }

What you get

  • DSTV, GOtv and StarTimes bouquets from one endpoint and wallet.
  • Verify the smartcard/IUC number before paying (returns the account holder).
  • Idempotent on clientReference; failed renewals auto-refund to your wallet.
  • Same prepaid wallet and key you use for data, airtime and other bills.
FAQ

Cable TV Subscription API — FAQ

Which cable TV providers does the API support?

Plustive supports DSTV, GOtv and StarTimes. You verify the smartcard or IUC number to confirm the account holder, then pay the chosen bouquet in a single idempotent call.

How do I renew a DSTV subscription via API?

Verify the smartcard with POST /api/v1/cabletv/verify, then pay the bouquet with POST /api/v1/cabletv, passing the productId, smartcard number and a unique clientReference. The renewal settles or refunds automatically.

Is the cable TV payment idempotent?

Yes. Every payment carries your clientReference and is enforced for idempotency, so retrying after a timeout never charges the customer twice.

Related: