My DishTV 图标

My DishTV 数据 API:套餐、余额与充值

Dish TV India Limited · 电信

My DishTV 是印度大型直播卫星电视(DTH)运营商 Dish TV India Limited 的官方订户自助应用。对印度各地的家庭来说,它是管理电视连接的日常入口:通过注册手机号接收一次性密码登录,随后即可在多机顶盒账户间切换,查看实时余额与停机日期、已订套餐及频道列表,通过 UPI、银行卡或钱包即时充值,并获取发票、对账单、电子节目指南和故障报修工单。

作为数据源,应用开放了每个视讯卡连接的完整状态:钱包状况体现在 balanceAmount、monthlyRechargeAmount 与 switchOffDate 中;已订套餐与按 lcn、genre、language 标注的频道行描述了频道阵容;充值账本则以 txnId、支付方式与 GST 税额 taxAmount 记录了交易与发票。余额提醒机器人、印度卢比记账与财务集成、内容版权核对看板以及 EPG 节目提醒工具都构建在这些字段之上。

My DishTV 是印度大型直播卫星电视(DTH)运营商 Dish TV India Limited 的订户自助应用。家庭用户通过注册手机号 OTP 登录后,可管理机顶盒连接:实时查看钱包余额与停机日期、当前套餐与频道列表,完成即时充值、下载发票并浏览电子节目指南。这些界面背后是按连接组织的账户数据集——订户身份、余额、套餐与频道目录、充值流水和 EPG 节目信息——可供账单监控、财务记账集成、内容版权核对看板与观看提醒工具调用。

应用截图

  • My DishTV 应用截图 1
  • My DishTV 应用截图 2
  • My DishTV 应用截图 3
  • My DishTV 应用截图 4
  • My DishTV 应用截图 5

API 端点一览

