My DishTV 数据 API:套餐、余额与充值
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 节目信息——可供账单监控、财务记账集成、内容版权核对看板与观看提醒工具调用。
应用截图
API 端点一览
请求/响应示例为依据应用界面重构的示意示例,并非实时抓包。
Send login OTP to registered mobile
POST
/api/SubApp/auth/otposintStarts 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/verifyosintConfirms 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/summaryopenbankingLoads 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 screenMy 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/currentopendataReturns 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 tilesgenre icons (gec, sports, news, kids, movies, infotainment) on the channel browser
Search recommended packs and a-la-carte channels
GET
/api/SubApp/packs/catalogopendataPages 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 tileslanguage chips (hindi, tamil, telugu, bengali, marathi, kannada, malayalam, punjabi) on the catalog filters
Modify pack (add or drop channels)
POST
/api/SubApp/packs/modifyopendataApplies 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 screensempty states no_pack_found / noRecommendedPackFound / noChannelDetailFound on the same flow
Initiate instant recharge
POST
/api/SubApp/recharge/initiateopenfinanceCreates 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 tilesJuspay 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/transactionsopenbankingPages 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 tilesCompleted / Inprogress / Failed status icons on the transaction list
List invoices
GET
/api/SubApp/invoicesopenfinanceReturns 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 menuAEM_BASE_URL in the app config hosts CMS/document URLs used for invoice PDFs
Fetch EPG channel guide
GET
/api/SubApp/epg/guideopendataServes 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 tilesempty_channel / no_channel_data states on the same guide
List offers and limited packs
GET
/api/SubApp/offersopendataReturns 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 tilesAEM_BASE_URL in the app config is the CMS host for banner artwork
Create issue-tracker ticket
POST
/api/SubApp/issuesopendataOpens 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 screensget_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 天交付
- 验收通过后才付款
- 仅在授权范围内作业