请求/响应示例为依据应用界面重构的示意示例,并非实时抓包。

  • Send login OTP to registered mobile

    POST /api/SubApp/auth/otp osint

    Starts My DishTV login by sending a 6-digit SMS OTP to the subscriber's registered mobile number (RMN) and returns the otpTxnId used to confirm it.

    认证方式: Unauthenticated. Body is the registered mobile number (RMN). The native encryption plugin JWT-signs the payload. On success an otpTxnId is required by the verify step.

    • rmn
    • channel
    • appVersion
    • platform
    • status
    • message
    • otpTxnId
    • otpLength
    • resendAfterSeconds
    • maskedRmn
    POST /api/SubApp/auth/otp HTTP/1.1
    Content-Type: application/json
    X-App-Version: 10.1.9
    
    {
      "rmn": "9876543210",
      "channel": "SMS",
      "appVersion": "10.1.9",
      "platform": "android"
    }
    {
      "status": "SUCCESS",
      "message": "OTP sent",
      "otpTxnId": "otp-7c11e2",
      "otpLength": 6,
      "resendAfterSeconds": 30,
      "maskedRmn": "98XXXX3210"
    }

    应用内出处

    • inferred from the RMN + OTP login screen (same credentials as dishtv.in My Account)
    • Firebase Auth + SMS retriever permissions on the Android host; native_encryption_plugin JWT-signs later payloads
  • Verify OTP and issue subscriber session

    POST /api/SubApp/auth/verify osint

    Confirms the SMS OTP and returns the Bearer session plus the list of viewing-card connections linked to the RMN (DishTV / d2h / Smart+ boxes).

    认证方式: Unauthenticated. Body carries otpTxnId from /api/SubApp/auth/otp plus the SMS code. The returned accessToken is sent as Authorization: Bearer on later SubApp calls.

    • otpTxnId
    • otp
    • rmn
    • status
    • accessToken
    • refreshToken
    • subscriberId
    • subscriberName
    • connections
    • vcNumber
    • stbId
    • brand
    • tokenType
    POST /api/SubApp/auth/verify HTTP/1.1
    Content-Type: application/json
    X-App-Version: 10.1.9
    
    {
      "otpTxnId": "otp-7c11e2",
      "otp": "482913",
      "rmn": "9876543210"
    }
    {
      "status": "SUCCESS",
      "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.session",
      "refreshToken": "rt-dishtv-9f2a",
      "subscriberId": "SUB-18482911",
      "rmn": "9876543210",
      "subscriberName": "Rahul Sharma",
      "connections": [
        {
          "vcNumber": "012345678901",
          "stbId": "STB88421",
          "brand": "DISHTV",
          "status": "ACTIVE"
        }
      ],
      "tokenType": "Bearer"
    }

    应用内出处

    • inferred from OTP confirm + multi-connection picker (multiconnection back-arrow and choose_box_setupbox tiles)
    • d2h_new_image / d2hsmart+ / dish_tv branding on the account switcher
  • Fetch account summary (balance, pack, switch-off)

    GET /api/SubApp/account/summary openbanking

    Loads the home dashboard: viewing-card identity, INR wallet balance, monthly recharge amount, switch-off date and the currently subscribed bouquet.

    认证方式: Authorization: Bearer accessToken from /api/SubApp/auth/verify. Query vcNumber selects the active connection when the RMN has more than one box.

    • vcNumber
    • stbId
    • subscriberName
    • accountStatus
    • balanceAmount
    • currency
    • monthlyRechargeAmount
    • switchOffDate
    • lastPaymentDate
    • lastPaymentAmount
    • currentPack
    • packId
    • packName
    • packType
    • endDate
    GET /api/SubApp/account/summary?vcNumber=012345678901 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-App-Version: 10.1.9
    {
      "status": "SUCCESS",
      "vcNumber": "012345678901",
      "stbId": "STB88421",
      "subscriberName": "Rahul Sharma",
      "accountStatus": "ACTIVE",
      "balanceAmount": 186.50,
      "currency": "INR",
      "monthlyRechargeAmount": 399.00,
      "switchOffDate": "2026-10-12",
      "lastPaymentDate": "2026-09-12",
      "lastPaymentAmount": 399.00,
      "currentPack": {
        "packId": "PK-SUPER-FAMILY-HINDI",
        "packName": "Super Family Hindi",
        "packType": "BOUQUET",
        "endDate": "2026-10-12"
      }
    }

    应用内出处

    • inferred from the home balance tile (balance_new_image) and current_pack_detail screen
    • My Account on dishtv.in exposes the same balance / pack / switch-off fields after RMN login
  • List current pack and subscribed channels

    GET /api/SubApp/packs/current opendata

    Returns the subscribed bouquet, per-channel LCN/genre/language/quality rows and paid add-ons shown on Manage My Pack.

    认证方式: Authorization: Bearer accessToken. vcNumber query selects the box.

    • vcNumber
    • packId
    • packName
    • packType
    • monthlyPrice
    • hdEnabled
    • channelCount
    • channels
    • channelId
    • channelName
    • genre
    • language
    • quality
    • lcn
    • isAlaCarte
    • addOns
    • addOnId
    • addOnName
    GET /api/SubApp/packs/current?vcNumber=012345678901 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    {
      "status": "SUCCESS",
      "vcNumber": "012345678901",
      "packId": "PK-SUPER-FAMILY-HINDI",
      "packName": "Super Family Hindi",
      "packType": "BOUQUET",
      "monthlyPrice": 399.00,
      "hdEnabled": true,
      "channelCount": 312,
      "channels": [
        {
          "channelId": "CH-101",
          "channelName": "Star Plus",
          "genre": "GEC",
          "language": "Hindi",
          "quality": "HD",
          "lcn": 101,
          "isAlaCarte": false
        }
      ],
      "addOns": [
        {
          "addOnId": "AO-SPORTS-HD",
          "addOnName": "Sports HD",
          "monthlyPrice": 49.00
        }
      ]
    }

    应用内出处

    • inferred from current_pack_detail, manage_my_pack_background, chaneels, single_channels and adds_on tiles
    • genre icons (gec, sports, news, kids, movies, infotainment) on the channel browser
  • Search recommended packs and a-la-carte channels

    GET /api/SubApp/packs/catalog opendata

    Pages the pack catalog used by Manage My Pack: recommended bouquets, Dish TV combos, value packs and a-la-carte channels filterable by genre and language.

    认证方式: Authorization: Bearer accessToken. Optional genre, language and q filters from the pack browser.

    • genre
    • language
    • q
    • recommended
    • packId
    • packName
    • packType
    • monthlyPrice
    • channelCount
    • isRecommended
    • combos
    • alaCarte
    • channelId
    • channelName
    GET /api/SubApp/packs/catalog?vcNumber=012345678901&genre=GEC&language=Hindi&q=family HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    {
      "status": "SUCCESS",
      "recommended": [
        {
          "packId": "PK-VALUE-HINDI",
          "packName": "Value Hindi",
          "packType": "VALUE_PACK",
          "monthlyPrice": 249.00,
          "channelCount": 198,
          "isRecommended": true
        }
      ],
      "combos": [
        {
          "packId": "PK-DISH-COMBO-1",
          "packName": "Dish TV Combo",
          "monthlyPrice": 449.00
        }
      ],
      "alaCarte": [
        {
          "channelId": "CH-401",
          "channelName": "Sony Liv Pack",
          "monthlyPrice": 19.00,
          "language": "Hindi"
        }
      ]
    }

    应用内出处

    • inferred from recommended / recommendedNewPack, dish_tv_combos, economicpack, ic_value_pack and all_in_one_pack tiles
    • language chips (hindi, tamil, telugu, bengali, marathi, kannada, malayalam, punjabi) on the catalog filters
  • Modify pack (add or drop channels)

    POST /api/SubApp/packs/modify opendata

    Applies add/drop channel and add-on changes on Manage My Pack and, when the monthly price rises, returns a paymentOrderId handed to the recharge checkout.

    认证方式: Authorization: Bearer accessToken. Write against the selected vcNumber; a preview quote is returned before payment if the monthly price changes.

    • vcNumber
    • addChannelIds
    • removeChannelIds
    • addOnIds
    • modificationId
    • newMonthlyPrice
    • priceDelta
    • effectiveFrom
    • requiresPayment
    • paymentOrderId
    POST /api/SubApp/packs/modify HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {
      "vcNumber": "012345678901",
      "addChannelIds": ["CH-401"],
      "removeChannelIds": ["CH-218"],
      "addOnIds": ["AO-SPORTS-HD"]
    }
    {
      "status": "SUCCESS",
      "modificationId": "MOD-55291",
      "vcNumber": "012345678901",
      "newMonthlyPrice": 448.00,
      "priceDelta": 49.00,
      "effectiveFrom": "2026-10-13",
      "requiresPayment": true,
      "paymentOrderId": "pay-8f21a4"
    }

    应用内出处

    • inferred from addRemoveChannelImage, adds_on and text_manage_pack screens
    • empty states no_pack_found / noRecommendedPackFound / noChannelDetailFound on the same flow
  • Initiate instant recharge

    POST /api/SubApp/recharge/initiate openfinance

    Creates a DishTV recharge order for the selected VC (self, friend or pay-later), applies an offer, and returns the Juspay order used by the in-app checkout.

    认证方式: Authorization: Bearer accessToken. Amount defaults to monthlyRechargeAmount from the account summary; Juspay HyperSDK completes the instrument step.

    • vcNumber
    • amount
    • currency
    • offerId
    • payLater
    • rechargeForFriend
    • orderId
    • discountAmount
    • payableAmount
    • juspayClientId
    • juspayOrderId
    • paymentUrl
    • switchOffDateAfter
    POST /api/SubApp/recharge/initiate HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {
      "vcNumber": "012345678901",
      "amount": 399.00,
      "currency": "INR",
      "offerId": "OFF-FESTIVE-50",
      "payLater": false,
      "rechargeForFriend": false
    }
    {
      "status": "SUCCESS",
      "orderId": "DTV-RCH-884291",
      "vcNumber": "012345678901",
      "amount": 399.00,
      "discountAmount": 50.00,
      "payableAmount": 349.00,
      "currency": "INR",
      "juspayClientId": "dishtv",
      "juspayOrderId": "ordeh_9c1a",
      "paymentUrl": "https://payments.juspay.in/merchant/pay/ordeh_9c1a",
      "switchOffDateAfter": "2026-11-12"
    }

    应用内出处

    • inferred from instant_recharge_menu_image, menu_instantrecharge_icon, recharge_friend_image and pay_later tiles
    • Juspay HyperSDK merchant config bundled as dishtv (assets.juspay.in/hyper/configs/dishtv) plus Amazon Pay and PhonePe SDKs
  • List account statement / recharge transactions

    GET /api/SubApp/transactions openbanking

    Pages the account-statement ledger behind All Transactions: recharge, pack-modify and pay-later rows with mode, status and narration.

    认证方式: Authorization: Bearer accessToken. Paginated by fromDate / toDate and vcNumber.

    • fromDate
    • toDate
    • page
    • pageSize
    • total
    • transactions
    • txnId
    • txnDate
    • txnType
    • amount
    • currency
    • mode
    • status
    • narration
    • vcNumber
    GET /api/SubApp/transactions?vcNumber=012345678901&fromDate=2026-07-01&toDate=2026-09-29&page=1&pageSize=20 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    {
      "status": "SUCCESS",
      "page": 1,
      "pageSize": 20,
      "total": 14,
      "transactions": [
        {
          "txnId": "DTV-RCH-884291",
          "txnDate": "2026-09-12T18:41:02+05:30",
          "txnType": "RECHARGE",
          "amount": 399.00,
          "currency": "INR",
          "mode": "UPI",
          "status": "SUCCESS",
          "narration": "Instant recharge Super Family Hindi",
          "vcNumber": "012345678901"
        }
      ]
    }

    应用内出处

    • inferred from account_statement and all_transaction tiles
    • Completed / Inprogress / Failed status icons on the transaction list
  • List invoices

    GET /api/SubApp/invoices openfinance

    Returns billed periods, tax-inclusive totals and PDF links for the My Invoice screen.

    认证方式: Authorization: Bearer accessToken. vcNumber scopes the billing account.

    • invoiceNumber
    • invoiceDate
    • periodFrom
    • periodTo
    • packName
    • amount
    • taxAmount
    • totalAmount
    • currency
    • pdfUrl
    • status
    GET /api/SubApp/invoices?vcNumber=012345678901&page=1&pageSize=12 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    {
      "status": "SUCCESS",
      "invoices": [
        {
          "invoiceNumber": "INV-202609-4412",
          "invoiceDate": "2026-09-01",
          "periodFrom": "2026-08-13",
          "periodTo": "2026-09-12",
          "packName": "Super Family Hindi",
          "amount": 399.00,
          "taxAmount": 71.82,
          "totalAmount": 470.82,
          "currency": "INR",
          "pdfUrl": "/invoices/INV-202609-4412.pdf",
          "status": "PAID"
        }
      ]
    }

    应用内出处

    • inferred from the my_invoice tile on the account menu
    • AEM_BASE_URL in the app config hosts CMS/document URLs used for invoice PDFs
  • Fetch EPG channel guide

    GET /api/SubApp/epg/guide opendata

    Serves the electronic programme guide behind Channel Guide: per-LCN listings, synopsis, favourite flags and reminder state.

    认证方式: Authorization: Bearer accessToken. date and optional genre / language filter the grid; subscribedOnly=true limits rows to the current pack.

    • date
    • genre
    • subscribedOnly
    • channels
    • channelId
    • channelName
    • lcn
    • isFavorite
    • programmes
    • programmeId
    • title
    • startTime
    • endTime
    • synopsis
    • reminderSet
    GET /api/SubApp/epg/guide?vcNumber=012345678901&date=2026-09-29&genre=GEC&subscribedOnly=true HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    {
      "status": "SUCCESS",
      "date": "2026-09-29",
      "channels": [
        {
          "channelId": "CH-101",
          "channelName": "Star Plus",
          "lcn": 101,
          "isFavorite": true,
          "programmes": [
            {
              "programmeId": "EPG-101-1840",
              "title": "Anupamaa",
              "startTime": "2026-09-29T18:30:00+05:30",
              "endTime": "2026-09-29T19:00:00+05:30",
              "synopsis": "Daily soap",
              "reminderSet": false
            }
          ]
        }
      ]
    }

    应用内出处

    • inferred from channel_guide_image, welcome_channel_guide_image, set_favroite_icon, set_reminder_image and channelSynopsisEmptyState tiles
    • empty_channel / no_channel_data states on the same guide
  • List offers and limited packs

    GET /api/SubApp/offers opendata

    Returns recharge and pack offers (flat/percent, min amount, validity, eligible packIds) shown on the home banners and Offer limited tile.

    认证方式: Authorization: Bearer accessToken. Optional vcNumber personalises offers to the current pack.

    • offers
    • offerId
    • title
    • description
    • discountType
    • discountValue
    • minRechargeAmount
    • validTill
    • applicablePackIds
    • bannerUrl
    GET /api/SubApp/offers?vcNumber=012345678901 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    {
      "status": "SUCCESS",
      "offers": [
        {
          "offerId": "OFF-FESTIVE-50",
          "title": "Festive ₹50 off",
          "description": "₹50 off on recharge of ₹399 or more",
          "discountType": "FLAT",
          "discountValue": 50.00,
          "minRechargeAmount": 399.00,
          "validTill": "2026-10-31",
          "applicablePackIds": ["PK-SUPER-FAMILY-HINDI"],
          "bannerUrl": "/banners/festive-50.webp"
        }
      ]
    }

    应用内出处

    • inferred from Offer_limited, offer_banner, offer_image, offer_watcho_image and no_offers tiles
    • AEM_BASE_URL in the app config is the CMS host for banner artwork
  • Create issue-tracker ticket

    POST /api/SubApp/issues opendata

    Opens a service ticket from Issue Tracker (no-signal, recharge not reflected, box errors) and returns ticketId, status and on-device troubleshoot steps.

    认证方式: Authorization: Bearer accessToken. Optional photo from the camera permission; ticket is bound to vcNumber.

    • vcNumber
    • category
    • description
    • stbOn
    • errorCode
    • ticketId
    • ticketStatus
    • createdAt
    • etaHours
    • troubleshootSteps
    POST /api/SubApp/issues HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {
      "vcNumber": "012345678901",
      "category": "NO_SIGNAL",
      "description": "No signal after recharge, error 101",
      "stbOn": true,
      "errorCode": "101"
    }
    {
      "status": "SUCCESS",
      "ticketId": "SR-95017-88421",
      "vcNumber": "012345678901",
      "category": "NO_SIGNAL",
      "ticketStatus": "OPEN",
      "createdAt": "2026-09-29T18:12:04+05:30",
      "etaHours": 24,
      "troubleshootSteps": [
        "Keep the set-top box powered on",
        "Reseat the LNB cable",
        "Wait for the next signal refresh"
      ]
    }

    应用内出处

    • inferred from issue_tracker, check_Image_Issue_Tracker and troubleshoot_image1/2/3 screens
    • get_help_new / headphone_home_image / headset_image support entry points on the home menu

数据类别

  • identity
  • balances
  • transactions
  • billing
  • catalog
  • epg

数据使用场景与案例

  • DTH balance and switch-off monitoring

    A household-billing bot calls GET /api/SubApp/account/summary per vcNumber after the RMN OTP session and alerts when balanceAmount or switchOffDate is inside a chosen window, using monthlyRechargeAmount as the suggested top-up.

  • Pack and channel-lineup reconciliation

    A content-rights dashboard pulls GET /api/SubApp/packs/current (channelId, lcn, genre, quality, addOns) and diffs it against GET /api/SubApp/packs/catalog so operators can see which bouquets and a-la-carte rows a VC actually carries.

  • Recharge ledger into finance tools

    Nightly jobs page GET /api/SubApp/transactions and GET /api/SubApp/invoices to land txnId, mode, payableAmount and GST taxAmount into an INR cashbook, matching Juspay orderId from POST /api/SubApp/recharge/initiate.

  • EPG-aware viewing reminders

    A companion client reads GET /api/SubApp/epg/guide for subscribedOnly=true channels, then uses programmeId / startTime / isFavorite to schedule reminders that match the in-app Channel Guide.

常见问题

My DishTV 如何认证订户?

应用通过 POST /api/SubApp/auth/otp 向注册手机号发送 6 位短信验证码,再在 /api/SubApp/auth/verify 用 otpTxnId + otp 换取 Bearer accessToken 及该 RMN 关联的 VC 号列表。后续 SubApp 调用携带 Authorization: Bearer;请求体由原生加密插件做 JWT 签名。

哪些字段描述 DishTV 账户的资金状态?

GET /api/SubApp/account/summary 返回 balanceAmount 与 currency(INR)、monthlyRechargeAmount、switchOffDate、lastPaymentDate / lastPaymentAmount,以及所选 vcNumber / stbId 的 currentPack 对象(packId、packName、endDate)。

API 中的即时充值如何实现?

POST /api/SubApp/recharge/initiate 为某个 vcNumber 与金额创建订单(可选 offerId、payLater、rechargeForFriend),响应含 orderId、payableAmount、juspayClientId / juspayOrderId 与 paymentUrl;由 Juspay HyperSDK(商户 dishtv)完成 UPI、银行卡、钱包或网银支付。产生的记录出现在 GET /api/SubApp/transactions。

除了余额,能否读取频道列表与 EPG?

可以。GET /api/SubApp/packs/current 返回已订频道(channelId、lcn、genre、language、quality)与附加包;GET /api/SubApp/packs/catalog 分页返回推荐/组合/单点条目;GET /api/SubApp/epg/guide 返回频道指南页的逐节目 title、startTime、synopsis 与 reminderSet。

相关主题

  • My DishTV 数据 API
  • Dish TV 订户接口
  • DTH 充值接口
  • VC 号余额
  • DishTV 套餐目录
  • 停机日期
  • DishTV 发票
  • EPG 频道指南

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价